一、面向对象
面向对象的三大基本特征:封装 、继承 、多态。
1、类
类的组成:构造器 、成员变量 、方法
[修饰符] class 类名{ //修饰符可以是public 、final 、abstract,类名首字母大写。
构造器 //系统会提供一个默认的构造器,构造器名称与类名相同,无参数、无返回值,public修饰,也可自定义构造器,名称须与类名相同,不要使用返回值。
成员变量 //修饰符可以是public 、private 、protected 、static 、final
方法 //修饰符同上,外加abstract,返回值类型/void(无返回值) 、方法名称,public 、private 、protected只能出现其一,final 、abstract只能出现其一
}
类里面各成员方法之间可以相互调用,static修饰的成员不能访问没有被static的成员,
成员变量分为类变量、实例变量,其中类变量以static修饰符修饰,实例变量不是以static修饰,类变量以类名 .类变量访问,实例变量以实例名 . 实例变量或者通过this访问 。
局部变量存在于形参、方法、局部代码块中,成员变量和类一样,系统会为其分配内存空间(堆内存) 。
递归方法,就是在方法中循环调用其本身。方法的重载,同一个类名、同一个方法名,形参个数不同 。
final修饰的变量、方法、类,不可更改。
2、继承
继承是面相对象的三大特征的其中之一,实现继承的类被称为子类,被继承的类称为父类,也称为基类,可以将子类所共有的特性,写在父类中,使用继承可以提高重复使用性。
类的继承,使用extends关键字,在java中只支持单继承。
3、封装
封装是面相对象三大特征之一,将对象的内部信息和模块隐藏起来,不允许外部直接访问和操作,通过该对象提供的方法来操作和访问。
4、多态
java引用类型有两种,编译时类型和运行时类型,当编译时类型和运行时类型不相同时,就会出现多态。
抽象类
抽象类,使用abstract声明,包含成员变量、方法体,不能被创建实例,可以包含抽象方法和普通方法,包含抽象方法的类必须是抽象类,方法的具体实现在是在子类中完成的。
接口
接口是一种特殊的抽象类,接口里面的方法必须是抽象方法或类方法,成员变量只能是静态的,使用interface关键字声明,类通过implements实现接口中的方法。
接口和抽象类的比较:
接口和抽象类都不能被实例化,都位于继承树的顶端,用于其他类继承或实现。
接口和抽象类都包含抽象方法,实现接口和继承抽象类的普通方法必须实现这些抽象方法。
接口里面只能定义抽象方法和默认方法,不能定义静态方法,抽象类可以定义静态方法和普通变量、静态变量,接口不能定义普通成员变量,只能定义静态变量。
接口不包含构造器,抽象类包含构造器,但不是用来创建的,而是继承该抽象类的普通类来完成抽象类的初始化工作。