ObjeProg
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#contents
** 基本概念 [#y1f910d0]
- クラス(設計図) = 共通性をひとまとめにした概念(なので、...
-- クラスになるのは日常言語で 名詞 となるもの
- インターフェース = メソッドの定義
-- メソッドになるのは日常会話で 動詞 となるもの
-- インターフェースを利用することにより、メソッドの処理内...
- オブジェクト = クラスから生成された実態
- インスタンス化 = クラスからオブジェクトを生成すること
- 継承 = 親クラスの性質を受け継ぐこと
- カプセル化 = 仕事の内容を隠すこと
- ポリモーフィズム = 同一のメソッドで異なる振る舞いをする...
- クラス間の関連性
-- is-a 関係 (クラス間の継承関係) : &color(red){Aクラスか...
-- 読み方として (public class)と(A extend B)で分解、...
public class A extends B {
}
--- [pros]継承は親クラスの機能をそのまま使える (子クラ...
--- [cons]親クラスと子クラスの間にはインターフェースを...
--- [cons]親クラスの修正の影響がダイレクトに子クラスに...
-- has-a 関係 (包含関係) : &color(red){AはBを含む};
public class A {
B b;
}
--- [cons] 包含は継承のように親クラスの機能をそのまま利用...
--- [pros] 包含したクラスに処理を委譲することで機能を使う...
--- [pros] 包含するのをクラスではなく包含するクラスが実装...
-- インターフェースの定義
--- インターフェースにはロジックを記載せず、メソッドを定...
interface Human
{
void walk();
void eat();
void sleep();
}
--- メソッドの定義だけなのでロジックはインターフェースを...
class Tanaka implements Human {
void walk() {
System.out.println(“時速5キロで歩く”);
}
:
:
*** オブジェクト指向設計の原則 (クラス設計で5つ、パッケー...
- オープン・クローズドの原則 = 「拡張に対して開いていて、...
--「拡張がしやすく、拡張しても修正箇所はできるだけ少なく...
- 単一責任の原則
-- クラスを変更する理由は1つ以上存在してはならない (= ク...
-- 役割が複数あると、その役割の数分だけ変更する理由が増え...
*** UML図 [#nd833a99]
- クラス図 = 抽象的な表現のクラスをその構成や相互関係を表...
-- クラス図は水平線によって3分割され、一番上にクラス名、...
-- &ref(class_fig.jpg);
- オブジェクト図 = クラスを実体化(インスタンス化)してオ...
-- オブジェクト図はインスタンス名、クラス名、変数名、値で...
-- &ref(obj_fig.jpg);
- 接続線 (感覚的には矢印の向きが反対に感じるが...)
-- 「AはBの一種でAクラスからBクラスを派生する」というクラ...
--- &ref(isa.jpg);
-- 「A has a B.」、つまり「AはBを含む」という包含関係
--- &ref(hasa.jpg);
*** java での記述 [#i56402c7]
*** デザインパターン(= Best Practice) ---- 全23パター...
- Template Methodパターン
-- 処理の内容は違っても処理の流れは一緒のような状況に適用...
-- 親クラスで処理の流れ(アルゴリズム)を実装し、処理の流...
--- 抽象メソッドとは、定義だけでサブクラスに処理を強制的...
--- 親クラスで宣言した抽象メソッドの具体的な処理はサブク...
-- 親クラスに処理の流れを記したテンプレートメソッドを用意...
--- テンプレートメソッドから呼ばれるメソッドをフックメソ...
--- テンプレートメソッドからは次々にメソッドが呼ばれていく
- Stateパターン
-- ポリモーフィズムを利用するためにモノについての「状態」...
-- Stateパターンを適用すると個々のクラスで状態を表現する...
*** [[イミュータブル(=書き換え不可能)なオブジェクト:ht...
- &color(red){JavaScript}; はもともとイミュータブルな部分...
- 基本的に [コピーしてから操作する] ということを徹底して...
- プロパティの名前をアンダースコアから始まるものにします...
- 外部で必要そうなプロパティは getterを使って露出する
** 教材 [#p7251e8e]
- [[Think it 今さら聞けない!ゼロから学ぶオブジェクト指向...
- [[疑い深いあなたのためのオブジェクト指向再入門:http://k...
終了行:
#contents
** 基本概念 [#y1f910d0]
- クラス(設計図) = 共通性をひとまとめにした概念(なので、...
-- クラスになるのは日常言語で 名詞 となるもの
- インターフェース = メソッドの定義
-- メソッドになるのは日常会話で 動詞 となるもの
-- インターフェースを利用することにより、メソッドの処理内...
- オブジェクト = クラスから生成された実態
- インスタンス化 = クラスからオブジェクトを生成すること
- 継承 = 親クラスの性質を受け継ぐこと
- カプセル化 = 仕事の内容を隠すこと
- ポリモーフィズム = 同一のメソッドで異なる振る舞いをする...
- クラス間の関連性
-- is-a 関係 (クラス間の継承関係) : &color(red){Aクラスか...
-- 読み方として (public class)と(A extend B)で分解、...
public class A extends B {
}
--- [pros]継承は親クラスの機能をそのまま使える (子クラ...
--- [cons]親クラスと子クラスの間にはインターフェースを...
--- [cons]親クラスの修正の影響がダイレクトに子クラスに...
-- has-a 関係 (包含関係) : &color(red){AはBを含む};
public class A {
B b;
}
--- [cons] 包含は継承のように親クラスの機能をそのまま利用...
--- [pros] 包含したクラスに処理を委譲することで機能を使う...
--- [pros] 包含するのをクラスではなく包含するクラスが実装...
-- インターフェースの定義
--- インターフェースにはロジックを記載せず、メソッドを定...
interface Human
{
void walk();
void eat();
void sleep();
}
--- メソッドの定義だけなのでロジックはインターフェースを...
class Tanaka implements Human {
void walk() {
System.out.println(“時速5キロで歩く”);
}
:
:
*** オブジェクト指向設計の原則 (クラス設計で5つ、パッケー...
- オープン・クローズドの原則 = 「拡張に対して開いていて、...
--「拡張がしやすく、拡張しても修正箇所はできるだけ少なく...
- 単一責任の原則
-- クラスを変更する理由は1つ以上存在してはならない (= ク...
-- 役割が複数あると、その役割の数分だけ変更する理由が増え...
*** UML図 [#nd833a99]
- クラス図 = 抽象的な表現のクラスをその構成や相互関係を表...
-- クラス図は水平線によって3分割され、一番上にクラス名、...
-- &ref(class_fig.jpg);
- オブジェクト図 = クラスを実体化(インスタンス化)してオ...
-- オブジェクト図はインスタンス名、クラス名、変数名、値で...
-- &ref(obj_fig.jpg);
- 接続線 (感覚的には矢印の向きが反対に感じるが...)
-- 「AはBの一種でAクラスからBクラスを派生する」というクラ...
--- &ref(isa.jpg);
-- 「A has a B.」、つまり「AはBを含む」という包含関係
--- &ref(hasa.jpg);
*** java での記述 [#i56402c7]
*** デザインパターン(= Best Practice) ---- 全23パター...
- Template Methodパターン
-- 処理の内容は違っても処理の流れは一緒のような状況に適用...
-- 親クラスで処理の流れ(アルゴリズム)を実装し、処理の流...
--- 抽象メソッドとは、定義だけでサブクラスに処理を強制的...
--- 親クラスで宣言した抽象メソッドの具体的な処理はサブク...
-- 親クラスに処理の流れを記したテンプレートメソッドを用意...
--- テンプレートメソッドから呼ばれるメソッドをフックメソ...
--- テンプレートメソッドからは次々にメソッドが呼ばれていく
- Stateパターン
-- ポリモーフィズムを利用するためにモノについての「状態」...
-- Stateパターンを適用すると個々のクラスで状態を表現する...
*** [[イミュータブル(=書き換え不可能)なオブジェクト:ht...
- &color(red){JavaScript}; はもともとイミュータブルな部分...
- 基本的に [コピーしてから操作する] ということを徹底して...
- プロパティの名前をアンダースコアから始まるものにします...
- 外部で必要そうなプロパティは getterを使って露出する
** 教材 [#p7251e8e]
- [[Think it 今さら聞けない!ゼロから学ぶオブジェクト指向...
- [[疑い深いあなたのためのオブジェクト指向再入門:http://k...
ページ名: