一 面向对象
编程的目的是为了处理一系列问题,每一个问题的解决都会被拆分成一个一个处理过程,面向过程编程是指将过程封装为一个一个函数,将其按顺序逐个解决,而面向对象编程则是将这一过程封装成一个或多个对象进行处理,处理的逻辑在对象内部。
面向对象优势: 复用性好,可读性好,扩展性好
面向过程优势: 性能好
二 封装
1 定义
隐藏对象的属性和实现细节,仅对外提供公共访问方式
2 目的
将变化隔离,便于使用,提高复用性和安全性
3 使用
范围:全局(不同包) > 不同包子类 > 同一包中 > 同一类中
说明:在某一范围中可访问,即表示在其子范围中也能访问
public | protect | default | private | |
修饰类 | 全局可访问 | 不允许修饰 | 同一包中可访问 | 不允许修饰 |
修饰属性 | 全局可访问 | 不同包的子类可以访问 |
同一包中可访问 |
同一类中可访问 |
修饰方法 | 全局可访问 | 不同包的子类可以访问 | 同一包中可访问 | 同一类中可访问 |
三 继承
1 定义
子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为
2 目的
代码复用
3 使用
1)关键字
extends, implements
4 继承的特性
-
-
子类拥有父类非 private 的属性、方法。
-
子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
-
子类可以用自己的方式实现父类的方法。
-
Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 A 类继承 B 类,B 类继承 C 类,所以按照关系就是 C 类是 B 类的父类,B 类是 A 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。
-
提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)。少用继承,多用依赖
-
四 多态
1 定义
多态是同一个行为具有多个不同表现形式或形态的能力。
2 目的
增强程序的灵活性(运行过程中可变换不同的能力)
3 使用
1)父类引用指向子类对象
2)方法重载和重写