我是张晨,一转眼,我在新课已经学习了很长一段时间。回顾这几个月的时间,我收获了很多知识。这里是我的一点学习笔记。
一、理解面向对象
三大特性:封装、继承和多态
封装
通过访问修饰符(如 private)来修饰成员变量和成员方法,将不需要对外提供的内容都隐藏起 来,提供公共方法对其访问。
优点:
1. 隐藏实现细节,提供公共的访问方式
2.提高了代码的复用性
3.提高安全性
继承
子类可以继承父类的东西
优点:
1.想要使用这些属性和方法的时候,可以直接去使用父类的,而不需要自己再重新去定义,更大程度的实现代码复用。
2.我们不需要写很多的冗余的代码,把共性的全部抽到父类,可以直接调用,如果需要个性化自定义子类的方法时,去重写父类的方法即可。
多态
多态是同一个行为具有多个不同表现形式或形态的能力。
多态就是同一个接口,使用不同的实例而执行不同操作
优点:
便于接口的维护和拓展,可以将某一个子类切换成其他的子类,代码不需要做任何的改变,具有可替换性。
缺点:
只有是子类重写的父类的方法,父类才可以调用,但如果子类的方法不是重写父类的,而是子类独有的,那么这个时候多态就使用不了,这个是需要注意的点。
二、类和对象
什么是类?
具有同一特征的事物,是抽象的,不是真实存在的事物
特征即属性
行为是方法
面向对象中 变量叫做属性 函数叫做方法
一个类可以创建多个对象
示例:
定义一个洗衣机的长、宽、高,品牌
class WashingMachine:
h = 850
w = 460
c = 595
brand = '海尔'
# self 自己 具体的一个对象
def __init__(self):
self.__color = 'red' # 设置属性或者方法为私有方法
# 在属性或者方法前加两根下划线
def get_color(self):
"""获取颜色"""
return self.__color
def set_color(self, color):
"""设置颜色"""
if color in ['red', 'blue', 'yellow']:
self.__color = color
else:
print('违规的颜色')
def start(self):
print('启动洗衣机,开始洗衣服')
def stop(self):
print('关闭洗衣机')
# 类通过加括号来进行使用 生成一个具体的对象
haier1 = WashingMachine()
haier1.set_color('blue') # 通过给予的修改方法,去修改对象里面的颜色
print(haier1.get_color()) # 通过get方法获取当前的颜色
三、获取、修改对象属性
获取对象属性:
print(f'洗衣机高度:',haier1.h) # 获取对象的属性
修改对象属性:
haier1.h = 600
通过方法调用对应的功能:
haier1.start()
四、魔法方法
示例:
class A:
# 当你有了这个魔法方法,就相对于有了这个功能
def __len__(self):
return 0
def __init__(self): # 初始化魔法方法 当函数被生成的时候自动调用
# 作为类的参数传入
pass
a = A()
print(a.__dir__())
print(len(a))
#运行结果:
# ['__module__', '__len__', '__init__', '__dict__', '__weakref__', '__doc__', '__new__', '__repr__', '__hash__', '__str__', '__getattribute__', '__setattr__', '__delattr__', '__lt__', '__le__', '__eq__', '__ne__', '__gt__', '__ge__', '__reduce_ex__', '__reduce__', '__subclasshook__', '__init_subclass__', '__format__', '__sizeof__', '__dir__', '__class__']
# 0
暂时先分享这么多吧,希望大家在学习过程当中都能有所收获,感谢新课,如果想获取更多资料或者联系加群,可以关注我们新课的微信公众号,后台自动回复获取代码笔记资料。