LoginSignup
1
0

More than 3 years have passed since last update.

Java カプセル化について private public

Last updated at Posted at 2020-09-16

カプセル化とは

参考: 「徹底攻略 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メソッドを使い条件式を設定し通過した変数にのみ変数を更新する事で誤った値の更新を防ぐ事ができる。

1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0