我有三节课。例如,我将它们称为AwesomeClass,CoolClass,PrettyClass。 AwesomeClass实例化CoolClass和PrettyClass的对象。现在,我希望CoolClass更改PrettyClass中的变量。

最好的方法是什么?我可以想到的一种方法是将PrettyClass的引用发送给CoolClass,然后CoolClass可以执行类似instanceOfPrettyClass.setSomeVariable("42");的操作。或者我可以将AwesomeClass视为控制器,将其他两个类视为视图(这就是它们所用作的视图),并让CoolClass调用AwesomeClass中的某个方法,然后再调用PrettyClass中的另一个方法,但这感觉很混乱。

编辑一些示例代码

public class AwesomeClass
{
    public AwesomeClass()
    {
        CoolClass coolClass = new CoolClass();
        PrettyClass prettyClass = new PrettyClass();
    }
}

public class CoolClass
{
    public CoolClass()
    {
        Color colour = Color.RED;
    }
}

public class PrettyClass
{
    public PrettyClass()
    {
        //I want to set coolClass's colour to Color.BLACK here
    }
}

最佳答案

我很惊讶没有人回答这个问题。我认为您的想法正确,尽管可能会倒退。

public class AwesomeClass
{
    public AwesomeClass()
    {
        CoolClass coolClass = new CoolClass();
        PrettyClass prettyClass = new PrettyClass( coolClass );  // change
    }
}

public class CoolClass()
{
    private Color colour;  // change

    public CoolClass
    {
        colour = Color.RED;  // change
    }

    public void setColor( Color color ) {  // add setter
      colour = color;
    }
}

public class PrettyClass
{

    public PrettyClass( CoolClass cc )  // change
    {
        //I want to set coolClass's colour to Color.BLACK here
        cc.setColor( Color.BLACK );  // change
    }
}


我想就是这样。

关于java - 如何在多个类(class)之间交流?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25299620/

10-11 17:07