Java链类 [英] Java chain classes
问题描述
我建立一个主类,它运行5个类,并使它们能够相互传递字符串.我只是张贴主班+第一和第四班.
I build a main class runs 5 classes, and make them able to pass string to each other. I just post main class + class 1 and 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.如您在我的主类中所看到的,我需要将它们绑定起来,例如
Class 1 pass String to class2, which pass String to class 3 etc.. When class4 recieve String, i need to pass a String to class1.. As you can see in my main class, i need to bind them e.g
class 1 c1 = new class1(c2);
使用class4 c4 = new class4(c1)
执行此操作不起作用,因为尚未创建class1.总是会有失败的结局,因此可能会有一种方法来解决它.
Doing it with class4 c4 = new class4(c1)
doesn't work, because class1 isn't made yet. There will always be an lose end to it, so there might be a method to fix it.
推荐答案
您可能有一个setter
方法,因此您无需在构造函数中传递c1
,而是在创建class1
实例之后.在您的class4
课
You could have a setter
method, so you don't pass c1
in the constructor but after the class1
instance is created. In your class4
class
public void setClass1Object(class1 pC1) {
this.c1 = pC1;
}
这篇关于Java链类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!