我应该如何更改另一个

时间:2018-04-25 10:05:12

标签: java oop language-concepts

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

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

A simple example of the structure 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);
    }
}

A simple example of the structure 2

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

2 个答案:

答案 0 :(得分: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());
    }
}

答案 1 :(得分:1)

通常你想让你的类尽可能地被修饰,所以你想要改变你要求类本身改变它的类值。 因此,如果您班级的唯一目的是更改另一个的价值,那么就没必要了,您只需从使用y.setY(0);的方法中调用y