Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
オブジェクト指向がわからない(202201社内勉強会)
Search
shimadamiyuki
January 20, 2022
210
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
オブジェクト指向がわからない(202201社内勉強会)
月一で実施している社内勉強会の資料です(2022.01)
shimadamiyuki
January 20, 2022
More Decks by shimadamiyuki
See All by shimadamiyuki
20240912 JJUGナイトセミナー
mii1004
0
270
STORES決済の裏側のはなし(Code Polaris 色んなエンジニアLT大会)
mii1004
0
330
たのしい情報収集(202112社内勉強会)
mii1004
0
130
リファクタリング?(202111社内勉強会)
mii1004
0
130
OpenAPI Generator使ってみる(Java女子部ハロウィンLT)
mii1004
0
100
ビルドツールの話(202110社内勉強会)
mii1004
0
150
Hello Spring(202109社内勉強会)
mii1004
0
140
StreamAPI, Lambdaと仲良くなる(202108社内勉強会)
mii1004
0
160
Javaはじめのいっぽ(202107社内勉強会)
mii1004
0
170
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
500
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
4 Signs Your Business is Dying
shpigford
187
23k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7k
Statistics for Hackers
jakevdp
799
230k
The Cult of Friendly URLs
andyhume
79
7k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Transcript
オブジェクト指向が わからない 1⽉チーム会
オブジェクト指向 わかりますか︖
オブジェクト指向 よくわからない オブジェクト指向とは〇〇だ︕ みたいな結論はないので、 ふんわりした話をします。
オブジェクト指向の登場 Smalltalkの開発者 Alan Kay C++の開発者 Bjarne Stroustrup オブジェクト指向とは メッセージ オブジェクト指向とは
ユーザ定義型と継承 こっちの考え⽅が広まった
プログラミング誕⽣ 構造化プログラミング オブジェクト指向 プログラミング 関数プログラミングの エッセンス 1960年代 1970年前後 1940年代 1970年代
PCが誕⽣ 1990年代 インターネットが普及
構造化プログラミングがないとき 構造化プログラミングがあるとき ・・・ goto: 処理B 処理Aʼ GOTO⽂で処理がジャンプする →プログラムが分割できない →再利⽤性が低い GOTOを禁⽌し、「順次、選択、反復」で
プログラミングをする (if, while, for など) →プログラムを⼩さな単位に分割できる →再利⽤性が上がる、テストができる 処理A 処理C 処理Bʼ 処理A 処理Aʼ 処理B 処理Bʼ 処理C 構造化プログラミング︖
オブジェクト指向で何が変わったのか 現実世界のモノ(オブジェクト)の 模型(モデル)を作りたい・・・ ⼈ お⾦ 数式 家具 形 値と処理をひとまとめにできる⼊れ物(=クラス)を作ろう︕ ねこ
スイッチ ・名前(値) ・⾊(値) ・起きているかどうか(値) ・鳴く(処理) ・寝る(処理) ・形(値) ・押されているかどうか(値) ・押された時の動作(処理)
クラスがないとき クラスがあるとき Cのユーザ定義型 ねこ ・名前 ・⾊ ・起きているか Perlのモジュール スイッチ ・形
・押されているか ・押された時の動作 → 値と処理を⼀緒に持てない → 値と処理を⼀緒に持てるけど スイッチがいくつもあったら スイッチの数のモジュールが必要 ねこ ・名前 ・⾊ ・起きているか ・鳴く ・寝る ・きなこ ・茶⾊ ・起きている ・鳴く ・寝る クラス ・たま ・灰⾊ ・寝ている ・鳴く ・寝る インスタンス 値と処理がまとめられる︕ 再利⽤ができる︕
とはいえ • クラスに対する考え⽅、仕様は⾔語によってさまざま • Javaでは全ての変数、処理がクラスに所属するので、 クラスを使わずにプログラムを書くことはできない。 • 多くのオブジェクト指向⾔語では、 クラスを使わずにプログラムを書くことも、 クラスを使ってプログラムを書くこともできる。
(C++, Python, Rubyなど)
あれまだやってないけど︖ • カプセル化 • ポリモーフィズム • 継承 Software Design 2021年3⽉号
Javaでもう⼀度学び直すオブジェクト指向プログラミング https://gihyo.jp/magazine/SD/archive/2021/202103 こちらがおすすめです
カプセル化といえばgetter/setterでしょ︕ カプセル化なのにgetter/setterを作るのは・・・ オブジェクト指向なら継承使わなきゃ︕ なるべく継承は使わないほうがいいよね 時代や状況によって考え⽅はどんどん変わっていく。 10年後には全然別の考え⽅が主流になっているかも。 • 既存の設計、実装の背景を考えよう • トレンド、知識をキャッチアップし続けよう
参考⽂献 • コーディングを⽀える技術―成り⽴ちから学ぶプログラミング作法 https://gihyo.jp/book/2013/978-4-7741-5654-5 • Clean Architecture 達⼈に学ぶソフトウェアの構造と設計 https://www.kadokawa.co.jp/product/301806000678/ •
Software Design 2021年3⽉号 Javaでもう⼀度学び直すオブジェクト指向プログラミング https://gihyo.jp/magazine/SD/archive/2021/202103