面向对象(类和实例、数据封装、访问限制、继承和多态)

1.类和实例

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

内存地址

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

2.数据封装

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

从外部看Student类,就只需要知道,创建实例需要给出namescore,而如何打印,都是在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()等函数

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值