|
|
1
11
隐藏实现详细信息。如果您选择公开您的属性,然后决定更改它们的工作方式,则必须更改所有关联的代码。 使用getter和setter,您通常可以在不更改可见API的情况下更改内部实现细节(从而避免更改任何使用相关类的API的代码)。 |
|
|
2
3
getter和setter可以进行验证和惰性实例化,而public成员则不能。 顺便提一句,这不是语言不可知论,因为实现属性的大多数语言都抽象出实现,因此它们在代码中看起来像公共成员。 |
|
|
3
3
因为有时会有一些关于变量可能是什么的约束,并且必须在设置变量时检查它是否有意义。 例如,如果您的年龄不允许是-1,您将在您的设置器中检查它。
|
|
|
4
2
无论代码中有什么“属性”,setter和getter都将应用于属性。
例如,您可以
|
|
|
5
0
这是封装原理的一部分。您可以使用setter和getter作为与对象交互的接口,这样您可以(例如)稍后添加任何功能(例如验证输入数据),而不必接触使用类的代码。 |
|
|
Amiraslan · 初始化具有getter和setter的字段? 9 年前 |
|
|
GenerationLost · 函数中的C++常量参数 9 年前 |
|
|
APorter1031 · Python类变量或@属性 9 年前 |
|
|
Mumfordwiz · python属性的不同setter 10 年前 |