gpt4 book ai didi

java - 公共(public)属性(property)不好的真实例子

转载 作者:行者123 更新时间:2023-11-29 08:43:53 25 4
gpt4 key购买 nike

我无数次读到类的公共(public)属性是一个主要的失礼,但我不明白为什么在输入/输出时未转换的数据。

我会写的东西的例子

public class Employee
{
public String firstName;
public String lastName;
private int ssn = 0;
public boolean setSsn(String s)
{
//makes perfect sense why something like an ssn would use a getter setter
//some code to validate ssn
if(!validSsn(s)){
ssn = 0;
return false;
}
ssn = raw;
return true;
}
public String getSsn()
{
return ssn;
}
private boolean validSsn(String s)
{
//validation goes here
retrun val;
}

//I don't understand why I should make firstName private
// and then write
public void setFirstName(String s)
{
firstName = s;
}
public String getFirstName(String s)
{
return firstName;
}
}

请提供一个这会导致问题的场景,并请具体说明,而不是“因为当其他人使用您的代码时它会导致问题” 为什么?为什么会引起问题。提前感谢建设性的批评和详细的回答:D

最佳答案

假设您的代码已投入生产。我编写了一个前端,它使用直接访问 firstNamelastName 的 Employee 类。

6 个月过去了,现在有一个新的业务需求,您需要为名称字段添加验证。

你要添加到哪里?您将不得不将这些字段设为私有(private)并添加设置方法,这将迫使我和其他使用您的代码的人重新编写我们的应用程序。

如果您一开始就正确封装了这些数据,我们所要做的就是使用新版本的库和您的代码重新编译。

关于java - 公共(public)属性(property)不好的真实例子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37925976/

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