オブジェクト指向入門.

Slides:



Advertisements
Similar presentations
独習JAVA Chapter 6 6.6 クラスの修飾子 6.7 変数の修飾子 結城 隆. 6.6 クラスの修飾 abstract インスタンス化できないクラス。1つまたは複数のサブクラスで 実装してはじめてインスタンス化できる。 final 継承されたくないことを明示する。これ以上機能拡張 / 変更でき.
Advertisements

復習ー I (General Review I) クラスとオブジェクトの概念 Concepts of class and object クラスの宣言とオブジェクトの生成 Definition of a class and creation of an object コンストラクタとメソッドのオーバーロー.
6.4継承とメソッド 6.5継承とコンストラクタ 11月28日 時田 陽一
Applet 岡部 祐典 鈴木 敬幸.
~手続き指向からオブジェクト指向へ(Ⅰ)~
プログラミング基礎I(再) 山元進.
Javaのための暗黙的に型定義される構造体
アルゴリズムとデータ構造1 2007年6月12日
アルゴリズムとプログラミング (Algorithms and Programming)
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
アルゴリズムとプログラミング (Algorithms and Programming)
計算機プログラミングI 第12回 2003年1月23日(木) インターフェース スレッド 最後に お知らせ クイズ 授業アンケート
社会人学習講座 「Javaプログラミング概論」
第2章 Eclipseと簡単なオブジェクト 指向プログラミング
第20章 Flyweight ~同じものを共有して無駄をなくす~
インタフェース プログラミング 第14回 インタフェース プログラミング第14回.
大岩 元 慶応大学環境情報学部 二分木 データ構造とプログラミング(10) 大岩 元 慶応大学環境情報学部
ピカチュウによる オブジェクト指向入門 (新版)
計算機プログラミングI 第8回 2002年12月5日(木) メソッドとクラス (教科書6章) クイズ インスタンスメソッド インスタンス変数
アルゴリズムとデータ構造 2011年6月20日
CONCURRENT PROGRAMMING
第6回独習Javaゼミ 第6章 セクション4~6 発表者 直江 宗紀.
~手続き指向からオブジェクト指向へ[Ⅱ]~
第11回 アプリケーションの構成 ~CUI自動販売機の完成!~.
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
変数のスコープ クラス クラス変数 すべてのメソッドの外側でstaticで定義
ソフトウェア工学 知能情報学部 新田直也.
プログラミング言語入門 手続き型言語としてのJava
アルゴリズムとプログラミング (Algorithms and Programming)
第9章 例外処理,パッケージ 9.1 例外処理 9.2 ガーベッジコレクション.
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
独習JAVA 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 ObjectクラスとClassクラス 11月28日(金)
オブジェクト指向 プログラミング 第十一回 知能情報学部 新田直也.
第7回独習Javaゼミ セクション 1~4 発表者 直江 宗紀.
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
暗黙的に型付けされる構造体の Java言語への導入
第11週:super/subクラス、継承性、メソッド再定義
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第七回 知能情報学部 新田直也.
計算機プログラミングI 第11回 再帰 再帰的なメソッド定義 帰納的定義 再帰的なデータ構造 計算機プログラミングI (増原) 2003年度.
オブジェクト指向言語論 第八回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第十ニ回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
計算機プログラミングI 第5回 配列 文字列(Stringクラス) mainの引数 配列の利用例
オブジェクト・プログラミング 第8回.
計算機プログラミングI 第8回 素数を見つけるアルゴリズム 継承とインスタンスメソッド クラスの設計 オブジェクトに機能を加える
計算機プログラミングI 第12回 スレッド インターフェース 授業アンケート 計算機プログラミングI (増原) 2003年度.
第8回放送授業.
アルゴリズムとプログラミング (Algorithms and Programming)
オブジェクト指向 プログラミング 第九回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.
計算機プログラミングI 木曜日 1時限・5時限 担当: 増原英彦 第1回 2002年10月10日(木)
計算機プログラミングI 第3回 プリミティブ値 クラスメソッド クラス変数 式と演算 変数の利用
ソフトウェア制作論 平成30年11月28日.
Chapter 5 5.5 thisキーワード 5.6 インスタンス変数とインスタンスメソッド 結城 隆
JAVA入門⑥ クラスとインスタンス.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
アルゴリズムとデータ構造 2012年6月21日
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
オブジェクト指向言語論 第十回 知能情報学部 新田直也.
オブジェクト・プログラミング 第10回 オブジェクト指向設計のキモ.
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
計算機プログラミングI 第10回 2002年12月19日(木) メソッドの再定義と動的結合 クイズ メソッドの再定義 (オーバーライド)
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
Presentation transcript:

