前回までの学び JAVA学習の記録③ 【ゲッターとセッター】
カプセル化とは
クラスが持つデータ(JAVAではフィールド)とそのデータを直接操作する処理をクラス内に限定し、独立性を高める考え方のこと。
カプセルなしの場合
カプセル化をすると!
イメージ的にはこんな感じです。カプセルでクラス全体を包み込んで直接フィールドの値を変更するのを防ぐ感じです。
カプセル化の基本的なやり方としては、
・フィールド変数のアクセス修飾子をprivateにする。
・メソッドのアクセス修飾子をpublicにする。
です。そして、フィールド変数の値を変更するためのメソッドとして、ゲッターとセッターを用いて行います。
アクセス修飾子とは
アクセス修飾子とは、public、protected、privateといった修飾子の総称で、クラスやそのメンバーがどこからアクセス可能であるかを決定する。
アクセス修飾子を指定したフィールドの定義
private int num;
アクセス修飾子 フィールドの型 フィールド名;
アクセス修飾子を指定したメソッドの定義
private void setAge(int dogAge){
//処理
}
アクセス修飾子 戻り値の型 メソッド名 引数リスト {
//処理
}
アクセス修飾子によるアクセス許可の範囲
アクセス修飾子 | アクセスを許可する範囲 |
---|---|
private | クラス内のみ |
記述なし | 同じパッケージ内のクラス |
public | すべてのクラス |
protected | 現在のクラスとサブクラスからアクセスできる |
カプセル化の原則にしたがったクラス
Dog.java
public class Dog {
private String name; //フィールドはprivate
public void setName(String dogName){ //publicなセッター
name = dogName;
}
public String getName() { //publicなゲッター
return name;
}
}
Dogcapsulation.java
public class DogCapsulation {
public static void main(String[] args) {
Dog pochi = new Dog();
pochi.setName("ポチ"); //setNameメソッドを呼び出す
System.out.println(pochi.getName()); //getNameメソッドを呼び出す
}
}
出力結果
ポチ
フィールのアクセス修飾子をprivateにし、セッターを用いて値の設定、ゲッターを用いて値の取得を行いました。
参考文献
「いちばんやさしいJAVAの教本」著者 石井真