今回は10章
カプセル化・継承・多様性の3つがある。
カプセル化
フィールドへの読み書きやメソッドの呼び出しを制限する機能
privateやpublicはアクセス修飾子と呼ばれる。
・フィールドはすべてprivate
・メソッドはすべてpublic
が基本
メソッドを経由したらフィールドにアクセスできる
getterメソッド/setterメソッド
privateになっていて見えないある特定のフィールド値を取り出すためだけのメソッドをgetterメソッドといいう。
書き方の定石
publc string getName(){
return this.name;
}
逆に値を代入するだけのメソッドはsetterメソッド
publc void setName(String name){
this.name=name;
}
これにより
・ReadOnly、WriteOnlyのフィールドを実現できる
・フィールドの名前など、クラスの内部設計を自由に変更できる
・フィールドへの入力が適切かをsetterで検査できる
if(name==null){
//処理を中断
}
みたいに、フィールドに設定されようとしている値が妥当かを場合分けで検査して、変な動作しないようにする
package private
publicやprivateなどを何も書いていなかったら、package ptivate(自分と同じパッケージに属するクラスへのアクセスを許可)に自動になる
一つのファイルに一つのpublicクラス
ファイル名=public クラス名
publicクラスがないなら、ファイル名は自由でいいし、一つのファイルに複数のクラスがあっていい。
まとめ
フィールドはprivateとして外部から隠し、setter/getterメソッド経由でアクセスする
これがカプセル化
バグをなくすために大事
前