黑马程序员——java中的面向对象简介

时间:2023-02-14 12:06:49

面向对象(Object Oriented,OO)简介:

定义:面向对象(Object Oriented,OO)是软件开过过程中使用一种思维方式 。

        面向过程:强调功能行为,关注完成的过程

        面向对象:将功能封装进对象,强调具备了功能的对象,不关注过程

        面向对象与面向过程都是一种思想

        面向对象是基于面向过程的

特点:
        是一种更符合人们思考习惯的思想。
        可以将复杂的事情简单化。
        将程序由执行者转换成了指挥者。

面向对象完成需求:
        明确开发功能需求。
        查找具有该功能的类。
        如果不存在满足功能的类,则定义这样的类。
        创建该类对象,使用对象完成功能。

面向对象三大特征:
        封装(encapsulation)
        继承(inheritance)
        多态(polymorphism
)

封装(encapsulation)简介、代码实现及内存解析:

定义:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
优点:
        将变化隔离
        便于使用
        提高重用性
        提高安全性
原则:
        将不需要对外提供的内容都隐藏起来。
        把属性都隐藏,提供公共方法对其访问。

 

黑马程序员——java中的面向对象简介

静态(static)关键字内存解析:
黑马程序员——java中的面向对象简介

 

继承(inheritance)简介、代码实现及内存解析:

定义:

        多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。

        这多个类称为子类,单独这个类称为父类或者超类。
        子类可以直接访问父类中非私有的成员变量与成员方法。

格式:

        通过 extends 关键字让类与类之间产生继承关系
        class SubDemo extends Demo{}

优点:
        继承的出现提高了代码的复用性。
        继承的出现让类与类之间产生了关系,是多态的前提之一。

弊端:

        使类与类之间产生了更强的耦合性

特点:
        java只支持单继承不支持多继承。
        java支持多层继承。
        任何类都直接或者间接继承自Object类。

注意事项:
        不要为了某个功能而去继承,需要满足”is a”的关系。


黑马程序员——java中的面向对象简介

引用类型变量被final修饰,不能再指向其他对象地址:

黑马程序员——java中的面向对象简介

多态(polymorphism)简介、代码实现及内存解析:

定义:

        某一种事物的多种形态。
前提:
        需要存在继承或者实现关系。
        要有方法覆盖操作,否则没有意义。
        父类或者接口的引用指向自己的子类对象。
优点:
        开发当中要符合开闭原则:对修改关闭,对扩展开放。
        多态的存在提高了程序的扩展性和后期可维护性。

黑马程序员——java中的面向对象简介