Download presentation
Presentation is loading. Please wait.
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 「インスタンス.メソッド」
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.