プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.

Slides:



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

構造体 構造体とは? 複数のデータをパックしたもの。 新しい “ 型 “ として使用できる. 構造体 キーワード struct strcut は構造体を宣言する命令。 struct { double x,y; }a,b,c; ↑ ここまでが宣 言 ← この形式で、構造体 a,b,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 継承されたくないことを明示する。これ以上機能拡張 / 変更でき.
AIプログラミング Java とオブジェクト指向プログラミングの基 礎 認知システム論 情報工学コース コンピュータサイエンスコース 生体情報コース.
ソフトウェア工学 理工学部 情報システム工学科 新田直也. 演習問題 1 の解答例  入庫処理の DFD 酒屋の在庫問題の DFD( 入庫処理 ) 更新情報 在庫ファイル 更新処理 倉庫係 在庫不足リスト 在庫ファイル 出庫指示書 新規出庫 判定 出庫指示書 作成処理 出庫依頼 積荷票.
ソフトウェア工学 知能情報学部 新田直也. オブジェクト指向パラダイムと は  オブジェクト指向言語の発展に伴って形成され てきたソフトウェア開発上の概念.オブジェク ト指向分析,オブジェクト指向設計など,プロ グラミング以外の工程でも用いられる.  ソフトウェアを処理や関数ではなくオブジェク.
6.4継承とメソッド 6.5継承とコンストラクタ 11月28日 時田 陽一
~手続き指向からオブジェクト指向へ(Ⅰ)~
プログラミング基礎I(再) 山元進.
プログラミングパラダイム さまざまな計算のモデルにもとづく、 プログラミングの方法論 手続き型 関数型 オブジェクト指向 代数 幾何.
アルゴリズムとデータ構造1 2007年6月12日
アルゴリズムとプログラミング (Algorithms and Programming)
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
社会人学習講座 「Javaプログラミング概論」
C#とC++とオブジェクト指向 上甲 健史.
オブジェクト指向入門.
計算機プログラミングI 第8回 2002年12月5日(木) メソッドとクラス (教科書6章) クイズ インスタンスメソッド インスタンス変数
第6回独習Javaゼミ 第6章 セクション4~6 発表者 直江 宗紀.
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
プログラミング言語入門 手続き型言語としてのJava
アルゴリズムとプログラミング (Algorithms and Programming)
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
独習JAVA 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 ObjectクラスとClassクラス 11月28日(金)
オブジェクト指向 プログラミング 第十一回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
第11週:super/subクラス、継承性、メソッド再定義
Nakano School of Business 経営情報ビジネス科 【 Java概論(Test5)】
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第七回 知能情報学部 新田直也.
プログラミング言語論 第五回 理工学部 情報システム工学科 新田直也.
5.9 メソッドのオーバーロード 5.10 変数の引渡し 2003/11/21 紺野憲一
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
オブジェクト指向言語論 第八回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第十ニ回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
オブジェクト・プログラミング 第8回.
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
プログラミング言語論 第六回 理工学部 情報システム工学科 新田直也.
アルゴリズムとプログラミング (Algorithms and Programming)
オブジェクト指向 プログラミング 第九回 知能情報学部 新田直也.
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
オブジェクト指向言語論 第三回 知能情報学部 新田直也.
C#プログラミング実習 第3回.
計算機プログラミングI 第3回 プリミティブ値 クラスメソッド クラス変数 式と演算 変数の利用
Chapter 5 5.5 thisキーワード 5.6 インスタンス変数とインスタンスメソッド 結城 隆
オブジェクト指向言語論 第五回 知能情報学部 新田直也.
JAVA入門⑥ クラスとインスタンス.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第四回 知能情報学部 新田直也.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
cp-3. サブクラス,継承 (C++ オブジェクト指向プログラミング入門)
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
オブジェクト指向言語論 第三回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
オブジェクト指向言語論 第十回 知能情報学部 新田直也.
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
計算機プログラミングI 第10回 2002年12月19日(木) メソッドの再定義と動的結合 クイズ メソッドの再定義 (オーバーライド)
Presentation transcript:

プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也

オブジェクト指向の考え方 プログラムをオブジェクトの塊と見る. C言語: プログラムを関数(手続き)の塊と見る. 関数型言語: プログラムを(数学的な)関数の塊と見る. 人工知能型言語: プログラムを知識(論理式)の塊と見る. オブジェクト メッセージ

オブジェクトとメッセージ オブジェクト同士はメッセージで互いに情報をやり取りする. オブジェクトはお互いに相手の中身を知らない. オブジェクトの型をクラスという. クラス

Javaによるオブジェクト指向 (クラス) クラスは,メンバ変数とメソッドをカプセル化したもの. 例: class Vector { double x; double y; Vector add(Vector a) { x += a.x; y += a.y; return this; } double inner_product(Vector a) { return x * a.x + y * a.y; } double length() { return Math.sqrt(inner_product(this)); } } メンバ変数 メソッド

Javaによるオブジェクト指向 (インスタンス) オブジェクトはインスタンスとして表現される. インスタンスは new によって生成される. 構文: new クラス名() 例: class Test { public static void main(String args[]) { Vector a, b; a = new Vector(); b = new Vector(); } } 参照型変数(後で説明) Vectorのインスタンスの生成

Javaによるオブジェクト指向 (メッセージ) メッセージの送信はメソッド呼出しに対応する. 構文: インスタンス名.メソッド名(実引数1, 実引数2, …) 例: class Test { public static void main(String args[]) { Vector a, b; double d; a = new Vector(); b = new Vector(); a.x = 5; a.y = 10; b.x = 15; b.y = 20; d = a.inner_product(b); System.out.println(d); } } a の inner_product() を呼出し

Javaによるオブジェクト指向 (コンストラクタ) インスタンスの生成も実はメソッド呼出し. コンストラクタ: インスタンスを生成するメソッド(引数を持てる). 例: class Vector { : Vector(double px, double py) { x = px; y = py; } : } class Test { public static void main(String args[]) { Vector a, b; double d; a = new Vector(5, 10); b = new Vector(15, 20); : クラスと 同一名 コンストラクタ

Javaによるオブジェクト指向 (変数宣言) 変数には基本型と参照型がある. 基本型: int, double, float, long, boolean 参照型: 配列型,クラス型 宣言は使用前ならどこでも可能 class Test { public static void main(String args[]) { Vector a = new Vector(5, 10); Vector b = a; double d = a.length(); System.out.println(d); b.x = 10; d = a.length(); System.out.println(d); } } Vector a b 参照型 a の内容を b の内容に コピーするわけではない. b が a と同じオブジェクト を指すようになる. 基本型 a.x の値も同時に変わる.

Javaによるオブジェクト指向 (this演算子) 例: class Vector { double x; double y; Vector add(Vector a) { this.x += a.x; this.y += a.y; return this; } double inner_product(Vector a) { return this.x * a.x + this.y * a.y; } double length() { return Math.sqrt(this.inner_product(this)); } } class Vector { double x; double y; Vector add(Vector a) { x += a.x; y += a.y; return this; } double inner_product(Vector a) { return x * a.x + y * a.y; } double length() { return Math.sqrt(inner_product(this)); } }

継承 継承: 基本となるクラスを拡張して,新しいクラスを定義すること. 親クラス: 元となるクラス.スーパークラスとも言う. 親クラス: 元となるクラス.スーパークラスとも言う. 子クラス: 親クラスを拡張したクラス.拡張した部分だけ定義する. クラスA 基底クラス クラスC 派生 クラスB 派生 クラスD 派生