6日間おつかれさまでした。この総集編では、オブジェクト指向の柱をまとめて振り返り、最後にそれらを組み合わせた総合プログラムを作って理解を定着させます。所要時間の目安は40分ほど、前半で全体像を確認し(目安12分)、中盤で総合演習に取り組み(目安23分)、後半で次のステップを確認します(目安5分)。
6日間の振り返り(目安12分・インプット)
各日の要点を一言で確認しましょう。Day1ではクラス(設計図)とインスタンス(実体)の関係を学びました。Day2ではコンストラクタで、インスタンス生成と同時にフィールドを初期化しました。Day3ではカプセル化で、privateとpublicを使いデータを守りました。Day4では継承(extends)で共通部分を親にまとめ、Day5ではポリモーフィズムで同じ呼び出しから実体ごとに異なる動作を引き出しました。そしてDay6では、共通の土台を与える抽象クラスと、能力の契約を定めるインターフェースを学びました。この流れを1枚の図にまとめます。
これらは単独ではなく、組み合わせて使ってこそ力を発揮します。次の演習で体感しましょう。
【実践】6日間の総まとめプログラム(目安23分・手を動かす)
抽象クラス・継承・オーバーライド・ポリモーフィズム・カプセル化を1つにまとめた例です。`Animal.java`、`Dog.java`、`Cat.java`、`Main.java` を作ります。
public abstract class Animal {
private String name; // カプセル化
Animal(String name) { // コンストラクタ
this.name = name;
}
public String getName() {
return name;
}
abstract void sound(); // 中身は子クラスで
}
public class Dog extends Animal {
Dog(String name) { super(name); }
@Override
void sound() {
System.out.println(getName() + "「ワン」");
}
}
Catも同様に作り(sound で「ニャー」)、Mainで動かします。
public class Main {
public static void main(String[] args) {
Animal[] animals = { new Dog("ポチ"), new Cat("タマ") };
for (Animal a : animals) {
a.sound(); // ポリモーフィズム
}
}
}
`java Main` で「ポチ「ワン」」「タマ「ニャー」」と表示されれば、6日間の要素がすべて連動しています。演習として、`Cow`(牛)クラスを追加して配列に入れてみましょう。詰まったら、その要素を扱った各Dayの記事に戻って確認してください。
よくある疑問・つまずきポイント
**オブジェクト指向はまだ難しく感じます。**
最初は誰でもそうです。小さなクラスを自分で作って動かす経験を重ねると、少しずつ「なぜ便利なのか」が腑に落ちてきます。
**次は何を学べばいいですか?**
次のステップは、たくさんのデータを扱うコレクション(ListやMap)、エラーに備える例外処理、そしてSpringなどのフレームワークです。オブジェクト指向はそれらすべての土台になります。
まとめ(目安5分)
6日間で、クラスとインスタンス・コンストラクタ・カプセル化・継承・ポリモーフィズム・インターフェースと抽象クラスという、オブジェクト指向の柱をすべて学びました。基礎文法に続き、Javaの本質的な設計力の入口に立てたことになります。まずは今日の総まとめプログラムを自分なりに拡張して、手になじませていきましょう。

コメント