LoginSignup
0
0

More than 1 year has passed since last update.

JAVA学習の記録④ 【カプセル化】

Posted at

前回までの学び JAVA学習の記録③ 【ゲッターとセッター】

カプセル化とは

クラスが持つデータ(JAVAではフィールド)とそのデータを直接操作する処理をクラス内に限定し、独立性を高める考え方のこと。

カプセルなしの場合2023-03-11 (1).png
カプセル化をすると!2023-03-11 (2).png
イメージ的にはこんな感じです。カプセルでクラス全体を包み込んで直接フィールドの値を変更するのを防ぐ感じです。

カプセル化の基本的なやり方としては、
・フィールド変数のアクセス修飾子を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の教本」著者 石井真

0
0
0

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
0
0