Java链类

时间:2014-01-19 17:41:21

标签: java methods

我构建一个主类运行5个类,并使它们能够相互传递字符串。我刚发布主要课程+ 1级和4级。

主要课程:

public class main {
public static void main(String[] args){

    class4 c4 = new class4(c1);

    class3 c3 = new class3(c4);

    class2 c2 = new class2(c3);
    c2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    c2.setSize(200,100);
    c2.setLocationRelativeTo(null);
    c2.setVisible(true);

    class1 c1 = new class1(c2);
    c1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    c1.setSize(200,100);
    c1.setLocationRelativeTo(null);
    c1.setVisible(true);


}

}

第1课:

public class class1 extends JFrame{
private JButton jb;

private class2 c2;
public class1(class2 c2){
    this();
    this.c2 = c2;
    }


public class1(){
    super("");
    setLayout(new FlowLayout());

    jb = new JButton("click click");
    add(jb);

    jb.addActionListener(
            new ActionListener(){
                public void actionPerformed(ActionEvent e){
                    sayHi("Hi buddy");
                }});
}
public void sayHi(String x){
    c2.recieveHi(x);
}

public void recieveHi(String x){
    System.out.println(x);
}

}

第5课:

public class class4 {

private class1 c1;
public class4(class1 c1){
    //this();
    this.c1 = c1;
}
public void recieveHi(String x){
    System.out.println(x);
    killMessenger();
}
public void killMessenger(){
    String s = "back to class 1";
    c1.recieveHi(s);
}

}

Class 1将String传递给class2,它将String传递给class 3等。当class4接收String时,我需要将一个String传递给class1 ..正如你在我的主类中看到的,我需要绑定它们,例如< / p>

class 1 c1 = new class1(c2);

使用class4 c4 = new class4(c1)执行此操作无效,因为尚未生成class1。总会有一个失败的结局,所以可能有一种方法来解决它。

1 个答案:

答案 0 :(得分:2)

您可以使用setter方法,因此您不会在构造函数中传递c1但是在创建class1实例之后。在class4班级

public void setClass1Object(class1 pC1) {
    this.c1 = pC1;
}