面向对象编程(OOP—Object-Oriented Programming)
面向对象编程的本质:以类的方式组织代码,以对象的方式组织(封装)数据
三大特性:封装,继承,多态
构造器
1、使用new关键字,必须有构造器,本质是在调用构造器
2、构造器用来初始化值
生成构造器:alt+insert
封装(private:私有的,对应public)
特点:高内聚,低耦合
set、get方法(ALT+INSERT)
封装的意义
1、提高程序的安全性,保护数据
2、隐藏代码的实现细节
3、统一接口(setget)
4、提高系统可维护性
继承
子类(派生类)是父类(基类)的扩展(extends)
子类继承父类的所有方法
所有的类,默认直接或间接继承Object
JAVA中类只有单继承,没有多继承
CTRL+H:继承结构
super:调用上级
1、super调用父类的构造方法,必须在构造方法的第一个
2、super只用在子类
3、super、this不能同时调用构造方法
4、this():本类的构造 super():父类的构造
方法的重写(alt+insert:override)子类覆盖父类的方法
1、需要有继承关系,子类重写父类的方法
2、静态方法无法重写
3、方法名、参数列表必须相同,方法体不同
4、修饰符范围可以扩大不能缩小:public>protected>defauls>private
多态
1、多态是方法的多态,属性没有多态
2、父类和子类有联系,否则类型转换异常!
3、存在条件:继承关系、方法需要重写、父类引用指向子类
4、static、final、private无法重写
instanceof关键字(判断是否存在父类子类关系)
类型转换(父类调用子类方法需转换类型:高=》低)
1、父类引用指向子类的对象
2、向上转型:子类转换为父类(会丢失方法)
3、向下转型:父类转换为子类(强制转换)
4、方便方法调用,减少重复代码
抽象类(约束)
1、子类继承抽象类必须实现抽象类的方法
2、不能new抽象类,只能靠子类重写方法去实现
3、抽象类中可以写普通方法
4、抽象方法必须在抽象类中
static关键字
静态代码块最先执行,且只执行一次,其次是匿名代码块
接口
关键字interface(接口)
关键字implements(实现)
1、implements可以实现多个接口
2、接口中的方法必须重写
3、接口用于定义一些方法,让不同的人实现
4、接口的方法默认修饰词:public abstract
5、接口的常量默认修饰词:public static final
6、接口不能被实例化,接口中没有构造方法
内部类
1、通过外部类实例化内部类
2、内部类可以获得外部类的私有(private)属性