###カプセル化とは
参考: 「徹底攻略 Java SE 11 Silver 問題集」から引用:
カプセル化は、ソフトウェアを分割する際に、関係するデータとそのデータを必要する処理を1つにまとめ、無関係なものや関係性の低いものをクラスから排除することで「何のためのクラスなのか?」というクラスの目的を明確化するために行い、ほかのクラスに重複するデータや処理がない状態を目指すもの。
修飾子
private 設定するとクラス外からアクセスする事ができなくなる(クラス内では可能) 非公開状態
public クラスの外からでもアクセスする事が可能
ユーザが入力した値が0から10の場合private変数numに代入し表示する
class Number {
private int num;//外からはアクセスできなくする
public void setNum(int n){
if(n >= 0&&n <= 10){
num = n;
}else{
system.out.println("入力された値は無効です。");
}
}
public int getNum(){//
return num; //戻り値を返す
}
}
import java.io.*;
class Sample {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new inputstreamreader(system.in))
String str = br.readLine();//8を入力した事にします。
n = Integer.parseInt(str);
Number nb1 = new Number();
//このようなアクセスはできない
//nb1.num = 8;
nb1.setNum(n);
system.out.println("入力された値は"+nb1.getNum()+"です。");
}
}
private変数を更新する為に同じクラス内のpublicメソッドを使い条件式を設定し通過した変数にのみ変数を更新する事で誤った値の更新を防ぐ事ができる。