ピカチュウによる オブジェクト指向入門 (新版)

Slides:



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

AIプログラミング Java とオブジェクト指向プログラミングの基 礎 認知システム論 情報工学コース コンピュータサイエンスコース 生体情報コース.
6.4継承とメソッド 6.5継承とコンストラクタ 11月28日 時田 陽一
なぜ今Pythonか? Pythonをお薦めする18の理由
GridLayout オブジェクト(省略)
JavaScript プログラミング入門 2006/11/10 神津.
プログラミング言語としてのR 情報知能学科 白井 英俊.
~手続き指向からオブジェクト指向へ(Ⅰ)~
第4回 iPhoneアプリ開発勉強会 Objective-C 基礎講座 -クラス- 鷲見政明.
プログラミング基礎I(再) 山元進.
スレッドの同期と、スレッドの使用例 スレッドの同期 Lockオブジェクト: lockオブジェクトの生成
Ex8. Search for Vacuum Problem(2)
第5回 iPhoneアプリ開発勉強会 Objective-C 「継承とクラス」
アルゴリズムとプログラミング (Algorithms and Programming)
最適化ソルバーのための Python言語入門
Ruby勉強会(第1回) 2006/06/29 竹内豪.
Bottle/Pythonによる Webアプリ入門
アルゴリズムとプログラミング (Algorithms and Programming)
ソフトウエアの再利用 オブジェクト指向プログラミング サンテクノ㈱技術3課 清水利弘.
社会人学習講座 「Javaプログラミング概論」
JSFによるWebアプリケーション開発 第6回
第20章 Flyweight ~同じものを共有して無駄をなくす~
オブジェクト指向入門.
計算機プログラミングI 第8回 2002年12月5日(木) メソッドとクラス (教科書6章) クイズ インスタンスメソッド インスタンス変数
応用プロジェクト後半 第2回(11/26) 担当:奥田教授
第6回独習Javaゼミ 第6章 セクション4~6 発表者 直江 宗紀.
第13回 ハッシュテーブルを使ったプログラム ~高速に検索するには?~.
~手続き指向からオブジェクト指向へ[Ⅱ]~
アルゴリズムとプログラミング (Algorithms and Programming)
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
独習JAVA 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 ObjectクラスとClassクラス 11月28日(金)
オブジェクト指向 プログラミング 第十一回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
プログラミング言語入門.
二分木のメソッド(続き).
第11週:super/subクラス、継承性、メソッド再定義
Nakano School of Business 経営情報ビジネス科 【 Java概論(Test5)】
変数,式,関数,クラス,コンストラクタ, クラスの属性アクセス,メソッド,親クラ スからの継承
オブジェクト指向言語論 第八回 知能情報学部 新田直也.
ソフトウェア制作論 平成30年11月21日.
オブジェクト指向 プログラミング 第十ニ回 知能情報学部 新田直也.
アルゴリズムとデータ構造 2011年7月8日課題の復習
第7回放送授業.
第8回放送授業.
独習Java ・ 5.7  静的変数と静的メソッド ・ 5.8  ローカル変数と変数のスコープ  11月20日    小笠原 一恵.
15.cons と種々のデータ構造.
アルゴリズムとプログラミング (Algorithms and Programming)
オブジェクト指向 プログラミング 第九回 知能情報学部 新田直也.
オブジェクト指向プログラミング クラス 継承
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
IF文 START もしも宝くじが当たったら 就職活動する 就職活動しない YES END NO.
プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.
C#プログラミング実習 第3回.
Solver for COnstraint Programming:スコープ Pythonモジュールの使い方
Chapter 5 5.5 thisキーワード 5.6 インスタンス変数とインスタンスメソッド 結城 隆
JAVA入門⑥ クラスとインスタンス.
18. Case Study : Imperative Objects
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
cp-3. サブクラス,継承 (C++ オブジェクト指向プログラミング入門)
cp-2. 属性,アクセサ (C++ オブジェクト指向プログラミング入門)
cp-1. クラスとメソッド (C++ オブジェクト指向プログラミング入門)
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
君ならどうする – ls-lRシェル Python編
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
オブジェクト指向言語論 第十回 知能情報学部 新田直也.
計算機プログラミングI 第10回 2002年12月19日(木) メソッドの再定義と動的結合 クイズ メソッドの再定義 (オーバーライド)
Presentation transcript:

