Suche senden
Hochladen
いまさら学ぶオブジェクト指向
•
0 gefällt mir
•
1,440 views
Daisuke Hirayama
Folgen
社内の勉強会用にオブジェクト指向の基本的なところをごく簡単にまとめてみました。 slideshare初めてな上に英語弱いので使い方やカテゴリ分けがあっているのか自信なし
Weniger lesen
Mehr lesen
Bildung
Melden
Teilen
Melden
Teilen
1 von 31
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
201708 プログル模擬授業
201708 プログル模擬授業
Yuta Tonegawa
小学校先生向けプログラミングワークショップ
小学校先生向けプログラミングワークショップ
Hirokazu Tokuno
Unsupervised learning of object landmarks by factorized spatial embeddings
Unsupervised learning of object landmarks by factorized spatial embeddings
Takanori Ogata
よく見てワトソン!
よく見てワトソン!
YUSUKE MORIZUMI
180204 Attention-aware Deep Reinforcement Learning for Video Face Recognition
180204 Attention-aware Deep Reinforcement Learning for Video Face Recognition
Takanori Ogata
Coderetreat in KIT 導入資料
Coderetreat in KIT 導入資料
Hiroki Kondo
Sass紹介
Sass紹介
Daisuke Hirayama
ペアプロのオイシイ料理法、おしえます。
ペアプロのオイシイ料理法、おしえます。
takepu
Empfohlen
201708 プログル模擬授業
201708 プログル模擬授業
Yuta Tonegawa
小学校先生向けプログラミングワークショップ
小学校先生向けプログラミングワークショップ
Hirokazu Tokuno
Unsupervised learning of object landmarks by factorized spatial embeddings
Unsupervised learning of object landmarks by factorized spatial embeddings
Takanori Ogata
よく見てワトソン!
よく見てワトソン!
YUSUKE MORIZUMI
180204 Attention-aware Deep Reinforcement Learning for Video Face Recognition
180204 Attention-aware Deep Reinforcement Learning for Video Face Recognition
Takanori Ogata
Coderetreat in KIT 導入資料
Coderetreat in KIT 導入資料
Hiroki Kondo
Sass紹介
Sass紹介
Daisuke Hirayama
ペアプロのオイシイ料理法、おしえます。
ペアプロのオイシイ料理法、おしえます。
takepu
Sass超入門
Sass超入門
Mizuno Renya
Sassをはじめからていねいに<概要−基礎編>
Sassをはじめからていねいに<概要−基礎編>
Horiguchi Seito
F流『オブジェクト指向の考え方の基礎の基礎』~ソフトウェア開発の原則編~
F流『オブジェクト指向の考え方の基礎の基礎』~ソフトウェア開発の原則編~
Fujio Kojima
オブジェクト指向モデリング
オブジェクト指向モデリング
takepu
06 オブジェクト指向の基礎
06 オブジェクト指向の基礎
文樹 高橋
オブジェクト指向最強
オブジェクト指向最強
haganemetal
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
Satoru Kodaira
デジタルメディア創作部勉強会「オブジェクト指向入門1」
デジタルメディア創作部勉強会「オブジェクト指向入門1」
Hokuto Tateyama
オブジェクト指向勉強会(基礎)
オブジェクト指向勉強会(基礎)
nomuken
第2回勉強会 オブジェクト指向
第2回勉強会 オブジェクト指向
hakoika-itwg
オブジェクト指向ワークショップ 201507版
オブジェクト指向ワークショップ 201507版
Mao Ohnishi
第3回勉強会 オブジェクト指向
第3回勉強会 オブジェクト指向
hakoika-itwg
オブジェクト指向での世界の捉え方
オブジェクト指向での世界の捉え方
Yoshikazu Hayashi
Sassについてゼロから解説 -基本の理解だけでも効率アップ-|第14回ゼロから始めるWordPress勉強会
Sassについてゼロから解説 -基本の理解だけでも効率アップ-|第14回ゼロから始めるWordPress勉強会
Yoshinori Kobayashi
ハトでもわかるオブジェクト指向
ハトでもわかるオブジェクト指向
uka yare
オブジェクト指向プログラミング再入門
オブジェクト指向プログラミング再入門
Ryo Miyake
Python × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack bot
dcubeio
管理 (組織で成果を出したいマネージャーの羅針盤 〜遠くへ行きたければ、マネジメントを学べ〜)
管理 (組織で成果を出したいマネージャーの羅針盤 〜遠くへ行きたければ、マネジメントを学べ〜)
miraimanagementkaigi
グループディスカッションの巻
グループディスカッションの巻
Takashi Abe
To be sn agile enterprise
To be sn agile enterprise
Rakuten Group, Inc.
【DL輪読会】Non-Linguistic Supervision for Contrastive Learning of Sentence Embedd...
【DL輪読会】Non-Linguistic Supervision for Contrastive Learning of Sentence Embedd...
Deep Learning JP
"マナビト"広告主向け 実践リスティング広告講座
"マナビト"広告主向け 実践リスティング広告講座
TATEITO株式会社
Weitere ähnliche Inhalte
Andere mochten auch
Sass超入門
Sass超入門
Mizuno Renya
Sassをはじめからていねいに<概要−基礎編>
Sassをはじめからていねいに<概要−基礎編>
Horiguchi Seito
F流『オブジェクト指向の考え方の基礎の基礎』~ソフトウェア開発の原則編~
F流『オブジェクト指向の考え方の基礎の基礎』~ソフトウェア開発の原則編~
Fujio Kojima
オブジェクト指向モデリング
オブジェクト指向モデリング
takepu
06 オブジェクト指向の基礎
06 オブジェクト指向の基礎
文樹 高橋
オブジェクト指向最強
オブジェクト指向最強
haganemetal
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
Satoru Kodaira
デジタルメディア創作部勉強会「オブジェクト指向入門1」
デジタルメディア創作部勉強会「オブジェクト指向入門1」
Hokuto Tateyama
オブジェクト指向勉強会(基礎)
オブジェクト指向勉強会(基礎)
nomuken
第2回勉強会 オブジェクト指向
第2回勉強会 オブジェクト指向
hakoika-itwg
オブジェクト指向ワークショップ 201507版
オブジェクト指向ワークショップ 201507版
Mao Ohnishi
第3回勉強会 オブジェクト指向
第3回勉強会 オブジェクト指向
hakoika-itwg
オブジェクト指向での世界の捉え方
オブジェクト指向での世界の捉え方
Yoshikazu Hayashi
Sassについてゼロから解説 -基本の理解だけでも効率アップ-|第14回ゼロから始めるWordPress勉強会
Sassについてゼロから解説 -基本の理解だけでも効率アップ-|第14回ゼロから始めるWordPress勉強会
Yoshinori Kobayashi
ハトでもわかるオブジェクト指向
ハトでもわかるオブジェクト指向
uka yare
オブジェクト指向プログラミング再入門
オブジェクト指向プログラミング再入門
Ryo Miyake
Python × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack bot
dcubeio
Andere mochten auch
(17)
Sass超入門
Sass超入門
Sassをはじめからていねいに<概要−基礎編>
Sassをはじめからていねいに<概要−基礎編>
F流『オブジェクト指向の考え方の基礎の基礎』~ソフトウェア開発の原則編~
F流『オブジェクト指向の考え方の基礎の基礎』~ソフトウェア開発の原則編~
オブジェクト指向モデリング
オブジェクト指向モデリング
06 オブジェクト指向の基礎
06 オブジェクト指向の基礎
オブジェクト指向最強
オブジェクト指向最強
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
デジタルメディア創作部勉強会「オブジェクト指向入門1」
デジタルメディア創作部勉強会「オブジェクト指向入門1」
オブジェクト指向勉強会(基礎)
オブジェクト指向勉強会(基礎)
第2回勉強会 オブジェクト指向
第2回勉強会 オブジェクト指向
オブジェクト指向ワークショップ 201507版
オブジェクト指向ワークショップ 201507版
第3回勉強会 オブジェクト指向
第3回勉強会 オブジェクト指向
オブジェクト指向での世界の捉え方
オブジェクト指向での世界の捉え方
Sassについてゼロから解説 -基本の理解だけでも効率アップ-|第14回ゼロから始めるWordPress勉強会
Sassについてゼロから解説 -基本の理解だけでも効率アップ-|第14回ゼロから始めるWordPress勉強会
ハトでもわかるオブジェクト指向
ハトでもわかるオブジェクト指向
オブジェクト指向プログラミング再入門
オブジェクト指向プログラミング再入門
Python × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack bot
Ähnlich wie いまさら学ぶオブジェクト指向
管理 (組織で成果を出したいマネージャーの羅針盤 〜遠くへ行きたければ、マネジメントを学べ〜)
管理 (組織で成果を出したいマネージャーの羅針盤 〜遠くへ行きたければ、マネジメントを学べ〜)
miraimanagementkaigi
グループディスカッションの巻
グループディスカッションの巻
Takashi Abe
To be sn agile enterprise
To be sn agile enterprise
Rakuten Group, Inc.
【DL輪読会】Non-Linguistic Supervision for Contrastive Learning of Sentence Embedd...
【DL輪読会】Non-Linguistic Supervision for Contrastive Learning of Sentence Embedd...
Deep Learning JP
"マナビト"広告主向け 実践リスティング広告講座
"マナビト"広告主向け 実践リスティング広告講座
TATEITO株式会社
2012年度中鉢PBLシラバス
2012年度中鉢PBLシラバス
Yoshihide Chubachi
【Agile Conference tokyo 2011】 継続的フィードバック
【Agile Conference tokyo 2011】 継続的フィードバック
智治 長沢
Machine Learning, Deep Learning how to use in civic tehnology
Machine Learning, Deep Learning how to use in civic tehnology
Kaz Furukawa
多次元的能力開発システム(mdl) の概要
多次元的能力開発システム(mdl) の概要
㈱経営教育総合研究所 竹永亮
ID説明資料20130107ver1.0
ID説明資料20130107ver1.0
Norihiro Oku
Azure Cognitive Services
Azure Cognitive Services
Deep Learning Lab(ディープラーニング・ラボ)
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
増田 亨
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
増田 亨
Id説明資料20130107Ver1.1
Id説明資料20130107Ver1.1
Norihiro Oku
Wicket体験談
Wicket体験談
Hiroto Yamakawa
プログラミング技法特論第1回
プログラミング技法特論第1回
Noritada Shimizu
紙の業務マニュアルを効果的な教育ツールに エレファンキューブ
紙の業務マニュアルを効果的な教育ツールに エレファンキューブ
elephancube
オブジェクト指向プログラミング教育法序説
オブジェクト指向プログラミング教育法序説
seastar orion
アジャイルマネジメントとは?
アジャイルマネジメントとは?
Kiro Harada
【XDev】A-2 アジリティ向上のためのツール活用
【XDev】A-2 アジリティ向上のためのツール活用
智治 長沢
Ähnlich wie いまさら学ぶオブジェクト指向
(20)
管理 (組織で成果を出したいマネージャーの羅針盤 〜遠くへ行きたければ、マネジメントを学べ〜)
管理 (組織で成果を出したいマネージャーの羅針盤 〜遠くへ行きたければ、マネジメントを学べ〜)
グループディスカッションの巻
グループディスカッションの巻
To be sn agile enterprise
To be sn agile enterprise
【DL輪読会】Non-Linguistic Supervision for Contrastive Learning of Sentence Embedd...
【DL輪読会】Non-Linguistic Supervision for Contrastive Learning of Sentence Embedd...
"マナビト"広告主向け 実践リスティング広告講座
"マナビト"広告主向け 実践リスティング広告講座
2012年度中鉢PBLシラバス
2012年度中鉢PBLシラバス
【Agile Conference tokyo 2011】 継続的フィードバック
【Agile Conference tokyo 2011】 継続的フィードバック
Machine Learning, Deep Learning how to use in civic tehnology
Machine Learning, Deep Learning how to use in civic tehnology
多次元的能力開発システム(mdl) の概要
多次元的能力開発システム(mdl) の概要
ID説明資料20130107ver1.0
ID説明資料20130107ver1.0
Azure Cognitive Services
Azure Cognitive Services
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
Id説明資料20130107Ver1.1
Id説明資料20130107Ver1.1
Wicket体験談
Wicket体験談
プログラミング技法特論第1回
プログラミング技法特論第1回
紙の業務マニュアルを効果的な教育ツールに エレファンキューブ
紙の業務マニュアルを効果的な教育ツールに エレファンキューブ
オブジェクト指向プログラミング教育法序説
オブジェクト指向プログラミング教育法序説
アジャイルマネジメントとは?
アジャイルマネジメントとは?
【XDev】A-2 アジリティ向上のためのツール活用
【XDev】A-2 アジリティ向上のためのツール活用
Kürzlich hochgeladen
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ssusere0a682
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
Tokyo Institute of Technology
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
yuitoakatsukijp
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ssusere0a682
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
YukiTerazawa
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
koheioishi1
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
Takayuki Itoh
Kürzlich hochgeladen
(7)
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
いまさら学ぶオブジェクト指向
1.
いまさら学ぶオブジェクト指向 2014年2月28日 平山 大輔
2.
今日の内容 なぜオブジェクト指向なのか 5分でおさらい 活用方法 応用シーンを増やすには 実践事例
3.
1.なぜオブジェクト指向なのか 次々と開発される言語の新機能は、ほぼ全てオブ ジェクト指向が前提の技術。 ⇛理解していないと活用できない。 ラムダ式、匿名メソッド、Generics… 拡張性が高いプログラムが作れる
4.
なぜオブジェクト指向なのか 単体テスト自動化を有効に導入するためにはオブ ジェクトの分割が必要。 適切な場面で活用することで品質・開発効率が大 幅に上がる。
5.
2.5分でおさらい 「オブジェクト指向」って? オブジェクト指向の3要素 カプセル化 継承 多態性(ポリモルフィズム・ポリモーフィズム)
6.
「オブジェクト指向」って? オブジェクトを中心に考えること。 対義語(両立も可能なので語弊があるが。) 手続き指向
7.
カプセル化 データと処理を一箇所にまとめること。 「クラス」で実現する。 内部で完結する処理は外に見せない。 オブジェクト指向の中心にある概念。 =3要素で一番重要
8.
継承 ある型の性質を別の型に全て引き継ぐ性質。 「継承」で実現。
9.
多態性 ある要素が複数の型で共通しているという性質。 「インターフェース」で実現。
10.
3.活用方法 カプセル化 最近の言語であればあらゆるところで使用されて いる。 1レコード毎にデータをまとめる。(DataSet) データと関連する処理をまとめる。(String)
11.
プログラム例 商品ごとに料率の異なるフィーを計算する。 Class 商品{ long 金額; public
double フィー計算 (商品一覧){ double 料率; double 金額; public double フィー取得(){ for(商品:商品明細 商品一覧){ return this.金額 * 料率; } 金額 += } 商品明細.フィー取得(); } return 金額; }
12.
例のポイント 「商品明細.フィー取得();」で商品ごとに異なる料 率が正しく適用される。 カプセル化することで内部の値を使用するため間 違った引数を渡されることもない。 データに直接アクセスせず、処理を通すことで、 変更に強くなる。
13.
でも・・・ それって配列とか使えば普通に作れるんじゃ? 「金額配列」と「料率配列」を作成して値の個数 分だけforで回せばできるよね。 共通関数作ってパラメータ渡せばいいんじゃない?
14.
その通りです。が、 オブジェクト指向でしか実現できない処理は無い。ただ し・・・ 属性が増えた場合も1商品内の属性は商品クラスにまとめ ておけば、属性の管理がしやすい。 クラス内のメソッドを使用することで、確実にその商品だ けの情報を扱える。誤ったパラメータが来ることもない。 変更時の影響範囲が最小限となる。
15.
カプセル化 まとめ オブジェクト指向の中心にある概念で超重要。 同じ集合のデータと処理はひとまとめにする。 保守性、可視性が向上する。
16.
3.活用方法 継承 ある型の性質を別の型に全て引き継ぐ性質 ⇛メンバ(変数、メソッド)を無条件に引継ぐ 使用シーン 同じ属性を引き継ぎたい 同じ属性を共有したい
17.
例(例え話で考える) サイズの違う同じシリーズのテレビがある。 内部で必要な部品も機能も全て一緒。 サイズだけが違う。 ベースとなるテレビ(クラス)を共通化(継承) して、外装と表示方法だけをサイズ毎に分ける。
18.
例(プログラムで考える) 処理の先頭と最後で開始ログと終了ログを出力す るバッチプログラムを作る。
19.
// 親クラス abstract class
BatchBase{ // コンストラクタ public BatchBase(String PgId){ } // メイン処理 public void main(){ system.out.println(PgId + “開始”); mainProc(); system.out.println(PgId+”終了”); } // メイン実処理 abstract public void mainProc(); }
20.
// 子クラス1(BaseBatchを継承) class BatchA
extends BaseBatch{ // メイン実処理 public void mainProc(){ 商品マスタ洗替処理・・・・ } } ! // 小クラス2(BaseBatchを継承) class BatchB extends BaseBatch{ // メイン実処理 public void mainProc(){ 前日売上集計・・・ } } これでmainProcの前後に 開始ログ、終了ログが 出力される。
21.
補足「abstract」とは? 仮想クラス、仮想メソッドを定義するキーワード 宣言だけして実体がないことを表す。 仮想クラスは継承するためだけに存在するクラス 仮想メソッドは継承したクラスに存在することを 保証する(実装を強制する)メソッド
22.
3.活用方法 インターフェース ある要素が複数の型で共通しているという性質 メソッドの実装を強制することで、そのメソッドの存 在を保証する 保証を元に、異なるクラスを同一のように扱う 使用シーン 類似処理をクラスや処理内容を意識せずに同じように 扱いたい
23.
例(例え話で考える) 車にはハンドル、アクセル、ブレーキがある。 車種によって、 ハンドルでタイヤの向きを変える仕組み、 アクセルでタイヤを回す仕組み、 ブレーキで減速する仕組み は違いがあるが、通常、車種や内部の仕組みを意 識して操作方法を変えることはない。
24.
例(プログラムで考える) 登録したマスタに対して承認処理が必要 承認操作は対象マスタに関わらず同じ機能ででき る 各マスタ毎に承認処理の内容(登録処理)が違う
25.
// インターフェース定義 interface approval{ //
承認処理 public void approvalMain(param); } // 商品承認クラス(approvalインターフェースを実装) class itemApproval implements approval{ public void approvalMain(param){ 商品マスタ承認情報登録処理 } } // 店舗承認クラス(approvalインターフェースを実装) class shopApproval implements approval{ public void approvalMain(param){ 店舗マスタ承認情報登録処理 } }
26.
! // メイン処理 class Sampl1{ //
インターフェースをパラメータで受け取り // approvalMainを実行する public void approvalProc(approval ap){ 前処理(); ap.approvalMain(); 後処理(); } }
27.
! // メイン処理 class Sampl2{ //
複数の承認処理をまとめて実行する public void approvalProc(approval ap){ approval apList(2); apList(0) = new itemApproval(); apList(1) = new shopApproval(); // 実体は異なるクラスだが同じ変数に代入して処理できる for(approval ap : a pList){ ap.approvalMain(); } } }
28.
補足 インターフェースはメソッドの存在を保証するだ けで、そのメソッドが必ずしも類似の処理をして いるとは限らない。 全く異なる処理を実装することも可能。 でも、「ブレーキを踏んだら加速する車」を作っ てはいけない!
29.
4.応用シーンを増やすには どうやればオブジェクト指向を効果的に扱えるよ うになるのか? よくできたサンプルを見るのが一番良い。 そんなサンプルどこにあるの? 「GoFのデザインパターン」としてまとめら れている。
30.
5.実践事例 実際にプロジェクトで使用した事例を紹介。
31.
おまけ オブジェクト指向というと画面プログラムという イメージがある方もいると思ったので 敢えてバッチぽいサンプルにしました。 画面ももちろんですが、バッチでも有効なのです。
Jetzt herunterladen