为什么 getter 和 setter 方法在 java 中很重要?
2022-09-01 04:51:12
我被教导总是使用getter和setters。但是,我不知道这些方法的优缺点,因为通过实现它们,我们正在公开数据并隐藏它。
我对此有点困惑。任何人都可以就我们为什么使用getter/setter以及优势是什么给出一些适当的建议吗?
我被教导总是使用getter和setters。但是,我不知道这些方法的优缺点,因为通过实现它们,我们正在公开数据并隐藏它。
我对此有点困惑。任何人都可以就我们为什么使用getter/setter以及优势是什么给出一些适当的建议吗?
基本的“私有字段,具有公共 getter 和 setter,除了返回或设置字段之外什么都不做”模式在封装方面确实完全没有意义,除了它让你有机会在不更改 API 的情况下稍后更改它。
所以不要不假思索地使用这种模式。仔细考虑您实际需要的操作。
getters 和 setter 的真正意义在于,你应该只在合适的地方使用它们,而且它们可以做的不仅仅是获取和设置字段。
IllegalArgumentException
所有这些都是隐藏在简单的“getter and setter”接口后面的实现细节。这就是封装的意义所在。
getter 和 setter 的思想是控制对类中变量的访问。这样,如果需要在内部更改值以以不同的方式表示,则可以在不破坏类外部任何代码的情况下执行此操作。
例如,假设您有一个带有距离变量的类,并且以英寸为单位进行测量。几个月过去了,你在很多地方使用这个类,你突然意识到你需要用厘米来表示这个值。如果您没有使用 getter 和 setter,则必须跟踪该类的每次使用并在那里进行转换。如果您使用了 getter 和 setter,则只需更改这些方法,使用该类的所有内容都不会中断。
public class Measurement
{
/**
* The distance in centimeters.
*/
private double distance;
/**
* Gets the distance in inches.
* @return A distance value.
*/
public double getDistance()
{
return distance / 2.54;
}
/**
* Sets the distance.
* @param distance The distance, in inches.
*/
public void setDistance(double distance)
{
this.distance = distance * 2.54;
}
}