Submit Search
Upload
Java6
•
0 likes
•
8 views
I
ImayoshiYusuke
Follow
勉強会資料
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 95
Download now
Download to read offline
Recommended
Java5
Java5
ImayoshiYusuke
Java3
Java3
ImayoshiYusuke
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)
Yuuki Fukuda
Java4
Java4
ImayoshiYusuke
Java1~4
Java1~4
ImayoshiYusuke
20191207 oracle code one java_championt_tour_in_okayama
20191207 oracle code one java_championt_tour_in_okayama
雅也 立野
JavaOne2014サンフランシスコ報告会in大阪
JavaOne2014サンフランシスコ報告会in大阪
bitter_fox
デブサミ2013【15-D-4】Opsから挑むDevOps
デブサミ2013【15-D-4】Opsから挑むDevOps
Developers Summit
Recommended
Java5
Java5
ImayoshiYusuke
Java3
Java3
ImayoshiYusuke
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)
ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring)
Yuuki Fukuda
Java4
Java4
ImayoshiYusuke
Java1~4
Java1~4
ImayoshiYusuke
20191207 oracle code one java_championt_tour_in_okayama
20191207 oracle code one java_championt_tour_in_okayama
雅也 立野
JavaOne2014サンフランシスコ報告会in大阪
JavaOne2014サンフランシスコ報告会in大阪
bitter_fox
デブサミ2013【15-D-4】Opsから挑むDevOps
デブサミ2013【15-D-4】Opsから挑むDevOps
Developers Summit
2012年javaメモリリーク
2012年javaメモリリーク
torutk
JavaOne2013報告会 JavaFX Update
JavaOne2013報告会 JavaFX Update
Takashi Aoe
PWA aruaru
PWA aruaru
n_harada
ジョイ・インク 役職も部署もない全員主役のマネジメント
ジョイ・インク 役職も部署もない全員主役のマネジメント
Yasui Tsutomu
LODEO開発ストーリー
LODEO開発ストーリー
Tomohiro Shinden
AngularJSのDirectiveで俺俺タグつくっちゃお
AngularJSのDirectiveで俺俺タグつくっちゃお
Toshio Ehara
JavaScriptフレームワーク入門にVue.jsはいかが?
JavaScriptフレームワーク入門にVue.jsはいかが?
好洋 山崎
ドワンゴにおける新卒エンジニア向けScala研修について
ドワンゴにおける新卒エンジニア向けScala研修について
Kota Mizushima
system testing in Scrum
system testing in Scrum
Noriyuki Nemoto
Arduino勉強会用スライド
Arduino勉強会用スライド
satonorisan
20161119 java one-feedback_osaka
20161119 java one-feedback_osaka
Takashi Ito
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
normalian
知ってるようで知らないWeb基礎セミナー
知ってるようで知らないWeb基礎セミナー
ukkyo
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
Rescale Japan株式会社
DELPHI BOOT CAMP / DELPHIでビジュアル開発に挑戦しよう ◆ DAY2: DELPHIでUI設計のポイントを学ぼう
DELPHI BOOT CAMP / DELPHIでビジュアル開発に挑戦しよう ◆ DAY2: DELPHIでUI設計のポイントを学ぼう
Kaz Aiso
Swagger jjug ccc 2018 spring
Swagger jjug ccc 2018 spring
kounan13
Backlog/Cacooから学ぶ、サービスに必要な機能の取捨選択と改善の仕方
Backlog/Cacooから学ぶ、サービスに必要な機能の取捨選択と改善の仕方
ikikko
アジャイル開発&TFS導入
アジャイル開発&TFS導入
You&I
Iccv2019 参加報告
Iccv2019 参加報告
Yuta Nakagawa
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate
Yuki Iwanari
More Related Content
Similar to Java6
2012年javaメモリリーク
2012年javaメモリリーク
torutk
JavaOne2013報告会 JavaFX Update
JavaOne2013報告会 JavaFX Update
Takashi Aoe
PWA aruaru
PWA aruaru
n_harada
ジョイ・インク 役職も部署もない全員主役のマネジメント
ジョイ・インク 役職も部署もない全員主役のマネジメント
Yasui Tsutomu
LODEO開発ストーリー
LODEO開発ストーリー
Tomohiro Shinden
AngularJSのDirectiveで俺俺タグつくっちゃお
AngularJSのDirectiveで俺俺タグつくっちゃお
Toshio Ehara
JavaScriptフレームワーク入門にVue.jsはいかが?
JavaScriptフレームワーク入門にVue.jsはいかが?
好洋 山崎
ドワンゴにおける新卒エンジニア向けScala研修について
ドワンゴにおける新卒エンジニア向けScala研修について
Kota Mizushima
system testing in Scrum
system testing in Scrum
Noriyuki Nemoto
Arduino勉強会用スライド
Arduino勉強会用スライド
satonorisan
20161119 java one-feedback_osaka
20161119 java one-feedback_osaka
Takashi Ito
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
normalian
知ってるようで知らないWeb基礎セミナー
知ってるようで知らないWeb基礎セミナー
ukkyo
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
Rescale Japan株式会社
DELPHI BOOT CAMP / DELPHIでビジュアル開発に挑戦しよう ◆ DAY2: DELPHIでUI設計のポイントを学ぼう
DELPHI BOOT CAMP / DELPHIでビジュアル開発に挑戦しよう ◆ DAY2: DELPHIでUI設計のポイントを学ぼう
Kaz Aiso
Swagger jjug ccc 2018 spring
Swagger jjug ccc 2018 spring
kounan13
Backlog/Cacooから学ぶ、サービスに必要な機能の取捨選択と改善の仕方
Backlog/Cacooから学ぶ、サービスに必要な機能の取捨選択と改善の仕方
ikikko
アジャイル開発&TFS導入
アジャイル開発&TFS導入
You&I
Iccv2019 参加報告
Iccv2019 参加報告
Yuta Nakagawa
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate
Yuki Iwanari
Similar to Java6
(20)
2012年javaメモリリーク
2012年javaメモリリーク
JavaOne2013報告会 JavaFX Update
JavaOne2013報告会 JavaFX Update
PWA aruaru
PWA aruaru
ジョイ・インク 役職も部署もない全員主役のマネジメント
ジョイ・インク 役職も部署もない全員主役のマネジメント
LODEO開発ストーリー
LODEO開発ストーリー
AngularJSのDirectiveで俺俺タグつくっちゃお
AngularJSのDirectiveで俺俺タグつくっちゃお
JavaScriptフレームワーク入門にVue.jsはいかが?
JavaScriptフレームワーク入門にVue.jsはいかが?
ドワンゴにおける新卒エンジニア向けScala研修について
ドワンゴにおける新卒エンジニア向けScala研修について
system testing in Scrum
system testing in Scrum
Arduino勉強会用スライド
Arduino勉強会用スライド
20161119 java one-feedback_osaka
20161119 java one-feedback_osaka
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
知ってるようで知らないWeb基礎セミナー
知ってるようで知らないWeb基礎セミナー
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
DELPHI BOOT CAMP / DELPHIでビジュアル開発に挑戦しよう ◆ DAY2: DELPHIでUI設計のポイントを学ぼう
DELPHI BOOT CAMP / DELPHIでビジュアル開発に挑戦しよう ◆ DAY2: DELPHIでUI設計のポイントを学ぼう
Swagger jjug ccc 2018 spring
Swagger jjug ccc 2018 spring
Backlog/Cacooから学ぶ、サービスに必要な機能の取捨選択と改善の仕方
Backlog/Cacooから学ぶ、サービスに必要な機能の取捨選択と改善の仕方
アジャイル開発&TFS導入
アジャイル開発&TFS導入
Iccv2019 参加報告
Iccv2019 参加報告
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate
Java6
1.
未経験者のためのJava勉強会 第6回
2.
エンジニアカフェ エンジニアやエンジニアに関わる人、エンジニアを目指す人をサポートする施設です。 エンジニアカフェ外観(提供:福岡市) イベントの様子 コワーキングスペース Event
Co-Working&Meeting Consulting Cafe&Bar エンジニアカフェで体験できること
3.
自己紹介 ● 今吉佑介 ● 大学生 ●
Java , Ruby
4.
もくじ ● 継承について ● 抽象クラス
5.
継承について
6.
すでに定義されているクラスを元に 新しいクラスを作成する事
7.
画面に時間を表示する時計クラスを作ることを考えてみましょう
8.
この時計クラスは好みに合わせてデジタル時計やアナログ時計の様に 表示する事ができるとしましょう。 時計クラス ・時刻の設定 ・アラーム ・時、分、秒の管理 アナログ時計 デジタル時計
9.
デジタル時計とアナログ時計は表示形式が違うだけで、現在時刻を表示したり アラームなどの設定も行っています
10.
時計クラスから「アナログ時計」「デジタル時計」を継承しているとなります
11.
継承によって作られたクラスをサブクラスと呼び 継承元になっているクラスをスーパークラスと呼びます 時計クラス ・時刻の設定 ・アラーム ・時、分、秒の管理 アナログ時計 デジタル時計 スーパークラス サブクラス サブクラス
12.
継承を行うことによって出来ること ・既存の機能はそままで新しい機能を追加できる ・既存の機能の名前のまま新しい振る舞いを定義できる ・既存の機能に処理を追加して拡張できる
13.
なぜ継承を使うのか?
14.
継承を用いることによって、コードの追加、 修正といったメンテナンスが容易になったり、 既存のコードの使いまわしやすくなるなどの メリットがあるから
15.
継承は同じ様な機能を持つクラスを複数作る際に便利
16.
既存のコードを再利用する事ができる仕組み つまり継承は...
17.
Studentクラスを用いて継承を体験しましょう
18.
19.
先ほどのクラスではprivateで 名前、年齢、学校名を定義しています
20.
Mainクラスを作成して先ほどの Studentクラスをインスタンス化しましょう
21.
22.
Mainクラスを実行してみましょう
23.
コマンドラインで下記 二つを実行してください
24.
私の場合実行結果はこの様になりました
25.
先ほどのStudentクラスをに継承を行います
26.
Human(人間)クラスをStudent(生徒)クラスへ継承する
27.
Studentクラス Humanクラス 継承! 名前 年齢 学校名
28.
Humanクラスに名前と年齢を持たせて Studentクラスに継承させる
29.
スーパークラス(親クラス)である Humanクラスを作成しましょう
30.
31.
Humanクラスに名前と年齢を定義します
32.
33.
StudentクラスにHumanクラスを継承しましょう
34.
extendsを使用して継承を行う事ができます
35.
記述方法
36.
StudentクラスにHumanクラスを継承するので 次の様に記述します
37.
38.
これで継承を行いました 継承後のStudentクラスを定義しましょう
39.
Humanクラスに記述している部分を省略できる
40.
41.
親クラスに記述されている部分 age,name変数 age,nameメソッド を省略することができる
42.
Humanクラスに記述している部分を 削除した物が次になります
43.
44.
これで継承が完了です
45.
継承の原則
46.
継承には「is - a
の原則」というルールがあります
47.
子クラスは親クラスの一部である 子クラス is -
a 親クラス
48.
今回の場合は Student is
- a Human Student は Human の一部であるとなる
49.
気をつけて頂きたいのは Human is -
a Student とならない様にしてください この場合だと HumanクラスがStudentクラスの一部という意味になっています
50.
間違った継承
51.
間違った継承として is - a
の関係がないのにも関わらず 継承してしまうのが間違った継承です
52.
is - a
が成り立つか考えて継承を行いましょう
53.
子クラスになるほど「特殊で具体的なものに」 具体化(特化)していく 親クラスになるほど「一般的で、抽象的・あいまいなものに」 一般化(凡化)していく
54.
抽象クラス
55.
今回までは予め処理の決まったクラス、 メソッドを呼び出して実行していましたが、 処理の決まっていないクラス、 メソッドを定義しそれを呼び出します
56.
抽象クラスとは?
57.
抽象クラスは、通常のクラス(具象クラス)とは違い 具体的な処理は記述しない 継承後のクラスで具体的な処理を記述する
58.
抽象クラスの記述方法
59.
抽象クラスは通常のメソッドと 抽象メソッドを定義することが可能です
60.
抽象メソッドとは?
61.
現時点で何をするか確定できていないメソッド
62.
継承を行ったクラスで 処理を追加しなければならない
63.
抽象メソッドの記述方法
64.
65.
抽象メソッドのworkを定義するとなるとこの様になります
66.
質問
67.
手を動かしながら抽象クラス、 抽象メソッドを記述しましょう! お好きなテキストエディタを開いてください!
68.
今から作成するプログラムは、会社員が出社、仕事、帰宅を行う プログラムです
69.
Employeeファイルを作成して abstractでEmployeeを定義しましょう
70.
・protected変数を定義 ・抽象メソッドを定義
71.
・通常のメソッドを定義します ・コマンドラインに社員の出社と帰宅を表示させます
72.
注意点 抽象クラスはインスタンス化することができない
73.
抽象クラスをインスタンス化しようとすると ...?
74.
コマンドプロンプトでこの様にエラーが表示されます
75.
抽象クラスを継承しましょう
76.
今回は開発者クラス(Development)に継承します
77.
Developerファイルを作成して Employeeクラスを継承したDeveloperを定義します
78.
Sampleクラスファイルを作成して Developerクラスをインスタンス化させましょう
79.
Sampleクラスファイルを作成しましょう
80.
先ほどのSampleクラスにDeveloperクラスをインスタンス化さてましょう!
81.
親クラスで定義したgoOfficeメソッドとgoHomeメソッドを呼び出してみましょう!
82.
コマンドラインでSampleファイルを実行しましょう!
83.
実行結果はこの様になりました!
84.
抽象クラスEmployeeの下線部のメソッドを呼び出しました
85.
抽象メソッドのworkメソッドをまだ呼び出していませんので、呼び出してみましょう!
86.
下線部で抽象クラスの workメソッドを呼び出してみてください!
87.
コンパイラを通してみましょう!
88.
この様にエラーが出力されます!
89.
抽象メソッドを使用する場合は抽象メソッドを オーバーライドする必要があります!
90.
下線部様にオーバーライドを行い再度コンパイルしましょう!
91.
コンパイルが通り出力されました!
92.
まとめ ・継承クラスはインスタンス化できない ・継承メソッドはオーバーライドしないと使用できない
93.
質問
94.
ありがとうございました!
95.
エンジニアカフェでは 随時ご相談を受け付けております! 本日のイベントに関するご質問はもちろん エンジニアに関するご相談・ご質問はお気軽にどうぞ! ・勉強の仕方を教えて欲しい ・学生でも参加しやすいコミュニティが知りたい ・子どもにおすすめのプログラミング教材ってある? ・3Dプリンタでこんなの作れる? などなど! スタッフやコミュニティマネージャーがオフライン・オンライン問わず ご対応致します。
Download now