我有简单的类(class):
public class Points {
private int x = 0;
public void setX(int x) {
this.x = x;
}
}
我制作了其他具有 Points 字段的类:
public class Curve {
private Points p;
public void setX(int x) {
p.setX(x);
}
}
因此,Curve类中的setX(int x)方法用于更改Points中私有(private)字段x的值。
最后我这样使用这个方法:
public class UseComposition {
public static void main(String[] args) {
// TODO Auto-generated method stub
Curve c = new Curve();
c.setX(1);
}
}
我认为,这段代码有双重含义:如果我更改 Points 中的方法名称,我还必须更改 Curve 类中的 setX 方法。 还有其他方法可以解决此类任务吗? 也许改变这种私有(private)值(value)观根本不是一个好主意。请帮忙。
最佳答案
I think, this code have a doubling: if I change a method name in Points I also have to change method setX in class Curve.
不,你不知道。如果您愿意,您可以,但这两种方法是独立的。您根本不必公开 Points 中的所有方法,事实上大多数时候您也不想这样做。您应该只公开与您正在编写的类相关的方法。 有时它们可能只是通过单个字段向下委托(delegate),但通常它们会涉及多个字段,或者您需要执行其他操作以及调用委托(delegate)方法。
关于java - 一类按组成包含到另一类。如何更改其私有(private)字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21586637/