More Related Content
PPT
Java interfaces & abstract classes PDF
PDF
PDF
PPT
PDF
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行 PPTX
ODP
Similar to 20120609 java oo道場(ネタのメモ)
PPTX
PDF
PDF
早稲田大学授業 - Java Programing上級 PDF
PPTX
PPT
PDF
PPT
ODP
KEY
How wonderful to be (statically) typed 〜型が付くってスバラシイ〜 PDF
X hago2 shortcoding 20110827 PDF
夜子まま塾講義6(androidでhello world) PDF
KEY
PPTX
PDF
PDF
PDF
LLdeade Python Language Update PDF
KEY
Hello World Python featuring GAE More from skowata
PPTX
20171107 agile discussionコインws PPT
第1回(20170701)内容の振り返り(公開用) PPT
20170708 java oo道場(ネタのメモ)(公開用) PDF
PDF
PDF
PDF
20120602 JavaOO道場 オブジェクト指向概論 20120609 java oo道場(ネタのメモ)
- 1.
- 2.
- 3.
- 4.
今回も、
シンプル」
「シンプル」
Surtout faites simple
(出来る限り単純に作りなさい)
エスコフィエの料理の哲学より
- 5.
- 6.
その前に 軽くJavaの文法の復習を(その1)
Java言語において「データ型」と呼ばれるものは3種類存在する
基本データ型 プリミティブ型
基本データ型(プリミティブ型)
データ
・・・boolean, char, byte, short, int, long, float, double の
8種類
参照型(リファレンス型
参照型(リファレンス型)
・・・String、Date 等のJavaのライブラリに含まれたものや
それぞれの開発者が作成したクラス
配列型 これには次のシートの
・・・若干特殊な参照型 3種類が存在する
- 7.
その前に 軽くJavaの文法の復習を(その2)
Java 言語において「クラス」と呼ばれるものは3種類存在する
イ
ン 高 Interface(インタフェース)
(インタフェース)
ス
タ
ン ・・・定数と抽象メソッドのみを持つ
ス
生
成 抽
不
可
象 AbstractClass(抽象クラス)
(抽象クラス)
クラス
能 度
・・・定数と変数、抽象メソッド・具象メソッドを持つ
可
能 低 Class(クラス or 具象クラス)
( 具象クラス
クラス)
・・・定数と変数、具象メソッドのみを持つ
(※)「抽象メソッド」・・・「実装を持たない(≠実装が空)メソッド」
持たない
- 8.
さっきの内容を表にすると・・・
フィールド メソッド
定数 変数 抽象メソッド 具象メソッド
Interface
(インタフェース)
インタフェース)
○ × ○ ×
AbstractClass
○ ○ ○ ○
(抽象クラス)
抽象クラス)
クラス
Class
(クラス or 具象クラス)
具象クラス
クラス)
○ ○ × ○
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
「継承」についてのコーディング(番外編)
●「Ko」に対して、2つ以上の親クラスを継承させようとするとどうなるでしょう?
Oya1 Oya2
printOya() printOya()
printZaisan() printZaisan()
Ko
printKo()
printZaisan()
●「Oya1」が「Oya2」を継承し、「Oya2」が「Oya3」を継承するような関係の
場合、「Oya1」を継承した「Ko」の動きはどうなるでしょう?
Oya3 Oya2 Oya1
printOya3() printOya2() printOya()
printZaisan() printZaisan() printZaisan()
Ko
printKo()
後は、各メソッドのアクセス修飾子を printZaisan()
変えてみたりしても面白いかも
- 16.
- 17.
「継承」のおまけ(単一継承と多重継承)
単一継承(Java とか) 多重継承(C++とか)
Oya Oya1
printOya() printOya()
printZaisan() printZaisan()
Ko1 Ko2
printKo() printKo() Oya1 Oya2
printZaisan() printZaisan() printOya() printOya()
printZaisan() printZaisan()
Ko3 Ko4 Ko
printKo() printKo() printKo()
printZaisan() printZaisan() printZaisan()
(※)「親」「子」というのはそれぞれの相対
的な関係において定義されます。 ダイヤモンド継承問題
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
白板で説明したネタのメモです
<Comedian> <Writer>
uses
performance() write()
Publisher
main()
99
Mr.M
performance()
performance()
uses Mr.K
write()
Hall produce() write()
main()
- 24.
- 25.
- 26.
例外について(階層構造)
Object
Throwable
Error 非チェック例外
Exception
RuntimeException
チェック例外 その他
その他のException
(参考)「Java言語プログラミングレッスン 下巻」(結城浩著)
- 27.
例外について(処理方法)
●「try~catch」して処理する
●「throws」で呼び出し元に処理を任せる
例外は例外発生時のみの処理とする
のみの処理
⇒ いずれにせよ「例外は例外発生時のみの処理とする」のが重要!
∵例外発生時以外の処理を含めると、「ホントに例外か?」という状況に。。。
(そもそも「例外」なんて無いに越したことは無い)
「例外による脱出口が沢山ある」=「メソッドからの返り値が複数ある」
という事に繋がりかねず、設計が複雑になってしまう(シンプルさ、重要!)
(個人的経験としては「例外」についてのポリシーがイケてないシステムは、
大概その他もイケてないので要注意!)
(参考)「Java言語プログラミングレッスン 下巻」
「達人プログラマー」「Javaの格言」
- 28.