对于JAVA面向对象的理解
基本概念:
现实世界中的对象是指具体的某一个事物,即在现实生活中能够感受到的事物。
面向对象程序设计中的对象是系统设计的最基本数据行为单元,包含两部分:数据和行为,即属性和方法。
面向对象编程是一种编程思维,也是一种思考解决问题的方式。
构建面向对象思想的方式:先具体-->再抽象,即提取共性,便于后续实现扩展;
先整体-->再局部,通过不断分解,设计基本数据行为单元。
面向过程和面向对象
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题中的行为。
四大基本特性:
抽象
摒弃个性化,提取共性化的方面,包括数据抽象和过程抽象:
数据抽象 -->表示世界中一类事物的特征,就是对象的属性。比如鸟有翅膀,羽毛等(类的属性)
过程抽象 -->表示世界中一类事物的行为,就是对象的行为。比如鸟会飞,会叫(类的方法)
优点:更好的描述现实世界;更好的扩展性(体现在继承上)
封装
把行为和数据包装起来,不可对数据直接访问,对外提供set,get方法。
优点:模块独立性强,便于维护;修改仅限于内部,减少修改带来的风险。
继承
体现了程序结构化设计;
重用父类属性和方法;
是实现多态的充分必要条件。
多态
不同子类的对象对同一命令做出不同响应。方法的重写,重载与动态链接构成多态性。
重写:子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。
重载:在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。
动态链接:父类中定义的方法,子类中重写了该方法,父类类型的引用将调用子类中的这个方法。