Skip to main content
Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
EN
Upload
Download free for 30 days
Sign in
Uploaded by
増田 亨
PDF, PPTX
14,350 views
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
Javaで学ぶ、オブジェクト指向プログラミングの基礎知識。型とカプセル化が腹落ちすると、びっくりするくらいオブジェクト指向プログラミングがわかようになる/できるようになる
Software
◦
Related topics:
Object-Oriented Programming
•
Read more
13
Save
Share
Embed
Save to Drive
Download now
Download as PDF, PPTX
1
/ 43
2
/ 43
3
/ 43
4
/ 43
5
/ 43
6
/ 43
7
/ 43
8
/ 43
9
/ 43
10
/ 43
Most read
11
/ 43
12
/ 43
13
/ 43
14
/ 43
15
/ 43
Most read
16
/ 43
17
/ 43
18
/ 43
19
/ 43
20
/ 43
More Related Content
PDF
正しいものを正しく作る塾-設計コース
by
増田 亨
9 slides
10.3K views
PDF
ソフトウェア開発のやり方の改善
by
増田 亨
26 slides
7.2K views
PDF
ドメイン駆動設計という設計スタイル
by
増田 亨
63 slides
17.7K views
PDF
マイクロサービス 4つの分割アプローチ
by
増田 亨
60 slides
44.8K views
PDF
ドメイン駆動設計サンプルコードの徹底解説
by
増田 亨
41 slides
22.2K views
PDF
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
by
Koichiro Matsuoka
153 slides
8.4K views
PDF
ソフトウェア設計の学び方を考える
by
増田 亨
39 slides
25.4K views
PDF
ドメイン駆動設計 失敗したことと成功したこと
by
BIGLOBE Inc.
45 slides
24.6K views
正しいものを正しく作る塾-設計コース
by
増田 亨
9 slides
10.3K views
ソフトウェア開発のやり方の改善
by
増田 亨
26 slides
7.2K views
ドメイン駆動設計という設計スタイル
by
増田 亨
63 slides
17.7K views
マイクロサービス 4つの分割アプローチ
by
増田 亨
60 slides
44.8K views
ドメイン駆動設計サンプルコードの徹底解説
by
増田 亨
41 slides
22.2K views
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
by
Koichiro Matsuoka
153 slides
8.4K views
ソフトウェア設計の学び方を考える
by
増田 亨
39 slides
25.4K views
ドメイン駆動設計 失敗したことと成功したこと
by
BIGLOBE Inc.
45 slides
24.6K views
What's hot
PDF
ドメイン駆動設計 基本を理解する
by
増田 亨
134 slides
119K views
PDF
ドメイン駆動設計とは何か 【入門編】
by
増田 亨
40 slides
13.6K views
PDF
ドメインオブジェクトの設計ガイドライン
by
増田 亨
10 slides
3.9K views
PDF
ドメイン駆動設計 本格入門
by
増田 亨
139 slides
46.9K views
PDF
ドメイン駆動設計 ( DDD ) をやってみよう
by
増田 亨
45 slides
51.8K views
PPTX
世界一わかりやすいClean Architecture
by
Atsushi Nakamura
77 slides
54.9K views
PDF
ドメインオブジェクトの見つけ方・作り方・育て方
by
増田 亨
95 slides
32.7K views
PDF
データベース設計徹底指南
by
Mikiya Okuno
132 slides
115.5K views
PDF
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
by
Koichiro Matsuoka
65 slides
51.4K views
PDF
ドメイン駆動で開発する ラフスケッチから実装まで
by
増田 亨
103 slides
16.2K views
PDF
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
by
Mikiya Okuno
59 slides
22.5K views
PDF
イミュータブルデータモデル(世代編)
by
Yoshitaka Kawashima
16 slides
40.7K views
PDF
ドメイン駆動設計の正しい歩き方
by
増田 亨
61 slides
26.1K views
PDF
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
by
Jun-ichi Sakamoto
64 slides
23.8K views
PDF
世界でいちばんわかりやすいドメイン駆動設計
by
増田 亨
44 slides
15.5K views
PDF
イミュータブルデータモデルの極意
by
Yoshitaka Kawashima
28 slides
29.1K views
PDF
デキるプログラマだけが知っているコードレビュー7つの秘訣
by
Masahiro Nishimi
41 slides
165.3K views
PDF
3週連続DDDその1 ドメイン駆動設計の基本を理解する
by
増田 亨
113 slides
33.3K views
PPTX
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
by
Atsushi Nakamura
75 slides
8.6K views
PPTX
ドメイン駆動設計の学習曲線とブレークポイント
by
増田 亨
39 slides
8.4K views
ドメイン駆動設計 基本を理解する
by
増田 亨
134 slides
119K views
ドメイン駆動設計とは何か 【入門編】
by
増田 亨
40 slides
13.6K views
ドメインオブジェクトの設計ガイドライン
by
増田 亨
10 slides
3.9K views
ドメイン駆動設計 本格入門
by
増田 亨
139 slides
46.9K views
ドメイン駆動設計 ( DDD ) をやってみよう
by
増田 亨
45 slides
51.8K views
世界一わかりやすいClean Architecture
by
Atsushi Nakamura
77 slides
54.9K views
ドメインオブジェクトの見つけ方・作り方・育て方
by
増田 亨
95 slides
32.7K views
データベース設計徹底指南
by
Mikiya Okuno
132 slides
115.5K views
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
by
Koichiro Matsuoka
65 slides
51.4K views
ドメイン駆動で開発する ラフスケッチから実装まで
by
増田 亨
103 slides
16.2K views
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
by
Mikiya Okuno
59 slides
22.5K views
イミュータブルデータモデル(世代編)
by
Yoshitaka Kawashima
16 slides
40.7K views
ドメイン駆動設計の正しい歩き方
by
増田 亨
61 slides
26.1K views
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
by
Jun-ichi Sakamoto
64 slides
23.8K views
世界でいちばんわかりやすいドメイン駆動設計
by
増田 亨
44 slides
15.5K views
イミュータブルデータモデルの極意
by
Yoshitaka Kawashima
28 slides
29.1K views
デキるプログラマだけが知っているコードレビュー7つの秘訣
by
Masahiro Nishimi
41 slides
165.3K views
3週連続DDDその1 ドメイン駆動設計の基本を理解する
by
増田 亨
113 slides
33.3K views
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
by
Atsushi Nakamura
75 slides
8.6K views
ドメイン駆動設計の学習曲線とブレークポイント
by
増田 亨
39 slides
8.4K views
Similar to オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
PDF
オブジェクト指向プログラミングの現在・過去・未来
by
増田 亨
39 slides
7.1K views
PDF
2018年度 若手技術者向け講座 オブジェクト指向01
by
keki3
53 slides
66 views
PPT
第1回java実習(helloworld)2011
by
デジタルシープラーニング
19 slides
1K views
PDF
第3回勉強会 オブジェクト指向
by
hakoika-itwg
56 slides
5.1K views
PPT
オブジェクト指向入門3
by
Kenta Hattori
32 slides
154 views
PDF
2019年度 若手技術者向け講座 オブジェクト指向
by
keki3
69 slides
170 views
PPT
オブジェクト指向入門1
by
Kenta Hattori
33 slides
986 views
PPT
オブジェクト指向入門4
by
Kenta Hattori
36 slides
465 views
PPTX
オブジェクト指向的なコーディング
by
Norio Matsumoto
24 slides
231 views
ODP
オブジェクト指向勉強会(基礎)
by
nomuken
68 slides
3K views
PPT
オブジェクト指向入門7
by
Kenta Hattori
25 slides
256 views
PDF
オブジェクト指向
by
iPride Co., Ltd.
9 slides
40 views
PPTX
オブジェクト指向講座
by
Kaito Sato
13 slides
184 views
PDF
第2回 モデリング勉強会
by
hakoika-itwg
10 slides
1.8K views
PPT
オブジェクト指向入門5
by
Kenta Hattori
32 slides
201 views
PDF
第2回勉強会 オブジェクト指向
by
hakoika-itwg
63 slides
3.8K views
PDF
オブジェクト指向プログラミングのためのモデリング入門
by
増田 亨
47 slides
39.3K views
PPT
オブジェクト指向入門6
by
Kenta Hattori
46 slides
274 views
PPT
オブジェクト指向最強
by
haganemetal
22 slides
3.5K views
PDF
「エクストリームエンジニアへの道(Swift編)」
by
tech-arts
56 slides
705 views
オブジェクト指向プログラミングの現在・過去・未来
by
増田 亨
39 slides
7.1K views
2018年度 若手技術者向け講座 オブジェクト指向01
by
keki3
53 slides
66 views
第1回java実習(helloworld)2011
by
デジタルシープラーニング
19 slides
1K views
第3回勉強会 オブジェクト指向
by
hakoika-itwg
56 slides
5.1K views
オブジェクト指向入門3
by
Kenta Hattori
32 slides
154 views
2019年度 若手技術者向け講座 オブジェクト指向
by
keki3
69 slides
170 views
オブジェクト指向入門1
by
Kenta Hattori
33 slides
986 views
オブジェクト指向入門4
by
Kenta Hattori
36 slides
465 views
オブジェクト指向的なコーディング
by
Norio Matsumoto
24 slides
231 views
オブジェクト指向勉強会(基礎)
by
nomuken
68 slides
3K views
オブジェクト指向入門7
by
Kenta Hattori
25 slides
256 views
オブジェクト指向
by
iPride Co., Ltd.
9 slides
40 views
オブジェクト指向講座
by
Kaito Sato
13 slides
184 views
第2回 モデリング勉強会
by
hakoika-itwg
10 slides
1.8K views
オブジェクト指向入門5
by
Kenta Hattori
32 slides
201 views
第2回勉強会 オブジェクト指向
by
hakoika-itwg
63 slides
3.8K views
オブジェクト指向プログラミングのためのモデリング入門
by
増田 亨
47 slides
39.3K views
オブジェクト指向入門6
by
Kenta Hattori
46 slides
274 views
オブジェクト指向最強
by
haganemetal
22 slides
3.5K views
「エクストリームエンジニアへの道(Swift編)」
by
tech-arts
56 slides
705 views
More from 増田 亨
PDF
事業活動モデル・システム機能モデル・ビジネスロジックの記述
by
増田 亨
7 slides
1.7K views
PDF
ドメイン駆動設計に15年取り組んでわかったこと
by
増田 亨
21 slides
11.7K views
PDF
ドメイン駆動設計 コアドメインを語り合ってみよう
by
増田 亨
24 slides
2.7K views
PDF
プロダクトづくりのためのソフトウェア設計スタイル
by
増田 亨
29 slides
4.7K views
PDF
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
by
増田 亨
38 slides
3.8K views
PDF
ビジネスルールの複雑さに立ち向かう
by
増田 亨
53 slides
12.6K views
PDF
ソフトウェアの核心にある複雑さに立ち向かう
by
増田 亨
65 slides
11.1K views
PDF
DDD sample code explained in Java
by
増田 亨
24 slides
22.4K views
PDF
アジャイルなソフトウェア設計を目指して
by
増田 亨
94 slides
12.3K views
PDF
ドメイン駆動設計をゲーム開発に活かす
by
増田 亨
45 slides
5.2K views
PDF
SoR 2.0 summary
by
増田 亨
8 slides
1.4K views
PDF
毎日が越境だ!
by
増田 亨
51 slides
10.6K views
PDF
SoR 2.0 基幹システムの再定義と再構築
by
増田 亨
58 slides
9.4K views
PDF
ドメイン駆動設計のための Spring の上手な使い方
by
増田 亨
55 slides
139.6K views
PDF
越境する情シス:進化可能なアーキテクチャを手に入れる
by
増田 亨
31 slides
5.9K views
PDF
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
by
増田 亨
28 slides
4K views
PDF
現場で役立つシステム設計の原則
by
増田 亨
11 slides
8.9K views
PDF
現場で役立つシステム設計の原則
by
増田 亨
21 slides
6.7K views
事業活動モデル・システム機能モデル・ビジネスロジックの記述
by
増田 亨
7 slides
1.7K views
ドメイン駆動設計に15年取り組んでわかったこと
by
増田 亨
21 slides
11.7K views
ドメイン駆動設計 コアドメインを語り合ってみよう
by
増田 亨
24 slides
2.7K views
プロダクトづくりのためのソフトウェア設計スタイル
by
増田 亨
29 slides
4.7K views
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
by
増田 亨
38 slides
3.8K views
ビジネスルールの複雑さに立ち向かう
by
増田 亨
53 slides
12.6K views
ソフトウェアの核心にある複雑さに立ち向かう
by
増田 亨
65 slides
11.1K views
DDD sample code explained in Java
by
増田 亨
24 slides
22.4K views
アジャイルなソフトウェア設計を目指して
by
増田 亨
94 slides
12.3K views
ドメイン駆動設計をゲーム開発に活かす
by
増田 亨
45 slides
5.2K views
SoR 2.0 summary
by
増田 亨
8 slides
1.4K views
毎日が越境だ!
by
増田 亨
51 slides
10.6K views
SoR 2.0 基幹システムの再定義と再構築
by
増田 亨
58 slides
9.4K views
ドメイン駆動設計のための Spring の上手な使い方
by
増田 亨
55 slides
139.6K views
越境する情シス:進化可能なアーキテクチャを手に入れる
by
増田 亨
31 slides
5.9K views
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
by
増田 亨
28 slides
4K views
現場で役立つシステム設計の原則
by
増田 亨
11 slides
8.9K views
現場で役立つシステム設計の原則
by
増田 亨
21 slides
6.7K views
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
1.
オブジェクト指向プログラミング の基礎知識 2019年11月23日 ギルドワークス 増田 亨 JJUG
CCC 2019 Fall Javaで学ぶ #jjug_ccc #ccc_a2
2.
自己紹介 2019/11/23 2 増田 亨
(masuda220) 所属:ギルドワークス、有限会社システム設計 職業:プログラマ+α 今日は、この本の背景にある オブジェクト指向プログラミングの 基本的な考え方を説明します
3.
オブジェクト指向プログラミング 2019/11/23 3
4.
オブジェクト指向プログラミング モジュール性 シームレス性 2019/11/23 4
5.
オブジェクト指向プログラミング モジュール性 2019/11/23 5 プログラムの分割単位の考え方 手続き(機能)ではなく、型(値の種類)で プログラムを分割する技法 コードの重複や散在を防ぎ、変更を楽で安全にする 変更容易性や再利用性の向上
6.
オブジェクト指向プログラミング シームレス性 2019/11/23 6 分析~モデリング~設計~プログラミング~保守 一連の活動の継ぎ目をなくす開発の手法 アジャイル、XP、インクリメンタルな設計 適応型の開発、仮説検証型の開発
7.
ステップアップセッション 2019/11/23 7 ということで、わかりやすく、具体的に
8.
持ち帰ってほしい言葉 型 カプセル化 2019/11/23 8 この二つの言葉が腹落ちすると、 オブジェクト指向プログラミングが びっくりするくらい わかる/使える
9.
型 2019/11/23 9
10.
型 2019/11/23 10 こわくないよ Javaを書いていれば、みんな無意識に使っている それを意識するようにすればよいだけ
11.
型の具体例 2019/11/23 11 int quantity; quantity
= 1; boolean isEmpty; isEmpty = false; (1 + 2); // int型 (1 > 0); // boolean型
12.
型とは何か 2019/11/23 12 型 値の範囲を制限 値の操作を制限
13.
型とは何か 2019/11/23 13 型 値の範囲を制限 値の操作を制限 int型 -21億~+21億 boolean型
trueかfalse
14.
型とは何か 2019/11/23 14 型 値の範囲を制限 値の操作を制限 int型 -21億~+21億 boolean型
trueかfalse int型 +,-,*,/,% ==,!=,>,< boolean型 &&, || ==, !=
15.
型とは何か 2019/11/23 15 値の範囲を制限する 値の操作を制限する 型は、プログラムの記述と実行に、構造と秩序を与える 型は、コードの意図を表現する 不正な値の範囲と不正な操作に起因するエラーを事前に検出できる ということを、それと意識せずに使っている
16.
カプセル化 2019/11/23 16
17.
カプセル化 2019/11/23 17 わかったようでわからない オブジェクト指向プログラミングを理解する肝
18.
カプセルとは何か 2019/11/23 18 カプセル:小さな入れ物(ケースと同じ語源)
19.
カプセル化とは何か 2019/11/23 19 小さな入れ物に 詰め込んで収納すること 何を?
20.
クラスを使ったカプセル化 2019/11/23 20 何を収納するのか?
21.
クラスを使ったカプセル化 2019/11/23 21 何を収納するのか? 型の定義
22.
型の定義 2019/11/23 22 型 値の範囲の制限 値の操作の制限 int型 -21億~+21億 boolean型
trueかfalse int型 +,-,*,/,% ==,!=,>,< boolean型 &&, || ==, !=
23.
カプセル化 2019/11/23 23 型の定義をクラスに収納する class Quantity
{ // 値の範囲の制限 int value; Quantity(int value) { if (value < 0) throw new IllegalArgumentException(); } // 操作の制限 Quantity add(Quantity other) { … } Quantity subtract(Quantity other) { … } }
24.
2019/11/23 24 int quantity; quantity
= 3; Quantity quantity; quantity = new Quantity(3); int型 カプセル化していない (範囲と操作を制限していない) Quantity型 カプセル化している (範囲と操作を制限している) quantity * quantity ??? quantity = -99 ??? こういう怪しげな操作ができてしまう 足し算と引き算だけできる 負の値は持てない
25.
2019/11/23 25 型 値の種類 値の範囲の定義 値の操作の定義 カプセル化 クラス プログラムの作成単位 変数の定義 + メソッドの定義 抽象的な概念
コードで表現 カプセル化しない int, long, char, boolean, int[], char[], … プリミティブ型(Java言語に組み込まれた型)
26.
カプセル化で何がうれしいの? 2019/11/23 26
27.
カプセル化で何がうれしいの? 2019/11/23 27 カプセル化しない カプセル化する (Java標準ライブラリ) char[] value;
String Object[] data; ArrayList<Type> int[] value; int scale; BigDecimal int year, short month, short day LocalDate どちらでプログラミングするほうが、楽で安全か?
28.
カプセル化すると 2019/11/23 28 ロジックがあちこちに散らばらない 型名、メソッド名で意図が明確になる 適切な値、適切な操作に制限できる コードが整理でき、変更が楽で安全になる カプセル化しないと…
29.
オブジェクト指向プログラミング 2つのモード 2019/11/23 29
30.
オブジェクト指向プログラミング 2019/11/23 30 モード1 定義済みの型だけを使う - Javaに組込みの型(プリミティブ、配列) -
Java標準ライブラリのクラス - フレームワークや既存ライブラリのクラス
31.
オブジェクト指向プログラミング 2019/11/23 31 モード1 定義済みの型だけを使う - Javaに組込みの型(プリミティブ、配列) -
Java標準ライブラリのクラス - フレームワークや既存ライブラリのクラス モード2 独自の型を定義する - 金額、数量、納期、締切日、… - 金額範囲、数量範囲、日付範囲、… - 顧客区分、商品種別、注文区分、…
32.
オブジェクト指向プログラミングの スキルアップとは? 2019/11/23 32 モード1=型の消費者 モード2=型の生産者 型の消費者から型の生産者に
33.
モジュール化の分かれ道 2019/11/23 33 モード1 定義済の型だけを使った場合のモジュール化 アプリケーション固有のロジックは、手続き的に書くことになる → トランザクションスクリプト
+ データクラス モード2 独自の型を定義する場合のモジュール化 アプリケーション固有の型がそのままモジュール単位になる → ドメインモデル 変更が楽で安全になるのは、モード2に切り替わった後
34.
オブジェクト指向プログラミングのスキル ↓ クラス設計のスキル ↓ 独自の型の発見と改良のスキル 2019/11/23 34
35.
独自の型の発見 2019/11/23 35
36.
独自の型の発見 2019/11/23 36 現実世界は型の候補にあふれている
37.
独自の型の候補の発見 2019/11/23 37 現実世界は型の候補にあふれている 合計金額 単価 数量 税率 税額 課税区分 キャンペーン 期間 割引率 割引額 クーポン 金額範囲 数量範囲 期限 日数 開始日 終了日 期間 商品種別 顧客区分
取引区分 進捗状態 保管区分 配送区分数量制限 重量制限 適切な値の範囲は? 計算や判断のロジックは?
38.
型の候補を探し始めると 見える世界が変わってくる 2019/11/23 38 機能一覧 ユースケース どんな計算や判断を期待されているか? 計算や判断の元になる値の種類は何か? 結果としてどんな値を生成すればよいか? 画面項目 同じ型の項目はどれか? 適切な値の範囲は何か? 計算や判断のインプットになる項目はどれか? 計算や判断の結果の項目はどれか? テーブル カラム 同じ範囲の値はどれか? 計算や判断のインプットになる項目はどれか? 計算や判断の結果となる項目はどれか? 変更要求 どの型が変更の対象か その型の変更が影響する範囲はどこまでか?
39.
独自の型の発見と改良 2019/11/23 39 分析~モデリング~設計~プログラミング~保守 ライフサイクル全体を通して、 型に軸とする一貫したアプローチ 現実世界の関心事を型(値の種類)で分類 発見した型をクラスで表現 現実世界の関心事とプログラミングの直接的な写像
40.
本日のまとめ 2019/11/23 40
41.
オブジェクト指向プログラミング 2019/11/23 41 型 カプセル化
クラス 値の範囲の制限 値の操作の制限 概念/アイデア 値の範囲の定義 値の操作の定義 コードで具体化 モジュール性
42.
オブジェクト指向プログラミング モード2 2019/11/23 42 独自の型の発見と改良の活動 分析~モデリング~設計~プログラミング~保守 型を軸にした シームレス
な活動 現実世界とプログラムの直接的な写像 シームレス 直接的な写像 独自の型
43.
参考書籍 2019/11/23 43 モード2 実践の手引書 モード2のさまざまな側面の 詳細な検討と解説 理論派向け