オブジェクト指向 プログラミング 第十一回 知能情報学部 新田直也.

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 継承されたくないことを明示する。これ以上機能拡張 / 変更でき.
AIプログラミング Java とオブジェクト指向プログラミングの基 礎 認知システム論 情報工学コース コンピュータサイエンスコース 生体情報コース.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也. 講義計画(あくまで予定) 第 1 回 プログラミング言語の種類と歴史 第 2 回 eclipse の基本操作 第 3 回 eclipse のデバッグ機能 第 4 回 構造化プログラミングの復習 第 5 回 演習 第 6 回 構造化指向からオブジェクト指向へ.
ソフトウェア工学 理工学部 情報システム工学科 新田直也. 演習問題 1 の解答例  入庫処理の DFD 酒屋の在庫問題の DFD( 入庫処理 ) 更新情報 在庫ファイル 更新処理 倉庫係 在庫不足リスト 在庫ファイル 出庫指示書 新規出庫 判定 出庫指示書 作成処理 出庫依頼 積荷票.
ソフトウェア工学 知能情報学部 新田直也. オブジェクト指向パラダイムと は  オブジェクト指向言語の発展に伴って形成され てきたソフトウェア開発上の概念.オブジェク ト指向分析,オブジェクト指向設計など,プロ グラミング以外の工程でも用いられる.  ソフトウェアを処理や関数ではなくオブジェク.
6.4継承とメソッド 6.5継承とコンストラクタ 11月28日 時田 陽一
Applet 岡部 祐典 鈴木 敬幸.
~手続き指向からオブジェクト指向へ(Ⅰ)~
プログラミング基礎I(再) 山元進.
アルゴリズムとデータ構造1 2007年6月12日
アルゴリズムとプログラミング (Algorithms and Programming)
アルゴリズムとプログラミング (Algorithms and Programming)
社会人学習講座 「Javaプログラミング概論」
第2章 Eclipseと簡単なオブジェクト 指向プログラミング
C#とC++とオブジェクト指向 上甲 健史.
インタフェース プログラミング 第14回 インタフェース プログラミング第14回.
オブジェクト指向入門.
計算機プログラミングI 第8回 2002年12月5日(木) メソッドとクラス (教科書6章) クイズ インスタンスメソッド インスタンス変数
Javaとオブジェクト指向プログラミングの基礎
第6回独習Javaゼミ 第6章 セクション4~6 発表者 直江 宗紀.
~手続き指向からオブジェクト指向へ[Ⅱ]~
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
アルゴリズムとプログラミング (Algorithms and Programming)
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
独習JAVA 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 ObjectクラスとClassクラス 11月28日(金)
第7回独習Javaゼミ セクション 1~4 発表者 直江 宗紀.
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
コンパイラの解析 (3) クラスとインスタンスの初期化.
ソフトウェア工学 知能情報学部 新田直也.
第11週:super/subクラス、継承性、メソッド再定義
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
11 ソフトウェア工学 Software Engineering デザインパターン DESIGN PATTERNS.
オブジェクト指向 プログラミング 第七回 知能情報学部 新田直也.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
オブジェクト指向言語論 第八回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第十ニ回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
オブジェクト・プログラミング 第8回.
アルゴリズムとプログラミング (Algorithms and Programming)
オブジェクト指向 プログラミング 第九回 知能情報学部 新田直也.
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向言語論 第十二回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.
C#プログラミング実習 第3回.
ソフトウェア制作論 平成30年11月28日.
Chapter 5 5.5 thisキーワード 5.6 インスタンス変数とインスタンスメソッド 結城 隆
JAVA入門⑥ クラスとインスタンス.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第四回 知能情報学部 新田直也.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
オブジェクト指向言語論 第十回 知能情報学部 新田直也.
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
計算機プログラミングI 第10回 2002年12月19日(木) メソッドの再定義と動的結合 クイズ メソッドの再定義 (オーバーライド)
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
Presentation transcript:

オブジェクト指向 プログラミング 第十一回 知能情報学部 新田直也

クラスとインスタンスの復習(1/2) クラスはモノの概念,種類. インスタンスは個々のモノ,個体. 人(Person)クラスの作成. public class Person { String name; double height; double weight; double getBMI() { return weight / (height * height); }

クラスとインスタンスの復習(2/2) main()メソッド内で Person クラスのインスタンスを2つ生成する. 1つのクラスに対してインスタンスはいくつでも作成できる. インスタンスの生成×2 public static void main(String[] args) {    Person p1 = new Person();    p1.setHeight(1.7);    p1.setWeight(65);    Person p2 = new Person();    p2.setHeight(1.6);    p2.setWeight(55);    double bmi1 = p1.getBMI();    double bmi2 = p2.getBMI();    System.out.println(bmi1);    System.out.println(bmi2); } p1とp2はPersonクラスの 別のインスタンスなので その内容も異なる

オブジェクト指向言語の基本概念 カプセル化 継承 多相性(ポリモルフィズム) データ構造とアルゴリズムの一体化 ⇒ クラス フィールドとメソッド クラスとインスタンス 継承 多相性(ポリモルフィズム)

継承とは? オブジェクト指向プログラミングとはクラスの作成. 新たにクラスを作成する際に,今までに作成したクラスを再利用することによって,クラス作成時のプログラミングの量を減らすこと(差分プログラミング). ただし,差分プログラミングは近年あまり強調されない. 再利用する既存クラスを親クラス,親クラスを再利用して新たに作成するクラスを子クラスという. クラスがモノの概念や種類を表すことから,親クラスはより一般的な概念,子クラスはより特殊な概念を表すと考えればよい.

継承の例(1/3) Personは「人」を表していた. 人のより特殊な概念として「学生」を考える. public class Student { String name; double height; double weight; String id; // 学籍番号 int grade; // 学年 String getId() { return id; } int getGrade() { return grade; double getBMI() { return weight / (height * height); Person クラスと 共通

継承の例(2/3) extendsを用いて親クラスを拡張して子クラスを作成. 親クラスとの共通部分を省略できるのでクラスの作成を効率化できる. public class Student extends Person { String id; // 学籍番号 int grade; // 学年 String getId() { return id; } int getGrade() { return grade; Person クラスを 拡張して 作成する Person クラスとの 共通部分 は省略

継承の例(3/3) main()メソッド内の書き方は親クラスと同様. インスタンスの生成×2 public static void main(String[] args) {    Student p1 = new Student();    p1.setHeight(1.7);    p1.setWeight(65);    Student p2 = new Student();    p2.setHeight(1.6);    p2.setWeight(55);    double bmi1 = p1.getBMI();    double bmi2 = p2.getBMI();    System.out.println(bmi1);    System.out.println(bmi2); } setHeight()と setWeight()は Studentクラスに 定義されていない ことに注意!

継承がある場合のメソッド呼び出し デバッガを使って追いかけてみる. public static void main(String[] args) {    Student p1 = new Student();    p1.setGrade(1);    p1.setHeight(1.7);    p1.setWeight(65);    Student p2 = new Student();    p2.setGrade(2);    p2.setHeight(1.6);    p2.setWeight(55);    double bmi1 = p1.getBMI();    double bmi2 = p2.getBMI();    int grade1 = p1.getGrade();    int grade2 = p2.getGrade();    System.out.println(grade1 + "," + bmi1);    System.out.println(grade2 + "," + bmi2); } Personクラスと Studentクラスの いずれが呼び出されるか?