Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
はじめてのオブジェクト指向プログラミング / ToyoTech_LT 2
Search
Naoki Ikeguchi
November 08, 2018
Programming
0
180
はじめてのオブジェクト指向プログラミング / ToyoTech_LT 2
Naoki Ikeguchi
November 08, 2018
Tweet
Share
More Decks by Naoki Ikeguchi
See All by Naoki Ikeguchi
防衛的 PHP: 多様性を生き抜くための PHP 入門 / Defensive PHP
siketyan
2
820
リモートワークと健康 - ヤフー名古屋 Tech Meeting #2
siketyan
0
210
Actual of Japanese Internet
siketyan
3
4.8k
Rust でマイナンバーカードを操作するスマホアプリを作りたい話
siketyan
2
24k
文字ってなんだろう?身近だけど意外と知らない文字コードと絵文字の話 - 技育 CAMP 2021
siketyan
2
490
SPF と DKIM だけで大丈夫?本当は怖いドメイン名と E メール @ TwoGate Tech Meeting
siketyan
1
460
自作キーボードのすすめ / Recommendation of Original Keyboard
siketyan
0
510
人々はなぜ大文字・小文字を正しく使い分けないのか? / Why don't people use upper or lower case correctly?
siketyan
1
540
エディタ戦争? いいえ,エディタ vs IDE 戦争 / 学生LT in 名古屋
siketyan
1
740
Other Decks in Programming
See All in Programming
Node.js v22 で変わること
yosuke_furukawa
PRO
9
3k
PHPはいつから死んでいるかの調査
chiroruxx
1
400
OpenAPIを中心に考えるAPI開発入門 / Introduction to API Development with a Focus on OpenAPI
seike460
PRO
2
170
データアナリストが行うDatabricksを活用したETLの自動化事例
shinoa
0
260
Goのエラースタックトレースの歴史と今後
sonatard
7
1.2k
スクラムガイドのスプリントレトロスペクティブを改めて読みかえしてみた / Re-reading the Sprint Retrospective Section in the Scrum Guide
mackey0225
3
410
ゆるい個人開発のススメ
kuroppe1819
10
990
if constexpr文はテンプレート世界のラムダ式である
faithandbrave
3
640
SwiftUIで使いやすいToastの作り方 / How to build a Toast system which is easy to use in SwiftUI
lovee
3
140
Build Apps for iOS, Android & Desktop in 100% Kotlin With Compose Multiplatform (mDevCamp 2024)
zsmb
0
290
Apache Hive 4 on Treasure Data
ryukobayashi
0
130
CA.swift19 恋するAIアプリ開発の裏側
oskmr
0
360
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
8
2.4k
Large-scale JavaScript Application Architecture
addyosmani
504
110k
Imperfection Machines: The Place of Print at Facebook
scottboms
260
12k
How To Stay Up To Date on Web Technology
chriscoyier
782
250k
Building an army of robots
kneath
300
41k
Git: the NoSQL Database
bkeepers
PRO
422
63k
Learning to Love Humans: Emotional Interface Design
aarron
267
39k
Building Effective Engineering Teams - LeadDev
addyosmani
28
1.8k
BBQ
matthewcrist
80
8.8k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
116
18k
Visualization
eitanlees
136
14k
Transcript
はじめての オブジェクト指向プログラミング Siketyan @ ToyoTech_LT
自己紹介
None
@siketyan
はじめに • これは初心者向けです. • わりと抽象的な話をします.わかりにくかったらごめんなさい. • 言語に依存しない話をしますが,日本語のみです. • コード例は出しません. •
間違っているところがあるかもしれません.マサカリ歓迎です. (ただし物理的なのは勘弁してください) • 10分枠なので,Twitterでもしながらのんびり聞いてくださると うれしいです.
流れ • オブジェクト指向とは • なぜオブジェクト指向を使うのか • オブジェクト指向の3要素 • クラス •
メンバ • メソッド • オブジェクトの継承 • まとめ
オブジェクト指向とは? • プログラムをいくつものオブジェクト(物体)に分けて記述する • それぞれのオブジェクトに関係を持たせたり,複数のオブジェクト をまとめて管理したりする
なぜオブジェクト指向を使うのか 例えば,会員制サービスで • ユーザやグループなどの モノを管理するときに そのままコードで表せる • ユーザ同士,グループ同士, グループのメンバーなどの 関係を表すことができる
グループ グループ ユーザ ユーザ ユーザ ユーザ
オブジェクト指向の3要素
1. クラス オブジェクトの定義を表す 定義のみなので,オブジェクトの内容 (固有名など)は設定されない 使うときは実体(インスタンス)を作ってから 例) 「人間」「学科」……クラス 「たかし」「情報工学科」……インスタンス 学科
人間
2. メンバ オブジェクトが持つ属性 インスタンスごとに別の値を持つことができる 例) ある人間の 「名前」「性別」「年齢」など……メンバ 人間 たかし 男
16歳
3. メソッド オブジェクトが持つ動作 同じオブジェクトからも,違うオブジェクトからも 呼ぶ(命令する)ことができる 例) たかしの「歩く」という動作……メソッド 「たかし、歩け」……呼び出し(外部) 「俺よ、歩け」……呼び出し(内部) たかし
歩く
オブジェクトの継承 • オブジェクトに他のオブジェクトの特徴を併せ持たせる • 継承したオブジェクトに書かれた内容と同じ内容を書く必要が なくなる • 例えば「人間」に「哺乳類」を継承させれば, 「人間」も「サル」も同じ「哺乳類」として同時に処理できる 脊椎動物
動物 哺乳類 人間 脊椎動物に共通の特徴
まとめ たかしが歩くまで
脊椎動物 動物 哺乳類 人間 人間を定義します このとき,継承関係と「歩く」メソッドを作っておきます
脊椎動物 動物 哺乳類 人間 人間 人間のインスタンスを生成します 誕生
たかし 名付けます 他の属性も設定しておきます
たかし 命令します 「たかし、歩け」
歩きました おめでとうございます
おわりに オブジェクト指向はいいぞ 大事なことなので太字にして下線を引きました
ご清聴ありがとうございました このプレゼンテーションは SpeakerDeck で公開予定です