Java学習記録~復習:カプセル化~

夏休みをもらい実家に帰った時にカプセル化って具体的に何?と弟に聞かれた時に”プログラム内で不正に値を変えられないようにすることだよ?”としか答えられず改めて自分の勉強不足を知った8月 そして11月 改めてカプセル化について復習しなおしてみる

アクセス修飾子

フィールドを操作されたくない場合、フィールドの宣言と同時にprivateを宣言する privateは同じクラスないからでしかアクセスすることができないため、他のクラスから呼び出されることはない privateのように他からのアクセスを制限するものをアクセス修飾子という。 privateのほかにもメンバに関しては以下のアクセス修飾子がある
  • private: 同じクラスないからのみアクセス可能
  • package private: 同じパッケージからのみアクセス可能
  • protected: 同じパッケージ内もしくはサブクラスからのみアクセス可能
  • public: どこからでもアクセス可能
でもprivateにしちゃったらフィールドの値を取り出すだけでなく、アクセスすらできなくなっちゃうじゃん! そこで必要なのがgetterメソッドとsettrメソッド

getterとsetter

read only、write onlyのフィールドを実現できる フィールドの名前などクラスの内部設計などを自由に変更できる フィールドへのアクセスを検査できる

getter

クラスの内のフィールドの値を取り出すだけのクラス 実行結果

setter

クラス内のフィールドに値をセットするだけのクラス 実行結果 setterとgetterにより不正な操作を防ぐことができる

クラスに対するアクセス制御

  • public
  • package private
非publicクラスの特徴
1, ファイル名=クラス名でなくてもいい
2, 一つのソースファイルに複数宣言してもよい

じゃあ結局カプセル化って何?

外部からフィールドの操作をされないようにメソッドによってフィールドを保護すること いい感じで復習できた♫

Makoto

2年目のダフったエンジニアです。 主にwebやっとります!最近はswiftだったりいろいろ勉強中! ネズミが毎月1匹づつ増えるアパートに同居人のヨリコ(霊体)と住んでいます。 アニメ、マンガ、映画が好き 特にSF系は大好物です! 夢は義体化と電脳化!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です