thisとsuper その2Advertisement自クラスのコンストラクタ呼び出し
自分のクラスのコンストラクタがオーバーロードされている場合、コンストラクタから他のコンストラクタを呼ぶことができる。そのときにthisをつかう。
public class CoTest{
public static void main(String args[]){
Test t1 = new Test(10);
t1.resultOutput();
}
}
class Test{
int num;
public Test(){
num = 0;
}
public Test(int n){
this();
num += n;
}
public void resultOutput(){
System.out.println(num);
}
}
結果
10コンストラクタ呼び出しの特徴
public class CoTest{
public static void main(String args[]){
Test t1 = new Test(10);
t1.resultOutput();
}
}
class Test{
int num;
public Test(){
num = 0;
}
public Test(int n){
num += n; //コンストラクタ呼び出し前に
this(); //処理を記述
}
public void resultOutput(){
System.out.println(num);
}
}
結果
coTest.java:17: this の呼び出しはコンストラクタの
先頭文でなければなりません。
this(); //処理を記述
^
エラー 1 個
おこられた。
スーパークラスのコンストラクタ呼び出し
スーパークラスのコンストラクタを呼ぶこともできる。キーワードsuperを使う。
public class CoTest{
public static void main(String args[]){
Test2 t2 = new Test2();
t1.resultOutput();
}
}
class Test{
int num;
public Test(){
num = 0;
}
public void resultOutput(){
System.out.println(num);
}
}
class Test2 extends Test{
int b = 5;
public Test2(){
super();
num += b;
}
}
結果。
5superもコンストラクタの一番初めの行にしか書くことができない。 Advertisement |
ショートカット・634・634ブログ ・このカテゴリのトップページに戻る ・Incubator(Pukiwiki) ・634ラボ UIコレクションギャラリー ZO-3ジェネレーター サイト検索Y!ログール |