gpt4 book ai didi

java - 当我能够使用 setter 方法更改属性值时,封装有什么用?

转载 作者:太空狗 更新时间:2023-10-29 22:36:07 24 4
gpt4 key购买 nike

我尝试了很多次,但我没能理解这一点。

Encapsulation is the technique of making the fields in a class private and providing access to the fields via public methods. If a field is declared private, it cannot be accessed by anyone outside the class, thereby hiding the fields within the class.

我们如何通过setter方法改变字段的值?我们如何防止直接访问字段?封装的真正用途是什么?

最佳答案

假设您有一个 age 属性。

用户可以输入一个值 -10,虽然它是一个有效数字,但它是一个无效的年龄。 setter 方法可以具有允许您捕获此类内容的逻辑。

另一种情况是拥有 age 字段,但将其隐藏。你也可以有一个出生日期字段,在它的 setter 中你会有这样的东西:

...
private int age
private Date dob

...
public void setDateOfBirth(Date dob)
{
this.dob = dob;
age = ... //some logic to calculate the age from the Date of Birth.
}

关于java - 当我能够使用 setter 方法更改属性值时,封装有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16418571/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com