SlideShare a Scribd company logo
とある商人と小人たちの
オブジェクト指向物語
おのみー@MII22
WHO AM I?
• 小野未紗 パーカーの人
年齢 26歳
• 2018年7月 技術職として中途入社
• 現在、大手通信会社のシステム開発に従事
• 最近ハマっていること
iOS・Android アプリ開発/過去カンファレンス動画視聴
(try!Swift2018とか)
なんか面白いゲームがあれば教えてください
今回お話する内容 オブジェクト指向
• オブジェクト指向についてお話します。
• 「オブジェクト指向とはなんぞや」とハマったので自分の整理も兼ね
て簡単にまとめてみましたよっと
• とはいえ、まだまだ未熟なヒヨコなので分かりにくいところがあるか
と思います。
そんな時はLTの後に「おめぇあそこはもう少しこうした方が分かりやす
いぜ」って言う意見を教えてくれると嬉しいです
それでは、今から
不思議な世界の物語へと
足を運んでみましょう
1.起業する
今からあなたは商人です。(起業したとしましょう)
初めはお金がないので、利益が出るまでは全て自分でやってい
きます。
仕入れから店番から帳簿付けまで、全て一人でこなします。
朝から晩まで、あなたは働きます。
功を奏し、商売繁盛となりますが・・・どんどんどんどん
お客さんが増えて更にあなたは忙しくなります。
仕事が終わらない・・・
つらい・・・
そこであなたは考えます。
そうだ。
人を雇おう!!
2.働き者の小人たちを雇う
あまりにも忙しかったので、あなたは小人を5人雇うことに
しました。
ルフィ 値切るのが上手な仕入れ係
ロビン 笑顔が可愛い店番の看板娘
ナミ 金銭管理が冴え渡る帳簿付係
サンジ 料理の腕がコック並みの料理人
ウソップ 手先が器用な洗濯係
3.あなたの仕事は小人を管理すること
あなたはマネージャーという立ち位置になり、小人たちを
管理する立場となりました。
それぞれの小人たちに、「これやっといてね」とお願いす
ると小人たちが働いてくれ、何か問題があるときに報告し
てくるのでそれに対応すればいいわけです。
4.ここまでの整理
• ここまでお話では「構造化プログラミング」と「オブジェクト指向」についてお話し
ていました。
構造化プログラミング・・・一人で全部やっていた状態。
つまり、あなたの机の上に全て必要なものが全部乗っかっています。帳簿や仕入れサン
プルやらフライパンやら洗濯物で机の上はぐちゃぐちゃです。
オブジェクト指向・・・小人たちを雇い、管理している状態。
小人たちを雇ったことで、それぞれに必要なものが小人たちに行き渡りました。
つまりあなたの机の上はスッキリしています。
5.小人たちを使って商売をしていきましょう
• 「小人」というのは一つのクラスだと考えてください。
小人は「クラス」で、小人のルフィは「オブジェクト」です。つまり小人の「ナ
ミ」もオブジェクトですね。
さて、小人のルフィは「仕入れ係の小人」でロビンは「店番係の小人」です。
この場合、「小人」というクラスからルフィやロビンを作るよりも
「仕入れ係の小人」というクラスを作って、それからルフィを作っていきましょう。
その理由は、店番係の小人がもっと必要になった場合に
「店番係の小人」クラスから「店番係」のゾロや「店番係」のチョッパーが作れる
からです。
継承
さて、「小人」クラスから「店番係の小人」クラスや「料理係の小人」クラスを作
ることを継承と呼びます。
「店番係の小人」は「小人」としての特徴を持ちます。なので、まずは「小人」ク
ラスを作りましょう。
そして、小人の特徴が変わったとき、例えば小人が進化して
「ゴムゴムの実を食べてゴムのように全身が伸びるようになった」場合、
「小人」クラスを変更するだけで「店番係の小人」であるロビンもゴムのように全
身が伸びるようになります。
カプセル化
「帳簿付係の小人」ナミに帳簿を渡したので、あなたの机はスッキリ
しています。
帳簿を読むのはナミだけです。
こんな風に、それぞれのオブジェクト(ナミなど)にデータを渡すことを
カプセル化といいます。
帳簿は誰でも読めるようにしておいて良い(public)し、ナミだけが読め
るようにしておいても良い(private)です。
※通常は、ナミだけが読めるようにしておきます。
ポリモーフィズム(多様性)
ざっくりいえば「小人」クラスを継承した「仕入れ係」クラスのル
フィや「店番係」クラスのロビンに対してどんな振る舞いをするかそ
れぞれに任せる、って感じです。
同じ名前の関数がオブジェクトによって違う働きをすることだと認識
してください。
→「動け」と命令すれば、ルフィは仕入れに行くし
ロビンは店番するし、ウソップは洗濯物をする
まとまらないのでまとめ
• オブジェクト指向は、ここでいう「誰かに任せる」(つまり特定のオブジェクト
に任せる)ことで仕事を分担化し整理できるよという話
• 理解や解釈が難しい「オブジェクト指向」ですが、今日お話した内容を参考にし
ながら実際に触れてみて感じることが一番理解できる方法だと思います。
以上、ご静聴いただきありがとうございました。

