【授業レポート】システム開発入門 第18週目 〜オブジェクト指向入門:クラスとインスタンス〜
今週の授業では、1年生後期の新テーマとして「オブジェクト指向プログラミング(OOP)」の基礎を学びました。プログラムを“モノ”として扱い、より大規模で整理しやすいコードを書くための考え方です。
■ 先生の導入:「プログラムも“ものづくり”の視点で考えよう」
田中先生:「関数やリストなど“手続き型”のプログラミングは手軽ですが、大きなシステムを作るときには“モノ”を定義して扱うオブジェクト指向が有効です。」
黒板には、「犬」という実世界のモデルをクラスに落とし込む例が描かれていました。
■ 実習①:クラスの定義をしてみよう
最初の演習では、Pythonでのクラス定義を体験。
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
def bark(self):
print(self.name + ":ワンワン!")
田中先生:「__init__
メソッドで ‘名前’ と ‘年齢’ を初期化し、bark
メソッドで鳴き声を出す機能を追加しました。」
生徒A:「self
って“このオブジェクト自身”を指すんですね!」
生徒B:「クラスを書くと、データと振る舞いをまとめられるんだ」
■ 実習②:インスタンスを作って動かしてみる
次に、実際にオブジェクト(インスタンス)を生成してみます。
dog1 = Dog("ポチ", 3)
dog2 = Dog("ハチ", 5)
dog1.bark() # → ポチ:ワンワン!
dog2.bark() # → ハチ:ワンワン!
生徒C:「名前も年齢もそれぞれ違う ‘犬’ ができた!」
田中先生:「同じ ‘型’ から、好きなだけオブジェクトを作れるのがOOPの利点です。」
■ 黙々タイム:自分だけのクラスを設計・実装しよう
後半は「身のまわりのもの」をクラス化するミニ課題に挑戦。
💡 課題例
- Book クラス:タイトル・著者・ページ数を属性に、
read()
メソッドを実装 - Car クラス:車種・色・走行距離を属性に、
drive(km)
メソッドを実装 - Student クラス:名前・学年・点数を属性に、
is_passed()
メソッドを実装
生徒D:「本のクラス作ったら、自分だけの図書管理ができそう!」
生徒E:「drive(10)
って書くだけで距離が増えるの面白い」
■ 先生のひとこと
「オブジェクト指向は、設計やチーム開発でも大きな力を発揮します。データと処理を ‘一緒の箱’ にまとめる感覚を身につけてください。」
■ 来週の予告:継承とポリモーフィズムに挑戦!
次週は、既存のクラスを再利用して拡張する「継承」と、同じメソッド名で振る舞いを切り替える「ポリモーフィズム(多態性)」を学びます。より柔軟な設計を体験しましょう!
大規模開発の礎となるOOPの第一歩。1年生たちは、新しい “ものづくり” の視点を手に入れました。