0

我正在学习用 Java 编程,我想知道将值从另一个组合类更改为组合类是否是 OO 编程的一个好概念。像这样:

public class X{
    public void x(Y y){
        y.setY(0);
    }
}

一个简单的结构示例 1

还是我应该上诉到主班?像这样:

public class X{
    public void x(Main m){
        m.modifyY(0);
    }
}

public class Main{
    private Y y;
    private X x;

    public void modifyY(Main m){
        y.modifyY(0);
    }
}

结构2的简单示例

PS:我也在学习UML,如果我做错了,我很抱歉。

4

2 回答 2

1

可以这样改

public class X{
    public X(Y y){
        y.setY(0);
    }
}

public class Y{
   public int val=0;
   public void setY(int p_val){
       val=p_val;
   }
}

public class Main{
    public void modifyY(){
         new X(new y());
    }
}
于 2018-04-25T10:11:43.460 回答
1

通常,您希望使您的类尽可能地去耦,因此您想更改一个类值,您要求类本身进行更改。因此,如果您的类的唯一目的是更改另一个类的值,那么没有必要,您应该只y.setY(0);从使用的方法调用y

于 2018-04-25T10:18:09.510 回答