インスタンス化とコンストラクタ
クラス名 インスタンス変数名;
インスタンス変数=new クラス名();
-
2行目でコンストラクタと呼ばれる特殊なメソッドの呼び出しを実行
-
コンストラクタはクラスをインスタンス化しオブジェクトを作成する時に必ず実行する
-
オブジェクトを初期化する。
-
コンストラクタはクラス名と同じ名前を持ち、戻り値をもたないメソッド
-
コンストラクタによってクラスのインスタンスがメモリ上に作られ、それを参照するためのIDがnew演算子によって左辺の変数へ代入
コンストラクタとは?
-
特殊メソッドで、クラス名と同じ名前である事
-
戻り値宣言もないメソッド
-
引数の異なるコンストラクタを同時に定義する事も可能.(オーバーライド)
-
コンストラクタが全く記述されていないクラスに限り、 Java コンパイラ javac は、自動的に、引数なしで内容が空のデフォルト・コンストラクタを、生成するバイトコード内に埋め込んでくる
sample code
TestConstruct.java
class Const{
// variable
double x;
int y;
// コンストラクタ
Const(double x, int y){
this.x = x;
this.y = y;
}
// コンストラクタのオーバーロード
Const(double x){
this.x = x;
this.y = 10;
}
//コンストラクタのオーバーロード
Const(){
this.x = 5;
this.y = 10;
}
// メソッド
double getMean(){
double z = this.x/this.y;
return z;
}
}
class TestConstruct{
public static void main(String[] args){
double m1,m2;
// インスタンス変数宣言
Const obj1;
Const obj2;
// コンストラクタ呼び出し(インスタンス化)
obj1 = new Const(111,12);
ojb2 = new Const(111);
// メソッド呼び出し
m1 = obj1.getMean();
m2 = obj2.getMean();
}
}