一、构造方法:
1,要点:
1-1,通过 new 关键字调用
1-2,构造器虽然有返回值,但是不能定义返回值类型(返回值的类型肯定是本类),不能在构造器里使用 return 返回某个值
1-3,如果我们没有定义构造器,则编译器会自动定义一个无参的构造函数。如果已定义则编译器不会自动添加
1-4,构造器的方法名必须和类名一致
2,创建对象的过程
2-1,分配对象空间,并将对象成员变量初始化为 0 或 空
2-2,执行属性值的显式初始化
2-3,执行构造方法
2-4,返回对象的地址给相关的变量
二、this 关键字
1,this 的本质就是“创建好的对象的地址”,由于在构造方法调用前,对象已经创建,因此,在构造方法中也可以使用 this 代表“当前对象”
注意:this 调用构造方法必须是方法的第一句,this 不能在 static 方法中使用
三、static 关键字
1,在类中,用 static 声明的成员变量为静态成员变量,也称为类变量,类变量的生命周期的类相同,在整个应用程序执行期间都有效
四、继承
1,java 中类只能是单继承,接口可以多继承,可以使用 ctrl+t 查看类的继承关系
五、== 和 equase
1,==:代表比较双方是否相同,如果是基本类型则表示值相等,如果是引用类型则表示地址相等即是同一个对象
2,equals:Object 类中定义有:public boolean equals(Object obj) 方法,提供定义“对象内容相等”的逻辑
六、super 关键字
1,super 是直接父类对象的引用。可以通过 super 来访问父类中被子类覆盖的方法或属性
注意:如果 a 继承 b,则 b 是 a 的父类,则只要调用 a 的构造方法,执行时一定会先调用 b 的构造方法
七、多态
1,多态的要点:
1-1,多态是方法的多态,不是属性的多态(多态与属性无关)。
1-2,多态的存在要有3个必要条件:继承、方法重写,父类引用指向子类对象
1-3,父类引用指向子类对象后,用该父类引用调用子类重写的方法,此时多态就出现了
八、数组
1,数组是相同类型数据的有序集合,数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成,其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们
2,数组的三个基本特点:
2-1,长度是确定的,数组一旦被创建,它的大小就是不可以改变的。
2-2,其元素必须是相同类型,不允许出现混合类型
2-3,数组类型可以是任何数据类型,包括基本类型和引用类型
注意:数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量
九、抽象类(abstract)
1,抽象类就是一种模版模式,抽象类为所有子类提供了一个通用模版,子类可以在这个模版基础上进行扩展,通过抽象类,可以避免子类设计的随意性,通过抽象类,我们就可以做到严格限制子类的设计,使子类之间更加通用
2,要点:
2-1,有抽象方法的类只能定义为抽象类
2-2,抽象类不能实例化,不能用 new 来实例化抽象类
2-3,抽象类可以包含属性、方法、构造方法,但是构造方法不能用 new 实例,只能用来被子类调用
2-4,抽象类只能用来继承
2-5,抽象方法必须被子类实现
十、接口 interface
1,接口中只有:常量、抽象方法
2,实现接口:implements
3,接口就是比“抽象类”还“抽象”的“抽象类”,可以更加规范的对子类进行约束。全面地专业的实现了:规范和具体实现的分离,接口就是规范,定义的是一组规则
4,接口是多继承的,继承了一个接口,必须实现该接口中的所有方法