从Constructor中获取另一个类的方法中的值?

时间:2013-03-05 16:55:14

标签: java swing

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

Choose.java

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

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

}

NewP.java

class NewP {
    Choose C1 = new Choose();

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

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

}

1 个答案:

答案 0 :(得分:3)

我当前可能没有明白你的代码,但在某种程度上它令人困惑。我发现有几个问题。

首先,你有一个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。您可能想要检查settersgetters是什么并实施它们。我会留下那些作为你的练习。

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