JAVA言語 入門 クラス(Class)

TOP > JAVA入門 >  クラス(Class)
このエントリーをはてなブックマークに追加

クラス(Class)の定義

クラス(Class)はオブジェクト指向プログラミングの基本的な仕組みで、以下のように定義します。
// クラス名 Test
class Test {
    int score;
    
    Test(int v) {
        score = v;
    }
    
    SetScore(int v) {
		score = v;
	}
}

クラスの使用 (インスタンス化(new))

クラスを使用する場合は、new を用いてインスタンス(コピーのようなもの)を作成します。例えば、TestClass という名前のクラスのインスタンスを作るには次のようにします。
Test c = new Test();
c.setScore(80) ;
static で定義されているクラスはインスタンスを作成せずに直接使用できます。Math などが代表です。
Math.exp(5) ;

コンストラクタとデストラクタ

クラス名と同じ名前を持つメソッドをコンストラクタといい、インスタンス生成時に自動的に実行されます。主に初期化処理を行います。
class Test {
    int score;
    // 初期化を行う
    Test(int v) {
        score = v;
    }
}
コンストラクタには上記のように引数を持つことができます。下記の例では、Test クラスのインスタンス test1 を生成する際に、コンストラクタの処理を利用して 得点の設定を行っています。
Test test1 = new Test(70);
~クラス名(~Person) のメソッドをデストラクタといいますが、インスタンスが消滅する際に自動的に呼ばれます。C/C++言語などではメモリの解放などの後始末に使用されますが、Java では後始末は自動的に行われるためデストラクタは基本的に使用されません。

クラスの修飾子

クラスの修飾子には、publicfinal、abstract、strictfp を指定することができます。

親クラスの参照(super)

class MathTest extends Test {
    MathTest() {
		// 親クラスのコンストラクタを呼び出す
        super("数学");
        // 親クラスのメソッドを呼び出す
        super.SetScore(70);	
        // 親クラスの属性を取得
        System.out.println(super.score); 
    }
}

クラスに属しているか調べる(instanceof)

instanceof 演算子は、インスタンスが、指定したクラスまたはその上位クラスに属しているかどうかを調べる事ができます。
MyList list = new MyList();
if (MyList instanceof Button) {
    System.out.println("MyListはButtonに属してる");
} else {
    System.out.println("MyListはButtonに属していない");
}