デザインパターン入門読んだまとめ(第0章)

 

第0章を読んだまとめ

クラス図の概要

・クラス

メソッドをまとめた集合体の名前

・フィールド

クラス内で扱う変数を宣言している場所

ローカル変数ではない変数

・メソッド

関数のこと

f:id:atusibba1014:20201022093229j:plain

階層

 

クラス図を書く時はこの順番がルールであるとのこと

階層関係

f:id:atusibba1014:20201022094257p:plain

階層関係の図

この図はクラスの階層関係を表している

矢印はサブクラスからスーパークラスへと伸びている

つまり、この図はParentClassをChildClassがextendsしていると言える。

この図の詳細を説明していく

・abstructクラス

名前を斜字体で書く(ParentClass)

abstructメソッドが入っているクラスのこと

明示的にabstructメソッドが入っているクラスにはabstructを先頭につけてあげる

ここが分かりやすかった

抽象クラスとは - 抽象クラスとインターフェース - Java入門
抽象クラスとは
・staticフィールド

名前に下線をつける(filed2)

クラス内で使われる変数をメモリ上で静的に確保しているもの

インスタンス生成をしなくても使える

グローバル変数との違いは、

staticフィールドの変数はクラスに紐付いている(つまり、宣言されたクラスに関連する変数)変数だということ(?)

グローバル変数はどこでも使える変数ではあるが、他の人がコードを見た時に『この変数はどこのもの?』とワケワカになる。

・abstructメソッド

名前を斜字体で書く(ParentClass-methodA)

子クラスで用意してほしいメソッドを予め親クラスで宣言したもの

これも明示的にメソッドの先頭にabstructを追加する

つまり、abstructクラスを継承するときは子クラス側でabstructメソッドを宣言して中身を記述しないといけない(?)

・staticメソッド

名前に下線を引く(methodC)

インスタンス宣言の前にクラス内からアクセスできるメソッドのこと。

非staticメソッドはインスタンス宣言後に利用できる

多分だけど、最初の方はstaticつけとけば、なんとかなるがメモリの負荷を考えると、なるべく付けないような開発が必要になってくると思われる。(?)

インターフェース

f:id:atusibba1014:20201022102616p:plain

interface

図はインターフェースと実装クラスの図を表している

今んとこのインターフェースの認識はクラスの中が全部abstructメソッドになっているもの。今後理解を深めていく

アクセス制御

フィールドやメソッドの一番先頭につくアクセスを制御するアクセス修飾子

・private(-)

クラス外からアクセスできない

・public(+)

どこからでもアクセス可能

・protected(#)

クラス内、継承したクラスからのみアクセス可能

・(~)

同じパッケージからのアクセスが可能

なぜアクセス修飾子が必要ななのか?

セキュリティ的に必要であるから

要件を満たす範囲でできるだけ狭いアクセス権を配布する

今完全に理解するのは無理だと思った

アクセス修飾子 | Javaコード入門
Java入門の基礎知識からコード確認、索引、目&#30...

 

シーケンス図

クラス間の動的な振る舞いを可視化した図のこと

ついでのメモ

・final

変数の内容を不変にする修飾子

コメント

タイトルとURLをコピーしました