做码农已有好几年了,最近在重温Java基础知识,即然投入时间学习了就用文字记录下
面向对象
什么是面向对象和面向过程
什么是面向过程
面向过程是一种以过程为中心的编程思想,是一种自顶而下的编程方式。
什么是面向对象
简单来说,面向对象的开发范式中,程序员将问题分解成一个个步骤,将每个步骤进行相应的抽象,形成对象,通过不同对象之间的调用,组合解决问题。
就是说,在进行面向对象编程的时候,要把属性、行为等封装成对象,然后基于这些对象及对象的能力进行业务逻辑的实现。
面向对象的编程方法之所以更加所欢迎,是因为它更加符合人类的思维方式。这种方式编写出的代码扩展性、可维护性都高。
与其说面向对象是一种开发范式,倒不如说面向对象是一种对现实世界的理解和抽象,在运用继承、多态、封装等方法,通过抽象出对象的方式进行软件开发。
面向对象的三大基本特征
封装(Encapsulation)
所谓封装,就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的隐藏。
简单的说,一个类就是一个封装了数据以及操作这些数据的代码逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。
继承
继承是指这样一种能力:它可以使用现有类的所有功能,并在无需编写原来类的情况下,对现有功能进行扩展。
通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”或“超类”。继承的过程就是从一般到特殊的过程
多态
所谓多态是指一个类实例的相同方法在不同情形下有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。
这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。
最常见的多态就是将子类传入父类参数中,运行时调用父类方法时通过传入的子类决定具体的内部结构或行为。