面向对象(Object Oriented,OO)简介:
定义:面向对象(Object Oriented,OO)是软件开过过程中使用一种思维方式 。
面向过程:强调功能行为,关注完成的过程
面向对象:将功能封装进对象,强调具备了功能的对象,不关注过程
面向对象与面向过程都是一种思想
面向对象是基于面向过程的
特点:
是一种更符合人们思考习惯的思想。
可以将复杂的事情简单化。
将程序由执行者转换成了指挥者。
面向对象完成需求:
明确开发功能需求。
查找具有该功能的类。
如果不存在满足功能的类,则定义这样的类。
创建该类对象,使用对象完成功能。
面向对象三大特征:
封装(encapsulation)
继承(inheritance)
多态(polymorphism)
封装(encapsulation)简介、代码实现及内存解析:
定义:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
优点:
将变化隔离
便于使用
提高重用性
提高安全性
原则:
将不需要对外提供的内容都隐藏起来。
把属性都隐藏,提供公共方法对其访问。
静态(static)关键字内存解析:
继承(inheritance)简介、代码实现及内存解析:
定义:
多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。
这多个类称为子类,单独这个类称为父类或者超类。
子类可以直接访问父类中非私有的成员变量与成员方法。
格式:
通过 extends 关键字让类与类之间产生继承关系
class SubDemo extends Demo{}
优点:
继承的出现提高了代码的复用性。
继承的出现让类与类之间产生了关系,是多态的前提之一。
弊端:
使类与类之间产生了更强的耦合性
特点:
java只支持单继承不支持多继承。
java支持多层继承。
任何类都直接或者间接继承自Object类。
注意事项:
不要为了某个功能而去继承,需要满足”is a”的关系。
引用类型变量被final修饰,不能再指向其他对象地址:
多态(polymorphism)简介、代码实现及内存解析:
定义:
某一种事物的多种形态。
前提:
需要存在继承或者实现关系。
要有方法覆盖操作,否则没有意义。
父类或者接口的引用指向自己的子类对象。
优点:
开发当中要符合开闭原则:对修改关闭,对扩展开放。
多态的存在提高了程序的扩展性和后期可维护性。