-2

クラスのコンストラクターで name と age の値にアクセスしたい

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;
    }

}
4

1 に答える 1

3

現在、コードの要点を理解していない可能性がありますが、ある意味で混乱しています。私が見つけたいくつかの問題があります。

まずstatic、クラスの値を設定するメソッドChooseがありますが、静的コンテキストから非静的変数にアクセスしているため、エラーが発生するはずです。代わりにゲッターとセッターを使用する必要があります (またはフィールドを直接使用する必要があります)。この方法の使用:

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 を追加する必要があります。settersとが何であるかを確認し、gettersそれらを実装することをお勧めします。これらは練習問題として残しておきます。

役立つ基本的なリンクを次に示します。

于 2013-03-05T17:04:31.463 に答える