More Related Content

Similar to Object oriented

211020 すごい広島 with OSH 2021.10
211020 すごい広島 with OSH 2021.10211020 すごい広島 with OSH 2021.10
211020 すごい広島 with OSH 2021.10
Takuya Nishimoto
 
kintoneと○○をつないでみた
kintoneと○○をつないでみたkintoneと○○をつないでみた
kintoneと○○をつないでみた
Sakae Saito
 
IoTは怖くない
IoTは怖くないIoTは怖くない
IoTは怖くない
Takeshi Minegishi
 
昨年にIoT可視化してみて考えたこと
昨年にIoT可視化してみて考えたこと昨年にIoT可視化してみて考えたこと
昨年にIoT可視化してみて考えたこと
Seigo Tanaka
 
明星和楽2016でTwitter連動したlittleBits(CocoaBit)やWioNodeでリアルタイムプロトタイプ展示した話
明星和楽2016でTwitter連動したlittleBits(CocoaBit)やWioNodeでリアルタイムプロトタイプ展示した話明星和楽2016でTwitter連動したlittleBits(CocoaBit)やWioNodeでリアルタイムプロトタイプ展示した話
明星和楽2016でTwitter連動したlittleBits(CocoaBit)やWioNodeでリアルタイムプロトタイプ展示した話
Seigo Tanaka
 
クラウド移住体験記
クラウド移住体験記クラウド移住体験記
クラウド移住体験記
Takehito Tanabe
 
去年サービス開発でコケたんですが、微妙にピボットした話。
去年サービス開発でコケたんですが、微妙にピボットした話。去年サービス開発でコケたんですが、微妙にピボットした話。
去年サービス開発でコケたんですが、微妙にピボットした話。
Daisuke Nishino
 
クリエイティブな人のための哲学塾
クリエイティブな人のための哲学塾クリエイティブな人のための哲学塾
クリエイティブな人のための哲学塾
Youichiro Miyake
 
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
Tokoroten Nakayama
 
UiPath Go!フレームワーク探求記
UiPath Go!フレームワーク探求記UiPath Go!フレームワーク探求記
UiPath Go!フレームワーク探求記
JunShiomi
 
人生100年時代における学び方 定年後の学生生活
人生100年時代における学び方 定年後の学生生活人生100年時代における学び方 定年後の学生生活
人生100年時代における学び方 定年後の学生生活
Hiro Yoshioka
 
50cm.
50cm.50cm.
筑波大学 情報メディア創成 大学説明会 2019
筑波大学 情報メディア創成 大学説明会 2019筑波大学 情報メディア創成 大学説明会 2019
筑波大学 情報メディア創成 大学説明会 2019
Takakura_Rei
 
IoTの原点
IoTの原点IoTの原点
IoTの原点
Shinichi Takahashi
 
海外から見た東京 〜人生100年時代の働き方〜 #efsta56
海外から見た東京 〜人生100年時代の働き方〜 #efsta56海外から見た東京 〜人生100年時代の働き方〜 #efsta56
海外から見た東京 〜人生100年時代の働き方〜 #efsta56
Hiro Yoshioka
 
AIとは?? ~正しい理解のために過去のブームを振り返りながら解説~
AIとは?? ~正しい理解のために過去のブームを振り返りながら解説~AIとは?? ~正しい理解のために過去のブームを振り返りながら解説~
AIとは?? ~正しい理解のために過去のブームを振り返りながら解説~
Yamato OKAMOTO
 
学生Lt7回(望月雄太 IoT罠)
学生Lt7回(望月雄太 IoT罠)学生Lt7回(望月雄太 IoT罠)
学生Lt7回(望月雄太 IoT罠)
雄太 望月
 
