Java 从另一个类的方法获取构造函数中的值?

Java 从另一个类的方法获取构造函数中的值?,java,swing,Java,Swing,我想在我提到的public Choose()的Choose类的构造函数中访问name和age的值{ 存储在NewP的GetValues方法中 选择.java class Choose { String Cn,Ca; public Choose(){ btn.addMouseListener{ } } public static void gtNp(string nn,string aa) { Cn=nn;

我想在我提到的public Choose()的Choose类的构造函数中访问name和age的值{ 存储在NewP的GetValues方法中

选择.java

class Choose {
    String Cn,Ca;
    public Choose(){
        btn.addMouseListener{
        }
    }

    public static void gtNp(string nn,string aa) {
        Cn=nn;
        Ca=aa;
    }

}
class NewP {
    Choose C1 = new Choose();

    NewP() {
       btn.addMouseListener{
           GetValues();
           Choose.gtNp(name,age);       
       }
    }

    public NewP GetValues(){
        Name=         ;
        Age=            ;
        return null;
    }

}
NewP.java

class Choose {
    String Cn,Ca;
    public Choose(){
        btn.addMouseListener{
        }
    }

    public static void gtNp(string nn,string aa) {
        Cn=nn;
        Ca=aa;
    }

}
class NewP {
    Choose C1 = new Choose();

    NewP() {
       btn.addMouseListener{
           GetValues();
           Choose.gtNp(name,age);       
       }
    }

    public NewP GetValues(){
        Name=         ;
        Age=            ;
        return null;
    }

}

我目前可能没有理解你的代码的要点,但在某种程度上它是令人困惑的。我发现了几个问题

首先,您有一个
static
方法设置
Choose
类的值,这会导致错误,因为您是从静态上下文访问非静态变量。您应该改用getter和setter(或者直接使用字段,其他人可能会说)。使用此方法:

public static void gtNp(string nn,string aa){
    Cn=nn; //Java convention: fields and methods start with lowercase.
    Ca=aa;
}
将导致
Choose
的所有实例共享相同的值,但当然,这可能是所需的行为。如果它们与实例相关,则可以在构造函数中传递这些值:

public Choose(String nn, String aa){
   cn = nn; //To adapt your code to the convention, I've used lowercases here.
   ca = aa;
   btn.addMouseListener{
}
无论哪种方式,您都需要为这些字段添加getter或setter。您可能需要检查什么是
setter
getter
,并实现它们。我将把它们作为练习留给您

以下是一些帮助您的基本链接:

  • (在本例中,您需要检查封装的概念)

我认为你应该先从基础开始,比如类和对象等。1)注意你的变量命名方案(变量应该以小写开头),2)请格式化您的代码!!3)您不能使用静态方法访问实例变量4)将实例变量标记为
private
,并在必要时提供公共getter和setter(非静态方法)David但是即使我用大写字母声明变量,我的程序运行也没有错误。你能给我一个到教程的链接,让我了解更多关于1]静态方法2]实例变量3]getter和settersThnxz的基本链接。但是仍然对此感到困惑。你能给我提供更多的链接来澄清我关于对象、方法调用fr的概念吗om构造函数和在构造函数中使用其他类的值?我添加了两个新链接。一个用于Oracle Java教程的基础,另一个用于类教程。我建议您阅读从零开始的所有内容。