gen*_*ous 11 java private getter-setter
如果我可以通过getter返回的引用更改私有变量的值,那么它是否绕过setter方法?它不会破坏getter-setter和私有变量的目的
public class Test{
private Dimension cannotBeChanged;
public Test(int height, int width)
{
if(height!=3)
cannotBeChanged.height = height;
if(width!=3)
cannotBeChanged.width = width;
}
public Dimension getDimension()
{
return cannotBeChanged;
}
public void setDimension(int height, int width)
{
if(height!=3)
cannotBeChanged.height = height;
if(width!=3)
cannotBeChanged.width = width;
}
public static void main(String [] args)
{
Test testOne = new Test(5,5);
Dimension testSecond = testOne.getDimension();
testSecond.height = 3; //Changed height and width to unwanted values
testSecond.width= 3;
}
Run Code Online (Sandbox Code Playgroud)
Abi*_*san 12
是的,它确实.我在" 清洁准则"一书中的获取者和制定者中得出以下结论; 如果你真的接受它,你可以使用它.
| 归档时间: |
|
| 查看次数: |
11551 次 |
| 最近记录: |