次のようなコンストラクタがある場合:
public Constructor (int a, int b){
int c = a;
int d = b;
}
メソッドで変数名だけを使用しようとしても機能しないように見えるため、コンストラクターと同じクラス内のメソッドで変数 c と d を使用するにはどうすればよいですか?
次のようなコンストラクタがある場合:
public Constructor (int a, int b){
int c = a;
int d = b;
}
メソッドで変数名だけを使用しようとしても機能しないように見えるため、コンストラクターと同じクラス内のメソッドで変数 c と d を使用するにはどうすればよいですか?
実際、コードはコンパイルされません-int c = int a
無効です。
私はあなたが意味したと思います:- int c = a;
。
次に、コンストラクターと同じクラス内のメソッドで変数cとdを使用するにはどうすればよいですか?
コンストラクターが実行を終了するとスコープが終了するローカル変数として宣言しているため、これはできません。
それらをインスタンス変数として宣言する必要があります。
public class MyClass {
int c;
int d;
public MyClass(int a, int b){
this.c = a;
this.d = b;
}
public void print() {
System.out.println(c + " : " + d);
}
}
コンストラクタの外で、変数をクラス メンバとして宣言する必要があります。つまり、次のようにコンストラクタの外側で c と d を宣言します。
int c;
int d;
public Constructor (int a, int b) {
c = a;
d = b;
}