什么是面向对象? 面向对象: 生活中的一切事物都可以被称之为对象,生活中随处可见的事物就是一个对象,我们可以将这些事物的状态特征(属性)以及行为特征(方法)提取并出来,并以固定的形式表示。
面向对象VS面向过程:
面向过程更加注重每一个步骤以及执行顺序,而面向对象则会考虑事情有哪些参与者,能够做什么。
面向过程会将任务拆分为一系列步骤:(以洗衣服为例)
1、打开洗衣机 2、放衣服 3、放洗衣粉 4、清洗 5、烘干 面向对象则会拆分人和洗衣机两个对象:
人:打开洗衣机、放衣服、放洗衣粉 洗衣机:清洗、烘干 就结果而言:⾯向过程性能⽐⾯向对象⾼。 因为类调⽤时需要实例化,开销比较⼤,比较消耗资源,所以当性能是最重要的考量因素的时候,⼀般采⽤⾯向过程开发。但是,⾯向过程没有⾯向对象易维护、易复⽤、易扩展。因为⾯向对象有封装、继承、多态性的特性,所以可以设计出低耦合的系统,使系统更加灵活、更加易于维护。但是,⾯向对象性能⽐⾯向过程低。
封装、继承与多态 封装: 封装指隐藏对象的状态信息(属性),不允许外部对象直接访问对象的内部信息。但是可以提供一些可以被外界访问的方法来操作属性。通过封装,明确标识出允许外部使用的所有成员函数项,而其内部细节则对外部调用透明,外部调用者无需去关心其具体内部实现。
继承:
当多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承单独的那个类即可。多个类可以称为子类,单独这个类称为父类或者超类。 继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的属性或方法(对父类进行扩展),也可以拥有父类的属性和方法,并且通过自己的方法再次实现父类的方法(重写)。通过使用继承,可以快速地创建新的类,可以提高代码的重用,程序的可维护性,节省大量创建新类的时间 ,提高我们的开发效率。 Java只支持单继承,不支持多继承。一个类只能有一个父类,不可以有多个父类。Java支持多层继承(继承体系)。Java继承了父类非私有的成员变量和成员方法,但是请注意:子类是无法继承父类的构造方法的。 多态:
多态:一种事物的多种形态(多态的前提:继承、重写、向上转型),比如说所属类不同的对象,在调用其共同父类的方法时,会产生不同的执行结果。 通过多态可以提高代码的可重用性,降低模块之间的耦合度。(在Java中方法的重载和重写是实现多态的2种方式。) www.bilibili.com/video/BV1qL…