ピカチュウによる オブジェクト指向入門 (新版) 東京海洋大学 久保 幹雄

オブジェクトにくっついているものは 「オブジェクト. なんとか」と記述する! つまり「.」(ドット)こそが オブジェクト指向である!

例として ピカチュウ(Pikachu) オブジェクトを考える! class Pikachu(): ….

. Pikachu.cheak ピカチュウ の ほっぺ

ピカチュウ(Pikachu)オブジェクト の(・)ホッペ(cheak) 属性 (Attribute or Property)

cryメソッド Pikacyu.cry( ) ピカチュウ が(.) 泣く

ピカチュウ が(.) 泣く (cryメソッド=関数)

Pikachu.eat( “Apple” ) ピカチュウ が  「リンゴ」(引数) を(.) 食べる

ピカチュウオブジェクト が(・)「リンゴ」(引数:ひきすう) を食べる

def _ _init_ _(self, owner ): … def cry(self): class Pikacyu( ): def _ _init_ _(self, owner ): … def cry(self): def eat(self, something): MyPika = Pikacyu( “Mikio”) class 型名( ): def 初期化(自分,引数): … def メソッド(自分,引数): 実体 = 型名(引数) ピカチュウのインスタンス(実体) Mikio’s Pikacyu ピカチュウのクラス(型) Pikacyu

ピカチュウのクラス(型) class Pikacyu(): def __init__(self,owner=""): コンストラクタ(初期化) 所有者(Owner)を引数 Owner は ”” が既定値 Ownerが””のときは 野生のピカチュウ そうでないときは 名前をつける class Pikacyu(): def __init__(self,owner=""): if owner=="": self.name="Wild Pikacyu" else: self.name=Owner+"'s Pikacyu“ def __str__(self): return self.name 文字列を返す 特別なメソッド 名前属性 .name を返す

ピカチュウの(インスタンス)実体の生成 Pika1=Pikacyu() print Pika1 Wild Pikacyu Pika2=Pikacyu("Satoshi") print Pika2 Wild Pikacyu Satoshi's Pikacyu 1000匹の野生のピカチュウ for i in range(1000): Pika=Pikacyu()

クラス変数とインスタンス変数 class Pikacyu(): id= 0 def __init__(self,owner=""): self.number = Pikacyu.id …. def __str__(self): return self.name + " No." + str(self.number) idは ピカチュウクラスの 通し番号 これはクラス変数 インスタンスが生成される 度にクラス変数idを1増やす self.numberは 自分の 番号 これはインスタンス変数 名前と番号を返す

1000匹のピカチュウインスタンスのリストの生成 PikaList=[] for i in range(1000): Pika=Pikacyu() print Pika PikaList.append(Pika) Wild Pikacyu No.1 Wild Pikacyu No.2 Wild Pikacyu No.3 Wild Pikacyu No.4 Wild Pikacyu No.5 Wild Pikacyu No.6 ... Wild Pikacyu No.999 Wild Pikacyu No.1000

継承 class FlyingPikacyu(Pikacyu): def __init__(self,owner=“”): 親(スーパ-)クラス 継承 class FlyingPikacyu(Pikacyu): def __init__(self,owner=“”): self = Pikacyu.__init__(self,owner) def fly(self): print "I can fly!" NewPika=FlyingPikacyu("Mikio“) print NewPika.fly() >>> "I can fly!“ 空飛ぶピカチュウクラスは ピカチュウクラスを継承 新しい「空を飛ぶ」 メソッドの追加 子(サブ)クラス