SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
オブジェクト指向
こころ編
かわばたれもん エンジニア
(2015:新卒入社)
@Kawabata_Lemon LemonKawabata
オブジェクト指向の用語
カプセル化
継承 委譲
インターフェイス
クラス
インスタンス
ポリモーフィズム
メソッド
あああああああああ!!!!
言葉が多すぎる!!
しかし、オブジェクト指向こそが
プログラムに魔法のような力を与える
秘密なのです
オブジェクト指向を理解する軸
それは………
責任の所在
つまり誰が何をすべきかということ
たとえば
次の授業に向かってください
はい はい
次の授業
英語
次の授業
数学
教授が受講している学生に対して次の授業へ向かうように言う時
次の授業に向かってください
はい はい
英語の教室へ向かう 数学の教室へ向かう
教授は次の授業が何かを知らない。
学生は自分の次の授業を知っている
言い換えれば、自分は何を知って
いて何をするべきかわかっている
オブジェクト指向とはそういうもの
その視点でオブジェクト指向
の単語を振り返ってみる
学生も教授も自分たちのやるべきことや知っておくべきことは
知っている。
自分たちの知っておくべきこと
自分たちのやるべきこと =メソッド
=メンバ変数
責任を負っている単位のこと =クラス
責任を負っている単位の実体 =インスタンス
次の授業へ行く
(数学の授業へ向かう)
学生諸君、
次の授業へ向かいなさい
(教授は次の授業のことは知らないし知らなくていいこと)
次の授業へ行く
(英語の授業へ向かう)
中身の処理を外から見えなくさせること =カプセル化
学生だからそう言えるのであって
高校生なのか大学生なのか知らなくていい。
共通の属性(学生)ならできることを示した表 =インターフェイス
学生
(けど実は大学生)
学生
(実は高校生)
属性ややるべきことを身につけるために引き継ぐこと
学生(やるべきこと:次の授業へ行く)
大学生(数学の講堂へ行く) 高校生(英語の教室へ行く)
=継承
彼らは学生インターフェイスを「継承」していると言う。
学生インターフェイスにはやるべきことの「中身」がなくてそれを持っている人が決
める。やるべきことの中身を相手に「委譲」していると言う
引き継ぎ先に内容をお任せすること =委譲
同じことを言ってもそれぞれがことなる挙動をとれたりできること
学生
大学生 大学生
=ポリモーフィズム(多態性)
そのおかげで同じ「次の授業へいきなさい」と言うだけで二人とも全然違う行動を
とれる
結局、オブジェクト指向ってなんだった?
プログラムの世界が
処理のやりとりのレベルから
意図のやりとりのレベルへ
パラダイムシフトしたことだった。
オブジェクト指向型言語とはなんだ?
意図のやりとりのレベルでのプログラムを
作る仕組みが
(インターフェイスとかカプセル化とか色々)
言語そのものに
もともと備わっている言語のこと。
ほかにも…
オーバーライドとかオーバーロードとかいろいろ
オブジェクト指向の単語はあるが
やるべきこと、知るべきこと、責任などの
視点で確認していけばそんななに怖くない!
はず!

Mais conteúdo relacionado

Destaque

El Cabildo maltrata a LPGC en el reparto del Fondo de Desarrollo de Canarias
El Cabildo maltrata a LPGC en el reparto del Fondo de Desarrollo de CanariasEl Cabildo maltrata a LPGC en el reparto del Fondo de Desarrollo de Canarias
El Cabildo maltrata a LPGC en el reparto del Fondo de Desarrollo de CanariasAgustín Díaz Lorenzo
 
Freedom of Speech & Freedom of Education in Spain Today
Freedom of Speech & Freedom of Education in Spain TodayFreedom of Speech & Freedom of Education in Spain Today
Freedom of Speech & Freedom of Education in Spain TodayIgnacio Arsuaga
 
How to Take Charge of Your Career and Be Successful
How to Take Charge of Your Career and Be SuccessfulHow to Take Charge of Your Career and Be Successful
How to Take Charge of Your Career and Be SuccessfulAnna Lundberg
 
Nuorten sosiaalisen viestinnän muutos - Juha Kiviniemi - Verke - 28.3.2017 - ...
Nuorten sosiaalisen viestinnän muutos - Juha Kiviniemi - Verke - 28.3.2017 - ...Nuorten sosiaalisen viestinnän muutos - Juha Kiviniemi - Verke - 28.3.2017 - ...
Nuorten sosiaalisen viestinnän muutos - Juha Kiviniemi - Verke - 28.3.2017 - ...Verke
 
المرور عبر حارس البوابه و الوصول الى متخذ القرار
المرور عبر حارس البوابه و الوصول الى متخذ القرارالمرور عبر حارس البوابه و الوصول الى متخذ القرار
المرور عبر حارس البوابه و الوصول الى متخذ القرارAshraf Osman
 
Innovations, Challenges, and Opportunities to Develop Regional Cooperation fo...
Innovations, Challenges, and Opportunities to Develop Regional Cooperation fo...Innovations, Challenges, and Opportunities to Develop Regional Cooperation fo...
Innovations, Challenges, and Opportunities to Develop Regional Cooperation fo...CINEC Campus
 
