1

メソッドレベル変数をクラスレベル変数として設定したい。Javaでメソッドレベル変数をクラスレベル変数として設定することは可能ですか?メソッドレベル変数値をクラスレベル変数として取得したい方法はありますか?

class A {       
    void m(String s){
        String s1 = s;
     }
}
4

3 に答える 3

3

私はあなたが欲しいと思います(基本的な例として)

class A {
    String s1; 

    void m(String s) {
        s1=s;
    }
}

これがセッター関数で行うことであることに注意してください。

public class A {
    private String s1; 

    //Since the attribute is private, you need a function to access to the value
    public String getS1() {
        return this.s1;
    }

    public void setS1(String s) {
        this.s1 = s;
    }
}

また、クラスコンストラクターで動的な値を渡すこともできます。

public class A {
    private String s1; 

    public A(String s1) {
        this.s1 = s1;
    }

    //Since the attribute is private, you need a function to access to the value
    public String getS1() {
        return this.s1;
    }

    public void setS1(String s) {
        this.s1 = s;
    }
}
于 2013-02-22T22:20:20.210 に答える
1

そのメソッドでインスタンス変数を設定することについて質問する場合は、次のようにします。

String s;//instance var
 void m(String s)//s is dynamic value
 {
     this.s=s;
 }
于 2013-02-22T22:21:15.860 に答える
1

このコードを試してください

class A {
String s;
void m(String s){
    this.s=s; //this keyword is used to ambiguity between local variable and class level variable
      }
 }
于 2013-08-17T09:14:07.613 に答える