オブジェクト指向入門

インスタンス変数 public class Student { public String name; public int id; }

インスタンスの生成 class StudentTest { public static void main(String[] args) { Student s = new Student(); s.name = “Hagiya”; s.id = 1; System.out.println(s.name); s = new Student(); s.name = “Turing”; s.id = 2; }

インスタンス・メソッド public class Student { public String name; public int id; public void setName(String n) { this.name = n; // もしくは name = n; }

インスタンス・メソッドの呼び出し class StudentTest { public static void main(String[] args) { Student s = new Student(); s.setName(“Hagiya”); System.out.println(s.name); }

スタティック変数(クラス変数) public class Student { public String name; public int id; static int nextid = 1; public void setName(String n) { name = n; id = nextid; nextid++; }

インスタンス・メソッドの呼び出し class StudentTest { public static void main(String[] args) { Student s = new Student(); s.setName(“Hagiya”); s = new Student(); s.setName(“Turing”); System.out.println(s.id); }

コンストラクタ public class Student { public String name; public int id; static int nextid = 1; public Student(String n) { name = n; id = nextid; nextid++; }

コンストラクタの呼び出し class StudentTest { public static void main(String[] args) { Student s = new Student(“Hagiya”); s = new Student(“Turing”); System.out.println(s.id); }

参照(reference) public class Cell { public int value; public Cell next; public void print() { System.out.println(value); if (next != null) next.print(); }

リンク構造(リスト)の作成 class CellTest { public static void main(String[] args) { Cell c = new Cell(); c.value = 1; c.next = new Cell(); c.next.value = 2; c.next.next = new Cell(); c.next.next.value = 3; c.next.next.next = null; // not necessary c.print(); }

c : value : 1 next : value : 2 next : value : 3 next : null

継承 public class ForeignStudent extends Student { public String country; public void setCountry(String c) { country = c; } Student は次のスライドの定義を用いる。

public class Student { public String name; public int id; static int nextid = 1; public void setName(String n) { name = n; id = nextid; nextid++; } public Student(String n) { public Student() {}

サブクラスのインスタンス class StudentTest { public static void main(String[] args) { ForeignStudent s = new ForeignStudent(); s.setName(“Potter”); s.setCountry(“USA”); System.out.println(s.name); System.out.println(s.country); }

型と継承 class StudentTest { public static void main(String[] args) { Student ss = new ForeignStudent(); ss.setName(“Potter”); System.out.println(ss.name); }

演習 様々な方法でStudentオブジェクトを 生成してみよ。 Cellオブジェクトを用いて実際に リンク構造(リスト)を作ってみよ。

グラフィック・オブジェクト (タートル・グラフィクス)

public class T21 { public static void main(String[] args){ TurtleFrame f; //変数 f の型宣言 f = new TurtleFrame(); //TurtleFrameを作成し //fに代入 Turtle m = new Turtle(); //Turtle を作成し, //m の初期値として代入 Turtle m1 = new Turtle(); //もう1つ作成し, //m1 の初期値として代入 f.add(m); //f に m を追加 f.add(m1); //f に m1 を追加 m.fd(100); //m よ前に 100 進め m.rt(90); //m よ右に 90 度回れ m.fd(150); //m よ前に 150 進め m1.rt(90); //m1 よ右に 90 度回れ m1.fd(100); //m1 よ前に 150 進め }

public class T45 { public static void main(String[] args){ TurtleFrame f = new TurtleFrame(); Turtle m = new Turtle(); f.add(m); for(int j = 0; j < 8; j++){ for(int i = 0; i < 5; i++){ m.fd(50); m.lt(72); } m.rt(45);

public class House extends Turtle { //Turtle を拡張する public House() { super(); } public House(int x, int y, int a) { super(x,y,a); public void polygon(int n, int s){ //polygonメソッドの定義 int a = 360/n; //曲がる角度を求めておく for(int j = 0; j < n; j++){ //n 回繰り返す fd(s); //s 前に進んで rt(a); //a 曲がるのを public void house(int s){ //house メソッドの定義 polygon(4,s); // polygon を利用 fd(s); rt(30); polygon(3,s); lt(30); bk(s); //元の場所に戻しておく

public class T61 { public static void main(String[] args){ TurtleFrame f = new TurtleFrame(); House m = new House(); int s = 50; f.add(m); m.house(s); m.up(); m.fd(s * 2); m.down(); m.polygon(3, s / 2); m.up(); m.fd(s); m.down(); m.polygon(10, s / 5); }