第8回放送授業.

Slides:



Advertisements
Similar presentations
アルゴリズムとプログラミン グ (Algorithms and Programming) 第6回:クラスとインスタンス クラスの宣言 アクセス修飾子 インスタンスの生成 (new キーワード) this キーワード フィールドとメソッドの実際の定義と使い 方 クラスの宣言 アクセス修飾子 インスタンスの生成.
Advertisements

1 C++ における OOP を用いた 書き方講座 H 山崎貴英. 2 今回の内容 OOP とは? C++ の超基礎 注釈 書いてあるコードはすべて一部抜粋。 コピペだと動かないよ!
オブジェクト指向 言語 論 第八回 知能情報学部 新田直也. 多相性(最も単純な例) class A { void m() { System.out.println( “ this is class A ” ); } } class A1 extends A { void m() { System.out.println(
独習JAVA Chapter 6 6.6 クラスの修飾子 6.7 変数の修飾子 結城 隆. 6.6 クラスの修飾 abstract インスタンス化できないクラス。1つまたは複数のサブクラスで 実装してはじめてインスタンス化できる。 final 継承されたくないことを明示する。これ以上機能拡張 / 変更でき.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也. 講義計画(あくまで予定) 第 1 回 プログラミング言語の種類と歴史 第 2 回 eclipse の基本操作 第 3 回 eclipse のデバッグ機能 第 4 回 構造化プログラミングの復習 第 5 回 演習 第 6 回 構造化指向からオブジェクト指向へ.
ソフトウェア工学 理工学部 情報システム工学科 新田直也. 演習問題 1 の解答例  入庫処理の DFD 酒屋の在庫問題の DFD( 入庫処理 ) 更新情報 在庫ファイル 更新処理 倉庫係 在庫不足リスト 在庫ファイル 出庫指示書 新規出庫 判定 出庫指示書 作成処理 出庫依頼 積荷票.
ソフトウェア工学 知能情報学部 新田直也. オブジェクト指向パラダイムと は  オブジェクト指向言語の発展に伴って形成され てきたソフトウェア開発上の概念.オブジェク ト指向分析,オブジェクト指向設計など,プロ グラミング以外の工程でも用いられる.  ソフトウェアを処理や関数ではなくオブジェク.
6.4継承とメソッド 6.5継承とコンストラクタ 11月28日 時田 陽一
初年次セミナー 第13回 2次元グラフィックス(1).
Applet 岡部 祐典 鈴木 敬幸.
アルゴリズムとプログラミング (Algorithms and Programming)
最適化ソルバーのための Python言語入門
アルゴリズムとプログラミング (Algorithms and Programming)
第2章 Eclipseと簡単なオブジェクト 指向プログラミング
オブジェクト指向入門.
ピカチュウによる オブジェクト指向入門 (新版)
計算機プログラミングI 第8回 2002年12月5日(木) メソッドとクラス (教科書6章) クイズ インスタンスメソッド インスタンス変数
第6回独習Javaゼミ 第6章 セクション4~6 発表者 直江 宗紀.
~手続き指向からオブジェクト指向へ[Ⅱ]~
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向基礎学習Ⅱ 平成20年7月1日 森田 彦.
JAVA入門後期⑩ 情報処理試験例題解説.
アルゴリズムとプログラミング (Algorithms and Programming)
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
独習JAVA 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 ObjectクラスとClassクラス 11月28日(金)
オブジェクト指向 プログラミング 第十一回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
プログラミング演習3 第3回 ミニプロジェクト.
暗黙的に型付けされる構造体の Java言語への導入
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
第11週:super/subクラス、継承性、メソッド再定義
Nakano School of Business 経営情報ビジネス科 【 Java概論(Test5)】
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
演習1 : インターフェイスを使ってみよう 「10人の客(乗用車、バイク、ストーブのいずれかランダムに決定)に1~100(L)の給油をするガソリンスタンドをシミュレートする実行クラス : RefuelSimulation」を作成する。給油の際には、どの種類の客が何リットル給油したか出力すること。 実行結果例.
7.4 intanceof 演算子 7.5~7.9パッケージ 2003/11/28 紺野憲一
変数,式,関数,クラス,コンストラクタ, クラスの属性アクセス,メソッド,親クラ スからの継承
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
オブジェクト指向言語論 第八回 知能情報学部 新田直也.
プログラミング基礎a 第11回 Java言語による図形処理入門(3) アニメーション入門
ソフトウェア制作論 平成30年11月21日.
オブジェクト指向 プログラミング 第十ニ回 知能情報学部 新田直也.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
計算機プログラミングI 第8回 素数を見つけるアルゴリズム 継承とインスタンスメソッド クラスの設計 オブジェクトに機能を加える
第7回放送授業.
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向言語論 第十二回 知能情報学部 新田直也.
プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.
C#プログラミング実習 第3回.
計算機プログラミングI 第3回 プリミティブ値 クラスメソッド クラス変数 式と演算 変数の利用
画面への描画 Graphics オブジェクト 紙 ペン Pen オブジェクト Brush オブジェクト 画面のピクセルをカプセル化
Chapter 5 5.5 thisキーワード 5.6 インスタンス変数とインスタンスメソッド 結城 隆
プログラミング基礎a 第9回 Java言語による図形処理入門(1) Javaアプレット入門
JAVA入門⑥ クラスとインスタンス.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
cp-3. サブクラス,継承 (C++ オブジェクト指向プログラミング入門)
cp-2. 属性,アクセサ (C++ オブジェクト指向プログラミング入門)
cp-1. クラスとメソッド (C++ オブジェクト指向プログラミング入門)
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
オブジェクト指向言語論 第十回 知能情報学部 新田直也.
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
計算機プログラミングI 第10回 2002年12月19日(木) メソッドの再定義と動的結合 クイズ メソッドの再定義 (オーバーライド)
Presentation transcript:

第8回放送授業

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

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

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

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

属性(インスタンス変数) Figure @x, @y Circle @x, @y, @r

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

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

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

#(続き) def draw # 本来,OSの図形を描くサブプログラムを呼び出し # putsの出力文は継続行 puts("draw circle: org=[#{@xorg},#{@yorg}],radius=#{@r}") end #(続く)

#(続き) def erase # 本来,OSの図形を消すサブプログラムを呼び出し # putsの出力文は継続行 puts("erase circle: org=[#{@xorg},#{@yorg}],radius=#{@r}") end

# 円 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.@r # これは許されていない # c2.pos で何が表示されるか puts("position of circle: ", c2.pos) c1.erase # 円 c1 の消去 c2.erase # 円 c2 の消去

継承 多様性 カプセル化

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

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

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

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

#(続き) def draw # 本来,OSの図形を描くサブプログラムを呼び出し # putsの出力文は継続行 puts("draw circle: org=[#{@xorg},#{@yorg}],radius=#{@r}") end #(続く)

#(続き) def erase # 本来,OSの図形を消すサブプログラムを呼び出し # putsの出力文は継続行 puts("erase circle: org=[#{@xorg},#{@yorg}],radius=#{@r}") end

# 円 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.@r # これは許されていない # c2.pos で何が表示されるか puts("position of circle: ", c2.pos) c1.erase # 円 c1 の消去 c2.erase # 円 c2 の消去

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

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

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

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

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