面向对象不是一种技术,而是一种思想。它指导我们以什么形式组织代码,以什么思路解决问题。
面向对象编程,是一种通过对象方式,把现实世界映射到计算机世界的编程方法。
面向对象解决问题的思路:把构成问题的事物分解成各个对象,而建立对象的目的并不是为了完成一个个步骤,而是为了描述某个事物在解决整个问题的过程中所发生的行为。
面向过程解决问题的思路:分析解决问题的步骤,然后用函数把这些步骤一步一步实现,然后在使用的时候一一调用即可。
对于一个具体的例子,如何造一辆车,这两种思想的解决问题的思维:
面向对象有三大特性:
- 封装:将客观事物封装为逻辑实体,实体的属性和功能相结合,形成一个有机的整体。对逻辑实体的属性和功能实现进行访问控制,向信任的逻辑实体开,对不信任的逻辑实体隐藏。通过外部接口间接访问,调用者无需知道功能如何实现。封装的目的:隐藏对象的实现细节;提高安全性,设定访问控制,只允许具有特定权限的使用者调用;简化编程,调用方无需知道具体的实现细节。
- 继承:在Java语言中,继承就是子类继承父类的属性和方法,使得子类实例拥有父类的属性和方法。
- 多态:多态字面理解就是多种形态。在Java中具体指,通过动态绑定,在运行时根据对象的实际类型来调用对应的方法。多态可以通过继承或接口来实现。那继承来举例,子类继承父类,父类引用执行子类对象,在使用父类引用调用方法时,编译期间好像是调用的父类的方法,但是在运行时,实际调用的是子类的方法实现的版本。