#面向对象的三大特征
#1.封装: 提高数据安全性
#将数据(属性)和行为(方法)包装到类对象中。在方法内部对属性进行操作,在类对象的外部调用方法。
#这样,无需关心方法内部的具体实现细节,从而隔离了复杂度
#在Python中没有专门的修饰符用于属性的私有,如果该属性不希望在类外部被访问,前边使用两个'_'
#2.继承
#提高代码的复用性
#3.多态
#提高程序的可扩展性和可重复性
'''
类是对属性和方法的包装
'''
class Car:
def __init__(self,brand):
self.br=brand
def start(self):
print('汽车已启动')
@staticmethod
def me(): # 静态方法什么都不写
print('我使用了staticmethod进行修饰,所以我是静态方法')
@classmethod
def cm(cls): # 类方法cls
print('我是类方法,因为我使用了classmethod进行修饰')
car=Car('宝马X5')
print(car.br)
print(Car.start(car))
'''
在Python中没有专门的修饰符用于属性的私有,如果该属性不希望在类外部被访问,前边使用两个'_'
'''
class Student:
def __init__(self,name,age):
self.name=name
self.__age=age#__表明不可在类的外部使用
def show(self):
print(self.name,self.__age)
stu=Student('张三',20)
stu.show()
Student.show(stu)
#在类的外部使用name与age
print(stu.name)
'''
以下语句会报错
print(stu.__age)#'Student' object has no attribute '__age'
'''
print(stu._Student__age)#在类的外部可通过_类名__进行访问