面向对象-笔记

理解面向对象:

                 面向对象是相对于面向的过程而言的。

                 面向过程和面向对象都是强调的一种思想。

                 面向过程:强调的是功能的行为。

                 面向对象:把功能封装进对象,强调具备了功能的对象。

                 面向对象是基于面向过程的。

 

需要对程序扩展时:

任何一个对象在不同的场景中应该有不同的状态及行为,比如:张三,张三在学校他是学生,具有学生的状态及行为,在公司工作他是员工,具有员工的状态及行为,取得驾照驾驶汽车,具备驾驶员的状态及行为,在图书馆看书,具备读者的状态与行为。由此可知,对象是复杂的,类是具体一些,对象存在多变性,而类则应具备不变性,可能有人不明白,我这里具体解释一下,我这里说的可变性,不是面向对象的那个多态,而是指对象角色的可变性,比如:学生类,那么它就表示学生,它不可能还表示作者,当然它可以表示人,但一般人不会这样表示,而对象则不同,正如上面我讲的张三的不同角色,他不同类的实例化,类不支持多重继承,我觉得对的,因为一个类可以代表一个角色,一个角色只能做这个角色的事情,比如:学生,他就是学习,老师,他就是教书,有人可能还会说,兼职多个角色,又是员工又是驾驶员,又是老师同时又是学生,是的,确实存在,但上面说过了,兼职的时候一个对象不可能同时做某个事情,比如:又是员工又是驾驶员,难道他同时工作又同时开车,有人说:出租车司机呀!好吧,你历害,但仍然是角色不同,出租车司机开车就是工作,当他不工作开车时,他就是驾驶员。

 

成员变量和局部变量的区别:

 

1,
成员变量定义在类中,整个类中都可以访问。
局部变量定义在函数,语句,局部代码块中,只在所属的区域有效。

2,
成员变量存在于堆内存的对象中。
局部变量存在于栈内存的方法中。

3,
成员变量随着对象的创建而存在,随着对象的消失而消失。
局部变量随着所属区域的执行而存在,随着所属区域的结束而释放。

4,
成员变量都有默认初始化值。
局部变量没有默认初始化值

封装
    
          封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

       好处:

             将变化隔离、便于使用、提高重用性、提高安全性

       封装原则:

            将不需要对外提供的内容都隐藏起来、把属性都隐藏,提供公共方法对其访问。

 private 关键字

        是一个权限修饰符。

        用于修饰成员(成员变量和成员函数)

        被私有化的成员只在本类中有效。

常用之一:

     将成员变量私有化,对外提供对应的set ,get方法对其进行访问。提高对数据访问的安全性。

 private :私有,是一个权限修饰符。用于修饰成员。

                  私有的内容只在本类中有效。

注意: 私有仅仅是封装的一种体现。          
 

没有消化完全,后续需要继续深入学习,先记录一下,方便自己查找


参考:https://blog.csdn.net/zhanshixiang/article/details/81142035 

https://www.cnblogs.com/zuowj/p/4887242.html

https://www.cnblogs.com/chiangchou/p/js-oop2.html

https://blog.csdn.net/qq_34569497/article/details/81910426

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值