理解面向对象:
面向对象是相对于面向的过程而言的。
面向过程和面向对象都是强调的一种思想。
面向过程:强调的是功能的行为。
面向对象:把功能封装进对象,强调具备了功能的对象。
面向对象是基于面向过程的。
需要对程序扩展时:
任何一个对象在不同的场景中应该有不同的状态及行为,比如:张三,张三在学校他是学生,具有学生的状态及行为,在公司工作他是员工,具有员工的状态及行为,取得驾照驾驶汽车,具备驾驶员的状态及行为,在图书馆看书,具备读者的状态与行为。由此可知,对象是复杂的,类是具体一些,对象存在多变性,而类则应具备不变性,可能有人不明白,我这里具体解释一下,我这里说的可变性,不是面向对象的那个多态,而是指对象角色的可变性,比如:学生类,那么它就表示学生,它不可能还表示作者,当然它可以表示人,但一般人不会这样表示,而对象则不同,正如上面我讲的张三的不同角色,他不同类的实例化,类不支持多重继承,我觉得对的,因为一个类可以代表一个角色,一个角色只能做这个角色的事情,比如:学生,他就是学习,老师,他就是教书,有人可能还会说,兼职多个角色,又是员工又是驾驶员,又是老师同时又是学生,是的,确实存在,但上面说过了,兼职的时候一个对象不可能同时做某个事情,比如:又是员工又是驾驶员,难道他同时工作又同时开车,有人说:出租车司机呀!好吧,你历害,但仍然是角色不同,出租车司机开车就是工作,当他不工作开车时,他就是驾驶员。
成员变量和局部变量的区别:
1,
成员变量定义在类中,整个类中都可以访问。
局部变量定义在函数,语句,局部代码块中,只在所属的区域有效。
2,
成员变量存在于堆内存的对象中。
局部变量存在于栈内存的方法中。
3,
成员变量随着对象的创建而存在,随着对象的消失而消失。
局部变量随着所属区域的执行而存在,随着所属区域的结束而释放。
4,
成员变量都有默认初始化值。
局部变量没有默认初始化值
封装
封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
好处:
将变化隔离、便于使用、提高重用性、提高安全性
封装原则:
将不需要对外提供的内容都隐藏起来、把属性都隐藏,提供公共方法对其访问。
private 关键字
是一个权限修饰符。
用于修饰成员(成员变量和成员函数)
被私有化的成员只在本类中有效。
常用之一:
将成员变量私有化,对外提供对应的set ,get方法对其进行访问。提高对数据访问的安全性。
private :私有,是一个权限修饰符。用于修饰成员。
私有的内容只在本类中有效。
注意: 私有仅仅是封装的一种体现。
没有消化完全,后续需要继续深入学习,先记录一下,方便自己查找
参考:https://blog.csdn.net/zhanshixiang/article/details/81142035
https://www.cnblogs.com/zuowj/p/4887242.html