トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

解答1

解答

 用語と概念

  1. クラスとはモノの性質と機能をまとめたもので、モノを抽象化したものである。オブジェクトの設計図に当たる。
  2. オブジェクトは実体、モノである。
  3. オブジェクトクラスを基に作られるモノの実体。クラスオブジェクトの設計図。
  4. フィールドはモノの性質を表すもので、変数
  5. メソッドはモノの機能や振る舞いを表現したモノで、C言語の関数に相当する。
  6. publicやprivateはクラスのフィールドやメソッドにその外部からアクセスできるか否かを指定するキーワード。publicはクラス外に公開したいときに使い、privateは非公開にしたいときに使う。
  7. 継承は既存のクラスを基にその機能を拡張した新しいクラスを作ること。

基になるクラスをスーパークラス、新しく作られたクラスをサブクラスという。

  1. オーバーライドはスーパークラスの持つメソッドをサブクラスで再定義すること。クラス名と引数が同じである。

オーバーロードは同じクラス内に同じ名前のクラスを複数定義すること。ただし、引数の型や個数は異なる。

 クラス定義

Dogクラス

// Dogクラスの定義
class Dog {
 // フィールド定義
 boolean isHungry
 // コンストラクタ定義
 public Dog {
   // フィールドの初期化
   isHungry = false;
 }
 // メソッド定義
 public void cry() {
   System.out.println("ワンワン!");
 }

}

犬を鳴かせる

class dogsample {
  public static void main(String[] args){
    // オブジェクトの生成
    Dog dog1 = new Dog();
    // オブジェクトの利用
    dog1.cry(); // 鳴け!
  }
} 

DogクラスからAnimalクラスを作る

クラス名を変更したのでコンストラクタ名もAnimalに変更する。

AnimalクラスからDogクラスを作る

public class Dog extends Animal{
}

カプセル化

public class Animal {
  private boolean isHungry;

  public Animal(){
    isHungry = false;
  }

  public void cry(){
    System.out.println("ワンワン!");
  }

  public void getIsHungry(){
    if(isHungry){
      System.out.println("満腹です!");
    } else {
      System.out.println("空腹です!");
    }
}

Catクラス

public class Cat extends Animal {
}

Birdクラス

public class Bird extends Animal {
  public void fly(){
    System.out.println("飛びます飛びます!");
  }
}