- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!!!解答
!!用語と概念
+クラスとはモノの性質と機能をまとめたもので、モノを抽象化したものである。オブジェクトの設計図に当たる。
+オブジェクトは実体、モノである。
+オブジェクトはクラスを基に作られるモノの実体。クラスはオブジェクトの設計図。
+フィールドはモノの性質を表すもので、変数。
+メソッドはモノの機能や振る舞いを表現したモノで、C言語の関数に相当する。
+publicやprivateはクラスのフィールドやメソッドにその外部からアクセスできるか否かを指定するキーワード。publicはクラス外に公開したいときに使い、privateは非公開にしたいときに使う。
+継承は既存のクラスを基にその機能を拡張した新しいクラスを作ること。
基になるクラスをスーパークラス、新しく作られたクラスをサブクラスという。
+オーバーライドはスーパークラスの持つメソッドをサブクラスで再定義すること。クラス名と引数が同じである。
オーバーロードは同じクラス内に同じ名前のクラスを複数定義すること。ただし、引数の型や個数は異なる。
!!クラス定義
!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("飛びます飛びます!");
}
}