Instinto, sexo y sexualidad
Instinto, sexo y sexualidadInstinto, sexo y sexualidad
Instinto, sexo y sexualidadJesus Villasmil
 
5 Steps to (Remote) Team Bliss: How to Build Thriving, High-Performing (Remot...
5 Steps to (Remote) Team Bliss: How to Build Thriving, High-Performing (Remot...5 Steps to (Remote) Team Bliss: How to Build Thriving, High-Performing (Remot...
5 Steps to (Remote) Team Bliss: How to Build Thriving, High-Performing (Remot...Harvard Web Working Group
 
Problematicas emergentes
Problematicas emergentesProblematicas emergentes
Problematicas emergentescursavirtual
 
Edudirectores - El desarrollo de la función directiva - 1ª sesión presencial
Edudirectores - El desarrollo de la función directiva - 1ª sesión presencialEdudirectores - El desarrollo de la función directiva - 1ª sesión presencial
Edudirectores - El desarrollo de la función directiva - 1ª sesión presencialJuanfra Álvarez Herrero
 
Distributed System explained (with NodeJS) - Bruno Bossola - Codemotion Milan...
Distributed System explained (with NodeJS) - Bruno Bossola - Codemotion Milan...Distributed System explained (with NodeJS) - Bruno Bossola - Codemotion Milan...
Distributed System explained (with NodeJS) - Bruno Bossola - Codemotion Milan...Codemotion
 
成果を達成するためのデザインプロセス
成果を達成するためのデザインプロセス成果を達成するためのデザインプロセス
成果を達成するためのデザインプロセスYuudai Tachibana
 
Techniques & Tools for Training Strong Distributed Teams
Techniques & Tools for Training Strong Distributed TeamsTechniques & Tools for Training Strong Distributed Teams
Techniques & Tools for Training Strong Distributed TeamsSococo
 
conservation and rewarding biodiversity conservation Trondheim 05-10-gupta-...
conservation and rewarding biodiversity conservation Trondheim   05-10-gupta-...conservation and rewarding biodiversity conservation Trondheim   05-10-gupta-...
conservation and rewarding biodiversity conservation Trondheim 05-10-gupta-...Dr Anil Gupta
 
Grâce aux tags Varnish, j'ai switché ma prod sur Raspberry Pi
Grâce aux tags Varnish, j'ai switché ma prod sur Raspberry PiGrâce aux tags Varnish, j'ai switché ma prod sur Raspberry Pi
Grâce aux tags Varnish, j'ai switché ma prod sur Raspberry PiJérémy Derussé
 

Destaque (18)

El Cabildo maltrata a LPGC en el reparto del Fondo de Desarrollo de Canarias
El Cabildo maltrata a LPGC en el reparto del Fondo de Desarrollo de CanariasEl Cabildo maltrata a LPGC en el reparto del Fondo de Desarrollo de Canarias
El Cabildo maltrata a LPGC en el reparto del Fondo de Desarrollo de Canarias
 
Freedom of Speech & Freedom of Education in Spain Today
Freedom of Speech & Freedom of Education in Spain TodayFreedom of Speech & Freedom of Education in Spain Today
Freedom of Speech & Freedom of Education in Spain Today
 
How to Take Charge of Your Career and Be Successful
How to Take Charge of Your Career and Be SuccessfulHow to Take Charge of Your Career and Be Successful
How to Take Charge of Your Career and Be Successful
 
Nuorten sosiaalisen viestinnän muutos - Juha Kiviniemi - Verke - 28.3.2017 - ...
Nuorten sosiaalisen viestinnän muutos - Juha Kiviniemi - Verke - 28.3.2017 - ...Nuorten sosiaalisen viestinnän muutos - Juha Kiviniemi - Verke - 28.3.2017 - ...
Nuorten sosiaalisen viestinnän muutos - Juha Kiviniemi - Verke - 28.3.2017 - ...
 
المرور عبر حارس البوابه و الوصول الى متخذ القرار
المرور عبر حارس البوابه و الوصول الى متخذ القرارالمرور عبر حارس البوابه و الوصول الى متخذ القرار
المرور عبر حارس البوابه و الوصول الى متخذ القرار
 
Manejo de la preeclampsia y vómitos en el embarazo
Manejo de la preeclampsia y vómitos en el embarazoManejo de la preeclampsia y vómitos en el embarazo
Manejo de la preeclampsia y vómitos en el embarazo
 
Innovations, Challenges, and Opportunities to Develop Regional Cooperation fo...
Innovations, Challenges, and Opportunities to Develop Regional Cooperation fo...Innovations, Challenges, and Opportunities to Develop Regional Cooperation fo...
Innovations, Challenges, and Opportunities to Develop Regional Cooperation fo...
 
Instinto, sexo y sexualidad
Instinto, sexo y sexualidadInstinto, sexo y sexualidad
Instinto, sexo y sexualidad
 
Effective Code Review
Effective Code ReviewEffective Code Review
Effective Code Review
 
5 Steps to (Remote) Team Bliss: How to Build Thriving, High-Performing (Remot...
5 Steps to (Remote) Team Bliss: How to Build Thriving, High-Performing (Remot...5 Steps to (Remote) Team Bliss: How to Build Thriving, High-Performing (Remot...
5 Steps to (Remote) Team Bliss: How to Build Thriving, High-Performing (Remot...
 
Problematicas emergentes
Problematicas emergentesProblematicas emergentes
Problematicas emergentes
 
Edudirectores - El desarrollo de la función directiva - 1ª sesión presencial
Edudirectores - El desarrollo de la función directiva - 1ª sesión presencialEdudirectores - El desarrollo de la función directiva - 1ª sesión presencial
Edudirectores - El desarrollo de la función directiva - 1ª sesión presencial
 
Distributed System explained (with NodeJS) - Bruno Bossola - Codemotion Milan...
Distributed System explained (with NodeJS) - Bruno Bossola - Codemotion Milan...Distributed System explained (with NodeJS) - Bruno Bossola - Codemotion Milan...
Distributed System explained (with NodeJS) - Bruno Bossola - Codemotion Milan...
 
成果を達成するためのデザインプロセス
成果を達成するためのデザインプロセス成果を達成するためのデザインプロセス
成果を達成するためのデザインプロセス
 
Techniques & Tools for Training Strong Distributed Teams
Techniques & Tools for Training Strong Distributed TeamsTechniques & Tools for Training Strong Distributed Teams
Techniques & Tools for Training Strong Distributed Teams
 
conservation and rewarding biodiversity conservation Trondheim 05-10-gupta-...
conservation and rewarding biodiversity conservation Trondheim   05-10-gupta-...conservation and rewarding biodiversity conservation Trondheim   05-10-gupta-...
conservation and rewarding biodiversity conservation Trondheim 05-10-gupta-...
 
Grâce aux tags Varnish, j'ai switché ma prod sur Raspberry Pi
Grâce aux tags Varnish, j'ai switché ma prod sur Raspberry PiGrâce aux tags Varnish, j'ai switché ma prod sur Raspberry Pi
Grâce aux tags Varnish, j'ai switché ma prod sur Raspberry Pi
 
Using Open Data to fuel LegalTech Innovation
Using Open Data to fuel LegalTech InnovationUsing Open Data to fuel LegalTech Innovation
Using Open Data to fuel LegalTech Innovation
 

Mais de 和樹 川端

Cocos2d xでぬるぬる動くビルダー機能実装
Cocos2d xでぬるぬる動くビルダー機能実装Cocos2d xでぬるぬる動くビルダー機能実装
Cocos2d xでぬるぬる動くビルダー機能実装和樹 川端
 
Braindotsをつくってわかったこと
BraindotsをつくってわかったことBraindotsをつくってわかったこと
Braindotsをつくってわかったこと和樹 川端
 
Braindots-開発秘話- Cocos2d-x3.5 開発事例 -
Braindots-開発秘話- Cocos2d-x3.5 開発事例 -Braindots-開発秘話- Cocos2d-x3.5 開発事例 -
Braindots-開発秘話- Cocos2d-x3.5 開発事例 -和樹 川端
 
cocos2dxことはじめ(2.2.5)
cocos2dxことはじめ(2.2.5)cocos2dxことはじめ(2.2.5)
cocos2dxことはじめ(2.2.5)和樹 川端
 

Mais de 和樹 川端 (9)

Nightmarejs
NightmarejsNightmarejs
Nightmarejs
 
Cocos2d xでぬるぬる動くビルダー機能実装
Cocos2d xでぬるぬる動くビルダー機能実装Cocos2d xでぬるぬる動くビルダー機能実装
Cocos2d xでぬるぬる動くビルダー機能実装
 
Braindotsをつくってわかったこと
BraindotsをつくってわかったことBraindotsをつくってわかったこと
Braindotsをつくってわかったこと
 
Braindots-開発秘話- Cocos2d-x3.5 開発事例 -
Braindots-開発秘話- Cocos2d-x3.5 開発事例 -Braindots-開発秘話- Cocos2d-x3.5 開発事例 -
Braindots-開発秘話- Cocos2d-x3.5 開発事例 -
 
Enchantjs
EnchantjsEnchantjs
Enchantjs
 
cocos2dxことはじめ(2.2.5)
cocos2dxことはじめ(2.2.5)cocos2dxことはじめ(2.2.5)
cocos2dxことはじめ(2.2.5)
 
Nodejs
NodejsNodejs
Nodejs
 
Java2cpp
Java2cppJava2cpp
Java2cpp
 
Adinnolab
AdinnolabAdinnolab
Adinnolab
 

Último

世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラムKochi Eng Camp
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2Tokyo Institute of Technology
 
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~Kochi Eng Camp
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ssusere0a682
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料Takayuki Itoh
 
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料Tokyo Institute of Technology
 

Último (6)

世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
 

オブジェクト指向