2011年8月9日火曜日

Javaの私的まとめ4

Javaのお勉強その4

  1. クラスの書き方

    クラスの修飾子はpublic、abstract、finalの3種類ある

    クラスの書き方は次の通り。5種類あるが、すべてを使う必要はない。

    public class Car{
     int fuel=50; // フィールド
     {...} // インスタンス初期化子
     static {...} // 静的初期化子
     Car(){...} // コンストラクタ
     void run(){...} // メソッド
    }

    静的初期化子は、クラスがJava Virtual Machineにロードされるときに実行される。

    インスタンス初期化子は、オブジェクトが生成されるときに実行される。

    インスタンスを生成するには、Car mycar = new Car();とする。

  2. 継承

    継承によってクラスの機能を拡張できる。基のクラスをスーパークラス、継承して作るクラスをサブクラスという。インタフェースも継承により拡張可能である。

    拡張するにはextendsというキーワードを用いる。以下の例ではCarクラスを継承してpatrolCarクラスを作成している。

    public class patrolCar extends Car{
     // コンストラクタやメソッドを記述
    }
    

    サブクラスでスーパークラスにあるフィールドやメソッドを宣言できる。サブクラスでその名前を使うと、サブクラスで定義されたものになる。スーパークラスのものにアクセスしたい場合は、"super."を付ければよい。

    サブクラスでスーパークラスにあるアクセス可能なメソッドを再定義することをオーバーライドという。

    オブジェクトを参照する変数に対し、変数.フィールドとすると、変数の型のフィールドを意味する。staticがついていないメソッドの場合、変数.メソッドは変数の型ではなく、オブジェクトの型のメソッドが呼ばれる。

  3. final

    finalのついた変数は、1回だけ値を与えることができる。以後変更はできない。クラスや配列でも同様。他のオブジェクトを指すようにする変更はできない。ただし、オブジェクトのデータを変更することは可能である。

    staticのついていないフィールドは、定義の場所で初期化する以外にコンストラクタや、インスタンス初期化子{...}で初期化する方法がある。staticのついたメソッドは、静的初期化子( static {...} )で初期化することもできる。

    finalのついたメソッドのオーバーライドは不可能である。

    finalのついたクラスのサブクラスは作成不可能である。

0 件のコメント:

コメントを投稿

フォロワー

ブログ アーカイブ

ページビューの合計