0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Java】修飾子の違いまとめ(public, private, protected)

0
Last updated at Posted at 2026-02-21

public

別クラスからアクセス可能

class Human{
  //別クラスからアクセス可能
  public int age;
}

class Main {
  public static void main(String[] args){
    
    Human yamada = new Human();
    yamada.age = 10;

    System.out.print("山田さんは" + yamada.age + "歳です");
  }
}

//結果:山田さんは10歳です

private

同一クラスのみアクセス可能

成功例
class Human{
  //同一クラスのみアクセス可能
  private int age;

  public void setAge(int age){
    this.age = age;
  }

  public int getAge(){
    return this.age;
  }
}

class Main {
  public static void main(String[] args){
    
    Human yamada = new Human();
    yamada.setAge(10);

    System.out.print("山田さんは" + yamada.getAge() + "歳です");
  }
}
//結果:山田さんは10歳です
失敗例
class Human{
  //同一クラスのみアクセス可能
  private int age;
}

class Main {
  public static void main(String[] args){
    
    Human yamada = new Human();
    //↓別クラスのためアクセスできない
    yamada.age = 10;
    //                              ↓別クラスのためアクセスできない
    System.out.print("山田さんは" + yamada.age + "歳です");
  }
}
//結果:Main.java:9: error: age has private access in Human

protected

継承先からアクセス可能

成功例
class Human{
  //継承先からアクセス可能
  protected String name;
}

class Teacher extends Human{

  public void Greeting(String name){

    super.name = name;
    System.out.print("私の名前は" + super.name + "です");     
  }
}

class Main {
  public static void main(String[] args){
    
    Teacher yamada = new Teacher();
    yamada.Greeting("山田");
  }
}
//結果:山田さんは10歳です
失敗例
class Human{
  //継承先からアクセス不可能
  private String name;
}

class Teacher extends Human{

  public void Greeting(String name){
    //↓privateのためアクセスできない
    super.name = name;
    //                              ↓privateのためアクセスできない   
    System.out.print("私の名前は" + super.name + "です");     
  }
}

class Main {
  public static void main(String[] args){
    
    Teacher yamada = new Teacher();
    yamada.Greeting("山田");
  }
}
//結果:Main.java:11: error: name has private access in Human
//   Main.java:12: error: name has private access in Human

まとめ

public:別クラスからアクセス可能
private:同一クラスのみアクセス可能
protected:継承先へアクセス可能

同一クラス 別クラス 継承元
public T〇
private × ×
protected ×
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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?