首页 > 其他分享 >11.5面向对象的三大特性

11.5面向对象的三大特性

时间:2022-09-07 19:24:30浏览次数:75  
标签:__ name ## 11.5 self 面向对象 def print 三大

# 面向对象三大特性: 封装 继承 多态

# 广义得封装:
# 把方法和变量都封装在类中
# 比如人狗大战
# 规范创建对象
# 创建所有人得属性名都能一致
# 把所有得方法装进一个角色中

# 狭义得封装:
# 在类得外部干脆不能调用了,私有化了
#
class Student:
def __init__(self, name):
self.name = name


laowang = Student('老王')


# print(laowang.name)
# laowang.name = '老丁'
# print(laowang.name)


# 狭义得封装:
# class Student:
# def __init__(self,name):
# self.__name = name
#
# def get_name(self):
# return self.__name
#
#
# laowang=Student('老王')
# print(laowang.get_name())
#
# print(laowang.name)

# 作用: 为了更好得限制用户,不能随意得查看和修改,增加程序得安全性


# class A:
# __VAL = [] # 私有静态变量
#
# def __init__(self):
# print(A.__VAL) # 类得内部可以调
#
#
# # print(A.VAL)
# # print(A.__VAL)
# a=A()


#
# class B:
# def __aaa(self):
# '''私有得方法,相当于把方法保护起来了'''
# print('aaaa')
#
# def func(self):
# self.__aaa()
#
# b=B()
# # b.aaa()
# # b.__aaa()
# b.func()

#
# 总结: 在类得内部,属性可以变成私有得,类变量可以变成私有得,实例方法可以变成私有得,
# 一旦变成私有得,就只能在类得内部使用,而不能在类得外部使用


# 思考:
# 1.私有化到底怎么做到得?
# 2.私有变量能不能被继承?

# class A :
# __abc = 123 # 偷偷改了名字
#
#
# print(A.__dict__)
# print(A._A__abc) # 没人这么调

# 2.私有得变量不能被继承!

# class A:
# def __func(self): # _A_func
# print('in A')
#
#
# class B(A):
# def wahaha(self):
# self.__func() # _B_func
#
# b=B()
# b.wahaha()


# 私有练习题
# class A:
#
# def __init__(self):
# self.__func()
#
# def __func(self):
# print('in A')
#
#
# class B(A):
# def __func(self):
# print('in B')
#
#
# b = B()


# 多态
# 在python中一切皆对象,处处是多态

# def func(a:object,b:bool,c:list):
# print(a,b,c)
#
# func('1',True, {})

标签:__,name,##,11.5,self,面向对象,def,print,三大
From: https://www.cnblogs.com/zhh0125/p/16666930.html

相关文章

  • 11.6面向对象的3个装饰器
    #比如计算学生得年龄,传生日#importtime##classStudent:##def__init__(self,name,birth):#self.birth=birth#self.name=name##@pro......
  • 10.1纯函数面向对象编程
    #人狗大战#人-角色#名称等级血量攻击力性别职业#zhangsan={'name':"zhangsan",'level':1,'hp':200,'ad':40,'性别':'不详','职业':'射手'}##l......
  • 10.2面向对象
    #面向对象语法#什么是抽象?#类-抽象的角色-具体的#我们创建类的时候会给这个类创建很多抽象的属性和名字,#具体值都是创建对象(角色)过程中体现出来的#class类名:类名......
  • 面向对象编程
    背景:1.游戏引擎运行于操作系统上,操作系统又运行于特定的硬件(CUP/RAM/IO)上,因此硬件的瓶颈会限制游戏引擎的性能;2.由于摩尔定律接近天花板,芯片上晶体管的密集程度再增加的话......
  • 数据库三大范式通俗理解
    第一范式(1NF):字段不可分;第二范式(2NF):有主键,非主键字段依赖主键;第三范式(3NF):非主键字段不能相互依赖 https://baijiahao.baidu.com/s?id=1703973144064369296 ......
  • 面向对象-中级篇
    包:什么是包?  可以把它理解为一个文件夹包的作用?  区分相同名称的类,方便管理类,控制访问范围如何创建包?和创建文件夹一样如何引入包?语法:import包,如:importjav......
  • 面向对象编程
    面向对象编程什么是面向对象?面向对象编程(OOP)是**一种计算机编程模型,它围绕数据或对象而不是功能和逻辑来组织软件设计**.对象可以定义为具有独特属性和行为的数据字......
  • 面向对象分析与设计的底层逻辑
    作者:不拔面向对象是符合人认识事物的基本方法人是怎么认识事物的在面向对象出现之前,已有面向过程的分析方法,为什么面向对象被提出了呢?究其本质原因,人们发现面向过程并......
  • 【Java基础】面向对象的特征:继承性
    1.什么是继承继承表示两个类之间的一种关系。子类继承父类,则子类具有父类的属性和方法,同时可以扩展自己属性或功能。子类更具体,父类更抽象。2.为什么要有继承定义两......
  • 什么是面向对象编程(OOP)?
    什么是面向对象编程(OOP)?面向对象编程,通常缩写为OOP,是一种流行的编程范式。它被许多软件应用程序/技术公司使用,并得到各种编程语言(例如,C++、Python、Java)的支持。在本文中,......