9/30课堂笔记及动手动脑

类的定义:

1、定义了一组大体上相似的对象。一个类所包含的方法和数据描述一组对象的共同行为和属性。

2、对象则是类的具体化,是类的实例。

3、类通过派生可以有子类,同样也可以有父类,形成层次结构

  *  *  *  *  *同一个类模板,生产的不同对象之间有无关联?没有关联又有关系

      *  相当于复制了一份副本。

      *  而凡是类变量里面加static,static在类加载中就已经实例化,这时候只要建立类,static对象已经生成(创造时机)。因此所有的对象只能使用一个静态变量。

【这就说明了为什么main方法只能出现在一个类当中】

public/private class 类名

{
  public/private 数据类型 变量名;

    public/private 数据类型 方法名(参数列表){

    }

}

java中有两种类:

----抽象类只有方法名没有方法体,只能被继承,不能被实例化。

作用 :用于制定规则,规范

----普通类

在Java中,可以通过组合一私有字段和一对get/set方法来定义接口

复制代码
public class ClassAndObjectTest 
{

    public static void main(String[] args) 
    {
        //创建类的实例,定义一个对象变量引用这一实例
        MyClass obj = new MyClass();
/**
 *前面是类名
 *对象obj
 *new在当前的系统空间中开辟一个内存空间
 *后面MyClass是调用构造方法,为对象进行初始化
 */
        //通过对象变量调用类的公有方法
        obj.myMethod("Hello");
        //给属性赋值
        obj.setValue(100);
        //输出属性的当前值
        System.out.println(obj.getValue());
        //直接访问对象公有字段
        obj.Information = "Information";
        //输出对象公有字段的当前值
        System.out.println(obj.Information);
    }
}
复制代码

========================================================================

♦ ♦ ♦ 需要定义一个变量

♦ ♦ ♦ 然后“创建(new)一个对象,赋值给对象变量

♦ ♦ ♦ 现在就可以通过对象变量使用对象,主要方式有:

    1、直接调用类的方法

    2、存取类的字段

=========================================

“引用”一个对象的变量成为“引用类型”的变量,有时简称“对象变量”。要用equals进行比较,用=号比较的是内存的地址

诸如int,float之类的变量称为“原始数据类型”的变量。

=========================================

变量与内存分配

MyClass obj=null;

👉  当声明一个对象类型的变量时,实际上并没有创建一个变量,此变量=null。

👉  定义一个原始类型的变量时,会马上给其分配内存。

👉  在定义变量时,Java要求必须显式初始化变量。

当对象不再使用时,jvm会回收对象所占用的内存。“垃圾回收”。

可以使用final定义一个“常量对象”变量。

 遗留问题:

私有方法无法覆盖

方法覆盖只是针对于“实例方法”,“静态方法覆盖”没有意义。()

 1、方法覆盖需要和多态机制联合起来去使用才有意义。

没有多态机制的话,方法覆盖可有可无。

没有多态机制的话,子类完全可以定义一个全新的方法。

 2、静态方法存在方法覆盖吗?

静态方法和对象无关

虽然使用引用.来调用,但实际运行时还是继承了类的方法

 方法覆盖和多态不能分开。而静态方法的执行不需要对象。所以,一般情况下,我们会说静态方法”不存在“方法覆盖。不探讨静态方法的覆盖。

 总结:

  私有方法不能覆盖

  静态方法不谈覆盖

在方法覆盖中,关于方法的返回值类型。

 什么条件满足之后,会构成方法的覆盖呢?

  1、发生在继承关系的两个类之间

  2、父类中的方法和子类重写之后的方法:

    具有相同的方法名、相同的形式参数列表、相同的返回值类型。

 学习了多态机制后,相同的返回值类型可以修改吗?

  对于返回值类型是基本数据类型,不可以修改,必须一致

  对于返回值类型是引用数据类型,大转小可以,小转大不可以。(但在实际开发中,一般不这样写)

 课后程序运行结果

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文作者:TranquilTimber

本文链接:https://www.cnblogs.com/gbrr/p/16745210.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   喝着农药吐泡泡o  阅读(27)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
🔑