2020/03/23
コンストラクタ
コントラクタとは?
コンストラクタとは、インスタンスを生成したときに実行されるメソッドで、クラスのメンバ変数を初期化する処理などを記述します。このメソッドはクラス名と同じ名前で記述し、インスタンスの生成時に自動的に呼び出されます。
コンストラクタは、違う引数であれば複数持つことができます。
以下は、TestClassクラスののコンストラクタの記述例です。
class TestClass { // メンバ変数 int value; // コンストラクタ(その1) TestClass() { value = 0; } // コンストラクタ(その2) TestClass( int a ) { value = a; } // コンストラクタ(その3) TestClass( int a, int b ) { value = a * b; } : : }
このように、引数を変えた複数のコンストラクタを持つことができます。
Javaソースコード
ConstructorSample.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047
class TestClass { // メンバ変数 int value; // コンストラクタ(その1) TestClass() { value = 0; } // コンストラクタ(その2) TestClass( int a ) { value = a; } // コンストラクタ(その3) TestClass( int a, int b ) { value = a * b; } // valueの値を取得するメソッド public int getValue() { return value; } } public class ConstructorSample { // メイン public static void main( String[] args ) { // コンストラクタ(その1) TestClass cls1 = new TestClass(); System.out.println( cls1.getValue() ); // コンストラクタ(その2) TestClass cls2 = new TestClass( 100 ); System.out.println( cls2.getValue() ); // コンストラクタ(その3) TestClass cls3 = new TestClass( 5, 7 ); System.out.println( cls3.getValue() ); } }
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis ConstructorSample.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac ConstructorSample.java
実行
C:\talavax\javasample>java ConstructorSample
実行結果
0 100 35
この結果から、newの仕方で呼ばれるコンストラクタが違っていることがわかります。
以上です。