面向对象类

https://blog.csdn.net/qq_42340123/article/details/81625807 

1.类和实例
类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。

内存地址

给实例绑定属性

由于类可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去

2.数据封装
就是在类里面定义方法,来访问类里面的数据

从外部看Student类,就只需要知道,创建实例需要给出name和score,而如何打印,都是在Student类的内部定义的,这些数据和逻辑被“封装”起来了,调用很容易,但却不用知道内部实现的细节。

3.访问限制
属性名称前面加上“_ _”两个下划线,就变成了私有变量只有内部可以访问。

【双下划线开头,并且以双下划线结尾的“__xx__”,是特殊变量,特殊变量是可以直接访问的,不是private变量】

如修改上面的Student类

这样就访问不到了,限制了访问。如果想要获取 可以在类中再次定义如get_score()方法,用来获取。【其他需求同理】

请把下面的Student对象的gender字段对外隐藏起来,用get_gender()和set_gender()代替,并检查参数有效性:

4.继承和多态
继承就是class Student(object): 因为Student 没有继承什么,所以写object 所有的类都继承object。


可以在子类中对父类中的方法进行改进(当存在和父类相同的方法的时候,运行时子类的方法会覆盖父类的方法)

多态就是比如Student 继承了People 可以看到 A既是Student类型又是People类型。【反过来就不行】

多态的好处:


新增一个People的子类,不必对another()做任何修改,实际上,任何依赖People作为参数的函数或者方法都可以不加修改地正常运行,原因就在于多态。

开闭原则:
对扩展开放:允许新增People子类;

对修改封闭:不需要修改依赖People类型的another()等函数
--------------------- 
作者:大喵喵吼 
来源:CSDN 
原文:https://blog.csdn.net/qq_39416129/article/details/82223450 
版权声明:本文为博主原创文章,转载请附上博文链接!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值