封装
-
定义:考虑数据的安全,进行封装,告诉协同开发者,不要随便更改该数据。
-
封装形式
- 私有属性(弱封装)—基于君子协议,即私有属性并非不可改动,只是提醒
-
方式:在变量前加下划线
-
隐藏属性(强封装)— 此时外部不能访问改该属性,并且不能够修改数据
- 方式: 变量前加双下划线
-
- 私有属性(弱封装)—基于君子协议,即私有属性并非不可改动,只是提醒
这里可以看到,输出语句中,类的变量都被标记了。说明无法访问
现在通过类的内部方法访问输出数据,发现即使想赋值修改数据,但结果一样。说明强封装只有通过类内部修改。
property装饰器
- 跟前面的装饰器使用方法一样,@prperty可以直接类方法省略括号调用
- 多用于将方法转换为相同名称的只读属性,可以与所定义的属性配合使用,这样可以防止属性被修改
- 这里只是举个例子
getter()和setter()方法
- 可以修改类的属性
- 同时用于协同开发者之间的交流
- 例如:设置了getter方法,但没设置setter方法,就是告诉协同开发者,这是只读属性
getter方法类似使用
- 例如:设置了getter方法,但没设置setter方法,就是告诉协同开发者,这是只读属性