Presentation is loading. Please wait.

Presentation is loading. Please wait.

第8回放送授業.

Similar presentations


Presentation on theme: "第8回放送授業."— Presentation transcript:

1 第8回放送授業

2 「ソフトウェアのしくみ」

3 8 オブジェクト指向 プログラム言語(2)

4 8.3 オブジェクト指向 プログラム言語の実際

5 クラス 円図形 インスタンス 円A、円B、… 属性(インスタンス変数) 位置、 半径、色、縁の色、… メソッド 現れる、消える、移動する、半径を変える、色を変える…

6 属性(インスタンス変数) @y

7 メソッド Figure initialize(x, y) pos
Circle initialize(x, y, r) radius draw erase

8 # 図形のスーパクラス(位置だけ保有) class Figure def initialize(x=0. 0, y=0
# 図形のスーパクラス(位置だけ保有) class Figure def initialize(x=0.0, = = y end # 位置を知るメソッド def

9 # 円のクラス(中心位置と半径+描画+消去) class Circle < Figure def initialize(x=0
# 円のクラス(中心位置と半径+描画+消去) class Circle < Figure def initialize(x=0.0, y=0.0, r=0.0) super(x, = r end def #(続く)

10 #(続き) def draw # 本来,OSの図形を描くサブプログラムを呼び出し # putsの出力文は継続行 puts("draw circle: end #(続く)

11 #(続き) def erase # 本来,OSの図形を消すサブプログラムを呼び出し # putsの出力文は継続行 puts("erase circle: end

12 # 円 c1 の生成 c1 = Circle. new(1. 5, 0. 5, 1. 0) c1
# 円 c1 の生成 c1 = Circle.new(1.5, 0.5, 1.0) c1.draw # 円 c1 の描画 # 円 c2 の生成 c2 = Circle.new(3.5, 1.5, 0.5) c2.draw # 円 c2 の描画 # これは許されていない # c2.pos で何が表示されるか puts("position of circle: ", c2.pos) c1.erase # 円 c1 の消去 c2.erase # 円 c2 の消去

13 継承 多様性 カプセル化

14 オブジェクト指向 プログラムを作ってみよう

15 親子のような家系が作られる 点→円→楕円 ↓ 正方形→長方形→平行四辺形→多角形

16 応用 Square Figure を継承 一辺の長さを返すメソッド side を追加しよう

17 # 円のクラス(中心位置と半径+描画+消去) class Circle < Figure def initialize(x=0
# 円のクラス(中心位置と半径+描画+消去) class Circle < Figure def initialize(x=0.0, y=0.0, r=0.0) super(x, = r end def #(続く)

18 #(続き) def draw # 本来,OSの図形を描くサブプログラムを呼び出し # putsの出力文は継続行 puts("draw circle: end #(続く)

19 #(続き) def erase # 本来,OSの図形を消すサブプログラムを呼び出し # putsの出力文は継続行 puts("erase circle: end

20 # 円 c1 の生成 c1 = Circle. new(1. 5, 0. 5, 1. 0) c1
# 円 c1 の生成 c1 = Circle.new(1.5, 0.5, 1.0) c1.draw # 円 c1 の描画 # 円 c2 の生成 c2 = Circle.new(3.5, 1.5, 0.5) c2.draw # 円 c2 の描画 # これは許されていない # c2.pos で何が表示されるか puts("position of circle: ", c2.pos) c1.erase # 円 c1 の消去 c2.erase # 円 c2 の消去

21 8.4 オブジェクト指向 プログラム言語のまとめ

22 よく使われるクラスはパッケージとして事前に用意されていることが多い
クラスの定義 メソッド コンストラクタ initialize デストラクタ 属性 / インスタンス変数 よく使われるクラスはパッケージとして事前に用意されていることが多い

23 スーパクラス、サブクラス 継承 多様性 カプセル化

24 カプセル化 アクセス制限 アクセス修飾子: public private protected

25 インスタンスの生成: new 「インスタンス.メソッド」


Download ppt "第8回放送授業."

Similar presentations


Ads by Google