java - 一类按组成包含到另一类。如何更改其私有(private)字段?

标签 java class

我有简单的类(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/

相关文章:

java - 尝试更新java中的数组元素

Python 对象层次结构;引用所有者实例?

java - java中如何从对象数组中删除元素

C++ 和压缩结构

java - 为 ContextMenu 应用自定义 header

java - spring freemarker ConversionNotSupportedException

java - Mule/Groovy - Canonicals 列表拆分为另外 3 个列表

C++ - 使用链表和一次执行一个函数的类的程序

Java安全策略限制RuntimePermission exitVM

java - SSL 不适用于 http-kit 但适用于纯 Java