Java 如何将类对象传递给另一个使用super()的类;

Java 如何将类对象传递给另一个使用super()的类;,java,swing,user-interface,main,Java,Swing,User Interface,Main,我已经工作了一整天,所以这可能是一个不需要动脑筋的问题,但我疲惫的大脑却看不到。如果是这样的话,很抱歉这个愚蠢的问题。现在,我的问题来了 我希望我的Gui类能够访问类验证器。在创建所有类的main类中,将创建Gui和Validate类 像这样: public class Main{ public static void main(String[] args){ Gui gui = new Gui(); Validate validate = new Va

我已经工作了一整天,所以这可能是一个不需要动脑筋的问题,但我疲惫的大脑却看不到。如果是这样的话,很抱歉这个愚蠢的问题。现在,我的问题来了

我希望我的
Gui
类能够访问类
验证器
。在创建所有类的
main
类中,将创建
Gui
Validate

像这样:

public class Main{

    public static void main(String[] args){
        Gui gui = new Gui();
        Validate validate = new Validate();
    }   

}
现在,我希望我的Gui类能够访问Validate类并能够访问其方法

这是我的Gui类构造函数:

public class Gui extends JFrame implements ActionListener{

//A list of variables here...

public Gui(){

    super("BANK");

    //rest of the constructor.

现在,如何让我的
Gui
类在使用
super()时访问
validate

您可以尝试以下操作:

public class Gui extends JFrame implements ActionListener{
    private Validate validate;
    public Gui(Validate validate){
        super();
        this.validate = validate;
        //rest of the constructor.
    }
    ...
}

    public class Main{

        public static void main(String[] args) {
            Validate validate = new Validate();
            Gui gui = new Gui(validate);
        }
    }

您可以尝试以下方法:

public class Gui extends JFrame implements ActionListener{
    private Validate validate;
    public Gui(Validate validate){
        super();
        this.validate = validate;
        //rest of the constructor.
    }
    ...
}

    public class Main{

        public static void main(String[] args) {
            Validate validate = new Validate();
            Gui gui = new Gui(validate);
        }
    }

您可以尝试以下方法:

public class Gui extends JFrame implements ActionListener{
    private Validate validate;
    public Gui(Validate validate){
        super();
        this.validate = validate;
        //rest of the constructor.
    }
    ...
}

    public class Main{

        public static void main(String[] args) {
            Validate validate = new Validate();
            Gui gui = new Gui(validate);
        }
    }

您可以尝试以下方法:

public class Gui extends JFrame implements ActionListener{
    private Validate validate;
    public Gui(Validate validate){
        super();
        this.validate = validate;
        //rest of the constructor.
    }
    ...
}

    public class Main{

        public static void main(String[] args) {
            Validate validate = new Validate();
            Gui gui = new Gui(validate);
        }
    }

您无法从该类控制super的功能,因此您可以将其作为参数传递给构造函数,并将其保存在变量中,或者将validate设置为static,以便所有人都可以访问它(不建议使用该类,您只能使用它的一个实例)


通过这种方式,Gui有一个用于验证的引用,可以访问任何公共方法和变量。

您无法从该类控制super的操作,因此您可以将其作为参数传递给构造函数并保存在变量上,或者将validate设为静态,以便每个人都可以访问它(tho是不推荐的,您只能有一个实例)


通过这种方式,Gui有一个用于验证的引用,可以访问任何公共方法和变量。

您无法从该类控制super的操作,因此您可以将其作为参数传递给构造函数并保存在变量上,或者将validate设为静态,以便每个人都可以访问它(tho是不推荐的,您只能有一个实例)


通过这种方式,Gui有一个用于验证的引用,可以访问任何公共方法和变量。

您无法从该类控制super的操作,因此您可以将其作为参数传递给构造函数并保存在变量上,或者将validate设为静态,以便每个人都可以访问它(tho是不推荐的,您只能有一个实例)

通过这种方式,Gui有一个验证引用,可以访问任何公共方法和变量。

如果您在这行
super(“银行”);
上的意思是
super()
,那么您就不能,这
super(“银行”)
在Gui类扩展JFrame时引用了
JFrame
的构造函数。它只接受
字符串标题
和/或
图形配置gc
的参数

您需要修改构造函数:

 private Validate validate;
 public Gui(Validate validate){
    super("BANK"); // this super refers to JFrame constructor
    this.validate = validate;

}
如果这一行的
super()
super(“银行”);
,那么您不能这样做,这个
super(“银行”)
在Gui类扩展JFrame时引用了
JFrame
的构造函数。它只接受
String title
和/或
graphicsconfiguration gc
的参数

您需要修改构造函数:

 private Validate validate;
 public Gui(Validate validate){
    super("BANK"); // this super refers to JFrame constructor
    this.validate = validate;

}
如果这一行的
super()
super(“银行”);
,那么您不能这样做,这个
super(“银行”)
在Gui类扩展JFrame时引用了
JFrame
的构造函数。它只接受
String title
和/或
graphicsconfiguration gc
的参数

您需要修改构造函数:

 private Validate validate;
 public Gui(Validate validate){
    super("BANK"); // this super refers to JFrame constructor
    this.validate = validate;

}
如果这一行的
super()
super(“银行”);
,那么您不能这样做,这个
super(“银行”)
在Gui类扩展JFrame时引用了
JFrame
的构造函数。它只接受
String title
和/或
graphicsconfiguration gc
的参数

您需要修改构造函数:

 private Validate validate;
 public Gui(Validate validate){
    super("BANK"); // this super refers to JFrame constructor
    this.validate = validate;

}

在使用
super()
时,这个问题有些不清楚。如果您控制
GUI
,那么您可以添加一个新的构造函数,该构造函数接受
Validate
实例并调用
This()
首先在其中,或者提供一个setter方法,该方法将允许您提供
验证
的实例……您可以将
验证
交给
Gui
构造函数,但是
super()
JFrame
的构造函数,所以它不知道也不关心
Validate
。谢谢,伙计们,我想我现在明白了。我的大脑已经累了。在使用
super()
?这个问题有点不清楚。如果您控制
GUI
,那么您可以添加一个新的构造函数,该构造函数接受
Validate
实例并调用
This()
首先在其中,或者提供一个setter方法,该方法将允许您提供
验证
的实例……您可以将
验证
交给
Gui
构造函数,但是
super()
JFrame
的构造函数,所以它不知道也不关心
Validate
。谢谢,伙计们,我想我现在明白了。我的大脑已经累了。在使用
super()
?这个问题有点不清楚。如果您控制
GUI
,那么您可以添加一个新的构造函数,该构造函数接受
Validate
实例并调用
This()
首先在其中,或者提供一个setter方法,该方法将允许您提供
验证
的实例……您可以将
验证
交给
Gui
构造函数,但是
super()
JFrame
的构造函数,所以它不知道也不关心
Validate
。谢谢,伙计们,我想我现在明白了。我的大脑已经累了。在使用
super()
?这个问题有点不清楚。如果您控制
GUI
,那么您可以添加一个新的构造函数,该构造函数接受
Validate
实例并调用
This()
首先在其中,或者提供一个setter方法,该方法将允许您提供
验证
的实例……您可以将
验证
交给您的