浪江町タブレットで採用した、 Cordovaで作るHTML5のAndroidアプリのしくみ
浪江町タブレットで採用した、 Cordovaで作るHTML5のAndroidアプリのしくみ浪江町タブレットで採用した、 Cordovaで作るHTML5のAndroidアプリのしくみ
浪江町タブレットで採用した、 Cordovaで作るHTML5のAndroidアプリのしくみ
Naoyuki Yamada
 

Similar to Object oriented (18)

211020 すごい広島 with OSH 2021.10
211020 すごい広島 with OSH 2021.10211020 すごい広島 with OSH 2021.10
211020 すごい広島 with OSH 2021.10
 
kintoneと○○をつないでみた
kintoneと○○をつないでみたkintoneと○○をつないでみた
kintoneと○○をつないでみた
 
IoTは怖くない
IoTは怖くないIoTは怖くない
IoTは怖くない
 
昨年にIoT可視化してみて考えたこと
昨年にIoT可視化してみて考えたこと昨年にIoT可視化してみて考えたこと
昨年にIoT可視化してみて考えたこと
 
明星和楽2016でTwitter連動したlittleBits(CocoaBit)やWioNodeでリアルタイムプロトタイプ展示した話
明星和楽2016でTwitter連動したlittleBits(CocoaBit)やWioNodeでリアルタイムプロトタイプ展示した話明星和楽2016でTwitter連動したlittleBits(CocoaBit)やWioNodeでリアルタイムプロトタイプ展示した話
明星和楽2016でTwitter連動したlittleBits(CocoaBit)やWioNodeでリアルタイムプロトタイプ展示した話
 
クラウド移住体験記
クラウド移住体験記クラウド移住体験記
クラウド移住体験記
 
去年サービス開発でコケたんですが、微妙にピボットした話。
去年サービス開発でコケたんですが、微妙にピボットした話。去年サービス開発でコケたんですが、微妙にピボットした話。
去年サービス開発でコケたんですが、微妙にピボットした話。
 
クリエイティブな人のための哲学塾
クリエイティブな人のための哲学塾クリエイティブな人のための哲学塾
クリエイティブな人のための哲学塾
 
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
 
UiPath Go!フレームワーク探求記
UiPath Go!フレームワーク探求記UiPath Go!フレームワーク探求記
UiPath Go!フレームワーク探求記
 
人生100年時代における学び方 定年後の学生生活
人生100年時代における学び方 定年後の学生生活人生100年時代における学び方 定年後の学生生活
人生100年時代における学び方 定年後の学生生活
 
50cm.
50cm.50cm.
50cm.
 
筑波大学 情報メディア創成 大学説明会 2019
筑波大学 情報メディア創成 大学説明会 2019筑波大学 情報メディア創成 大学説明会 2019
筑波大学 情報メディア創成 大学説明会 2019
 
IoTの原点
IoTの原点IoTの原点
IoTの原点
 
海外から見た東京 〜人生100年時代の働き方〜 #efsta56
海外から見た東京 〜人生100年時代の働き方〜 #efsta56海外から見た東京 〜人生100年時代の働き方〜 #efsta56
海外から見た東京 〜人生100年時代の働き方〜 #efsta56
 
AIとは?? ~正しい理解のために過去のブームを振り返りながら解説~
AIとは?? ~正しい理解のために過去のブームを振り返りながら解説~AIとは?? ~正しい理解のために過去のブームを振り返りながら解説~
AIとは?? ~正しい理解のために過去のブームを振り返りながら解説~
 
学生Lt7回(望月雄太 IoT罠)
学生Lt7回(望月雄太 IoT罠)学生Lt7回(望月雄太 IoT罠)
学生Lt7回(望月雄太 IoT罠)
 
浪江町タブレットで採用した、 Cordovaで作るHTML5のAndroidアプリのしくみ
浪江町タブレットで採用した、 Cordovaで作るHTML5のAndroidアプリのしくみ浪江町タブレットで採用した、 Cordovaで作るHTML5のAndroidアプリのしくみ
浪江町タブレットで採用した、 Cordovaで作るHTML5のAndroidアプリのしくみ
 

Object oriented

Editor's Notes

  1. ※小規模であれば、構造化プログラミングでもOKです。その理由はわざわざ小人を作る必要がないからです。 しかし、大きいシステムの場合や今後も改修が入りそうなシステムに関しては、小人を雇ってそれぞれの小人に任せれば良いのです。
  2. ※「ポリモーフィズム」とは、「抽象クラス」や「インターフェース」などを利用してメソッドの呼び出し方法を共通化し、さらに「オーバーライド」させることで同じメソッドを呼び出しても、実際のインスタンス毎にその挙動を変化させようとするもの。