面向对象
面向过程和面向对象的区别
两者都是软件开发思想,先有面向过程,后有面向对象。在大型项目中,针对面向过程的不足推出了面向对象开发思想。
编程思路不同:面向过程以实现功能的函数开发为主,而面向对象要首先抽象出类、属性及其方法,然后通过实例化类、执行方法来完成功能。
封装性:都具有封装性,但是面向过程是封装的是功能,而面向对象封装的是数据和功能。面向对象具有继承性和多态性,而面向过程没有继承性和多态 性,所以面向对象优势是明显。
面向对象的特性
封装性 :
封装代码
继承性 :
继承父类的属性及方法
多态性 :
多态性是指在不考虑实例类型的情况下使用实例
面向对象的思维特点
抽取(抽象)对象公有的属性和行为组(封装)成一个类(模板)
。
对类进行实例化
,获取类的对象
面向对象编程我们考虑的是有哪些对象,按照面向对象的思维特点不断创建对象
,使用对象
,指挥对象做事情。
面向过程和面向对象对比
1.面向过程:
优点:
性能比面向对象高,适合跟硬件联系很紧密的东西,例如单片机就采用面向过程编程
缺点:没有面向对象易维护、易复用、易扩展
2.面向对象:
优点:
易维护、易复用、易扩展,由于面向对象有封装,继承,多态的特性,可以设计出低耦合的系统,使系统更加灵活
缺点: 性能比面向对象低
面向对象三大特征
封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式,将变量隔离,便于使用,提高复用性和安全性。
继承:继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。通过使用继承可以提高代码复用性。继承是多态的前提。
多态:就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序 运行期间才确定,即一个引用变量到底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。
多态:同一对象,引用不同的实例,调用相同的方法,得到不同的结果。
继承是多态的一种体现,但继承不是多态。
由父类引用创建的对象,只能调用子类从父类继承的方法(包含重写的方法),不能调用自己扩展的方法。
this
指向这个类中的成员变量,被指向的这个属性就会变成成员变量
作用:用于区分成员变量和局部变量
final修饰对象,对象不能被再次引用
this.变量;
super
this&super关键字:
- this:代表本类对象的引用
- super:代表父类存储空间的标识(可以理解为父类对象引用)
构造方法:
- this(…) - 访问本类构造方法
- super(…) - 访问父类构造方法
final
final修饰对象,对象不能被再次引用
访问修饰符
被final修饰的类不可以被继承。
被final修饰的方法不可以被重写。
被final修饰的变量不可以被改变,被final修饰不可变的是变量的引用,而不是引用指向的内容,引用指向的内容是可以改变的。