第0章を読んだまとめ
クラス図の概要
・クラス
メソッドをまとめた集合体の名前
・フィールド
クラス内で扱う変数を宣言している場所
ローカル変数ではない変数
・メソッド
関数のこと
クラス図を書く時はこの順番がルールであるとのこと
階層関係
この図はクラスの階層関係を表している
矢印はサブクラスからスーパークラスへと伸びている
つまり、この図はParentClassをChildClassがextendsしていると言える。
この図の詳細を説明していく
・abstructクラス
名前を斜字体で書く(ParentClass)
abstructメソッドが入っているクラスのこと
明示的にabstructメソッドが入っているクラスにはabstructを先頭につけてあげる
ここが分かりやすかった
・staticフィールド
名前に下線をつける(filed2)
クラス内で使われる変数をメモリ上で静的に確保しているもの
インスタンス生成をしなくても使える
グローバル変数との違いは、
staticフィールドの変数はクラスに紐付いている(つまり、宣言されたクラスに関連する変数)変数だということ(?)
グローバル変数はどこでも使える変数ではあるが、他の人がコードを見た時に『この変数はどこのもの?』とワケワカになる。
・abstructメソッド
名前を斜字体で書く(ParentClass-methodA)
子クラスで用意してほしいメソッドを予め親クラスで宣言したもの
これも明示的にメソッドの先頭にabstructを追加する
つまり、abstructクラスを継承するときは子クラス側でabstructメソッドを宣言して中身を記述しないといけない(?)
・staticメソッド
名前に下線を引く(methodC)
インスタンス宣言の前にクラス内からアクセスできるメソッドのこと。
非staticメソッドはインスタンス宣言後に利用できる
多分だけど、最初の方はstaticつけとけば、なんとかなるがメモリの負荷を考えると、なるべく付けないような開発が必要になってくると思われる。(?)
インターフェース
図はインターフェースと実装クラスの図を表している
今んとこのインターフェースの認識はクラスの中が全部abstructメソッドになっているもの。今後理解を深めていく
アクセス制御
フィールドやメソッドの一番先頭につくアクセスを制御するアクセス修飾子
・private(-)
クラス外からアクセスできない
・public(+)
どこからでもアクセス可能
・protected(#)
クラス内、継承したクラスからのみアクセス可能
・(~)
同じパッケージからのアクセスが可能
なぜアクセス修飾子が必要ななのか?
セキュリティ的に必要であるから
要件を満たす範囲でできるだけ狭いアクセス権を配布する
今完全に理解するのは無理だと思った
シーケンス図
クラス間の動的な振る舞いを可視化した図のこと
ついでのメモ
・final
変数の内容を不変にする修飾子
コメント