Java面向对象
Java面向对象
1.Java面向对象是什么
OOP(面向对象编程)、OOD(面向对象设计)、OOA(面向对象的分析)
Object Oriented Programming
万物皆对象。将现实的事物抽象出来,注意抽象这个词是重点,把现实对象的事物以及关系,抽象成类,通过继承、实现、组合的方式把万事万物都给容纳了。实现了对现实世界的抽象和数学建模。
抽象会使复杂的问题简单化,从以前执行者变成指挥者,面向对象更符合人类思维,面向过程符合机器思想。
2.面向过程和面向对象的优缺点
面向过程是具体化的、流程化的
面向对象的底层是面向过程,把面向过程抽象成类,然后封装,方便我们使用就是面向对象
1.面向过程的优缺点:
优点: 性能比面向对象好,因为类的调用需要实例化,开销比较大,消耗资源比较多
缺点: 不易维护、不易复用、不易扩展
2.面向对象的优缺点:
优点: 易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活,更易于维护
缺点: 性能比面向过程差
3.面向对象三大特性五大原则
1.三大特性:
1.封装: 隐藏对象的属性和实现细节,仅对外提供公有的访问方式,将变化隔离,便于使用,提高复用性和安全性。
2.继承: 提高代码的复用性,继承是多态的前提。
3.多态: 父类或接口定义的引用变量指向子类或具体实现的实例对象,提高程序的扩展性。
2.五大原则:
1.单一职责原则: 类的功能要单一,不能包罗万象,跟杂货铺一样。
2.开放封闭原则: 一个模块对于扩展是开放的,对于修改是封闭的。想增加功能可以,想修改不行。
3.里式替换原则: 子类可以替换父类出现在父类所能出现的地方。子类能代表父类进行一些行为。
4.依赖倒置原则: 高层次的模块不应该依赖于低层次的模块,都应该依赖于抽象。抽象不应该依赖于具体实现,具体实现应该依赖于抽象。
5.接口分离原则: 设计时采用多个与特定客户类有关的接口比采用一个通用的接口要好。
4.继承的注意事项
1. 父类的构造方法不能被继承。
2. 构造方法不能被继承,但是可以使用super关键字去访问父类的构造方法。
3. 方法和属性可以被继承(只能继承父类非私有化的属性和方法)。
4. super关键字必须是构造方法的第一行语句。
5. 子类的构造方法第一行语句默认都是super();
6. Java在创建一个子类对象时,首先调用父类的不带参数的构造方法,生成父类对象,然后在去调用子类的构造方法,生成子类对象。
总结:
面向对象比面向过程更加符合人类思维模式,也更加方便,从执行者变成指挥者。好处是提高代码的复用性,符合高内聚低耦合的思想。也更加安全。