本文现阶段只是简单来理解一下面向对象,如果要真正理解面向对象思想,需要不断去学习和积累
面向过程和面向对象区别
根本区别:面向过程,执行者思维;面向对象,设计者思维
1、面向对象:适用于比较复杂的事物,需用很多人完成的工作eg:造车
2、面向过程:适合于比较简单的、不需要协作的事务eg:开车
3、解决复杂问题,面向对象宏观上进行把握,微观处理上仍然是面向过程的
4、量变引起质变,不同的数量级必然采用不同的数据管理模式
(1、数据无管理时代—两个人一个公司,身兼数职
2、数组管理和企业部门制—公司有好多部门,各司其职,同类型的在一个部门
3、对象和企业项目制—一个项目一个集体,高度集成这个项目专门的公司,麻雀虽小,五脏俱全)
面向对象的三大特征
- 封装
★它指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类提供的方法来实现对内部信息的操作和访问。可以使我们容易地修改类的内部实现,而无需修改使用了该类的客户代码。 - 继承
★基于某个父类的扩展,子类可以继承父类的所有属性和方法,也可以增加父类不具备的属性和方法。或者直接重写父类的某些方法。让一个类继承另一个类需要用extends关键字 - 多态
★多态就是同一操作(方法)作用于不同的对象时,可以有不同的解释,产生不同的执行结果。
方法的重载就是类的多态性
重载 与 重写 的区别
方法重载:是指同一个类中的多个方法具有相同的名字,但这些方法具有不同的参数列表,返回类型不需要一致 。
不构成重载的三种情况
如果参数顺序不同不构成重载;
只有形参的名称不同,不构成方法的重载;
只有返回值不同不构成方法的重载。
方法重写:是存在子父类之间的,子类定义的方法与父类中的方法具有相同的方法名字,相同的参数表和相同的返回类型 。在继承中,如果子类和父类成员方法重名,访问规则:创建的对象是谁就优先用谁,没有则向上找
注意事项:无论是成员变量还是成员方法,如果没有都是向上找父类,绝不可能向下找子类
构造器(构造方法)
- 构造器虽然有返回值,但是不能定义返回值类型(返回值的类型肯定是本类),不能 在构造器里使用 return 返回某个值
- 构造器的方法名称必须和类名相同
创造一个对象的四个步骤: - 分配对象空间,并将对象成员变量初始化为 0 或空
- 执行属性值的显式初始化
- 执行构造方法
- 返回对象的地址给相关的变量