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
第五回 未経験者のためのJava勉強会
Search
Yusuke
October 24, 2020
Programming
220
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
第五回 未経験者のためのJava勉強会
Yusuke
October 24, 2020
More Decks by Yusuke
See All by Yusuke
第四回 未経験者のためのJava勉強会
yusuke_i32
0
270
第三回 未経験者のためのJava勉強会
yusuke_i32
0
350
第二回 未経験者のためのJava勉強会
yusuke_i32
0
250
Java講習.pdf
yusuke_i32
0
650
Other Decks in Programming
See All in Programming
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
150
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
180
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
220
ActionController meets Protocol Buffers
sorah
0
560
sbt 2.0: takeoff
eed3si9n
0
160
パスワード再設定メールのURLについて知っておこう
uyuki234
0
160
Jetpack Compose Mechanisms
skydoves
3
820
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
150
[2026-10-09]一枚の布で作らなくてもいい。 信頼性は「パッチワーク」で紡がれる~既存の運用と新しい可能性をつなぎ合わせてきたCREの話~
tosite
0
100
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
400
contenteditable と日本語入力に向き合う
colorful12
0
200
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
260
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
500
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
The SEO Collaboration Effect
kristinabergwall1
1
590
It's Worth the Effort
3n
188
29k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
From π to Pie charts
rasagy
1
400
My Coaching Mixtape
mlcsv
0
360
For a Future-Friendly Web
brad_frost
184
10k
Transcript
未経験者のためのJava勉強会 第5回
エンジニアカフェ エンジニアやエンジニアに関わる人、エンジニアを目指す人をサポートする施設です。 エンジニアカフェ外観(提供:福岡市) イベントの様子 コワーキングスペース Event Co-Working&Meeting Consulting Cafe&Bar エンジニアカフェで体験できること
エンジニアカフェでは 随時ご相談を受け付けております! 本日のイベントに関するご質問はもちろん エンジニアに関するご相談・ご質問はお気軽にどうぞ! ・勉強の仕方を教えて欲しい ・学生でも参加しやすいコミュニティが知りたい ・子どもにおすすめのプログラミング教材ってある? ・3Dプリンタでこんなの作れる? などなど! スタッフやコミュニティマネージャーがオフライン・オンライン問わず
ご対応致します。
もくじ • オブジェクト指向について • インスタンスとクラスについて • カプセル化(getter,setter)
オブジェクト指向について
オブジェクト指向とは 現実世界にあるものを自動化させようとすること
オブジェクト指向とは 3000円 引出したい! 口座の残高を 調べる 3000円減らす様 口座を書き換え る 3000円渡す 例:ATM
口座
オブジェクト指向とは 3000円 引出したい! 残高を問い 合わせる DB 残高から 3000円減らす 3000円 受け取る!
例:ATM
オブジェクト指向とは プログラマが簡単にコードを書くことができる手段
なぜ簡単にプログラムを書く事ができるの? 現実にあるものを真似してプログラムを書く
オブジェクト指向の部品化
受付クラスを作成して受 付の人が行う処理を定 義する 口座クラスを作成して口 座が行う処理を記入する
オブジェクト指向の本質として 僕たちが普段行っていることを 自動化又は真似して作る
オブジェクト指向は中々理解できるものではありません 今回のもので全体像をふんわりわかってもらえたらと思います。
質問
クラスとインスタンスについて
クラスとは 設計図の様な物
mainメソッド内にクラス(設計図)を元に生成する実体 インスタンスとは
インスタンスとは クラス (設計図) main メソッド インスタンス化 インスタンス
コードで表してみます
main メソッド
None
Human クラス main メソッド
None
インスタンスとは Human クラス main メソッド Humanクラス を インスタンス化 Humanクラス を
インスタンス
None
None
None
None
質問
プロパティとメソッド
None
None
Humanクラスに定義されていたプロパティ、メソッドが インスタンスした際に使用する事ができます
None
定数について
定数について 定数...値が変化しないもの 変数...値が変化するもの
None
None
None
質問
コンストラクタ
コンストラクタとは? クラスからオブジェクトを作成した際に、 自動的に実行されるメソッドのこと
コンストラクタとは? クラス名と同じ名前で定義しなければならない
例 先ほど作成したHumanクラスに コンストラクタを定義してみましょう
None
None
None
先ほどコンストラクタを定義した Humanクラスを呼び出しましょう。
None
None
初期値を上書きする
None
None
質問
None
オブジェクト指向の3大要素
オブジェクト指向の3大要素 ・カプセル化 ・継承 ・多様性
カプセル化とは
カプセル化とは フィールドへの書き込みや メソッドの呼び出しを制御する機能です。
カプセル化のメリット 大事なフィールドやメソッドに悪意や間違いのある利用を防止する もし、想定しない利用があればその場所をすぐに見つける事ができる
アクセス制限の種類
・名前 アクセスを許可する範囲 ・private 自分自身のクラスのみ ・package private 自分と同じパッケージに属するクラス ・protected 自分と同じパッケージに属するか、自分を継承したクラス ・public
すべてのクラス ・基本的にフィールドにはprivateを付けてあげる
Humanクラスのフィールドを privateにしてみましょう
None
None
Mainクラスを実行してみましょう
None
これを実行してみます
None
privateでアクセス制限されているので 値を入れる事ができません
そこで使用するのがsetterとgetter
privateにされていたフィールドに値を入れる時、 呼び出す時に使用するのが setterとgetter です!
getterとは? 値を持ってくるメソッド
setterとは? getterとは逆に値を入れ込むメソッドです
Humanクラスにgetterを追加しましょう
None
None
None
None
None
Mainクラスでgetterメソッドを 呼び出しましょう
None
getAge()で呼び出す事ができます
None
これを実行します 成功すればコンストラクタで設定した 22が出力されます
None
次にsetterで値をセットしてみましょう
次のsetterを追加してみましょう
None
None
None
None
None
Mainメソッド内で値をセットしましょう
None
引数として50を渡してみます
None
None
実行してみましょう
None
同じ様にprivate変数nameにも getter,setterを定義しまよう
getter
getter
setter
None
None
これを実行してみます
None
質問
getter,setterのメリット
getter,setterのメリット メソッド内で条件を指定できる
例 ageに与えられる値がマイナスと120以上の場合に エラーを表示する
if文を使用して実装します
None
None
None
全体図で確認しましょう
None
値を入力して実際に動くのか 確認しましょう
マイナス値
None
実行してみましょう
None
None
大きい値
None
実行してみましょう
None
None
この様にsetter,getterを使用して例外処理を行う事ができます
カプセル化の考え方 メソッドを利用してフィールドの変数を保護する
質問
本日はありがとうございました!
エンジニアカフェでは 随時ご相談を受け付けております! 本日のイベントに関するご質問はもちろん エンジニアに関するご相談・ご質問はお気軽にどうぞ! ・勉強の仕方を教えて欲しい ・学生でも参加しやすいコミュニティが知りたい ・子どもにおすすめのプログラミング教材ってある? ・3Dプリンタでこんなの作れる? などなど! スタッフやコミュニティマネージャーがオフライン・オンライン問わず
ご対応致します。