工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Java

Javaアクセス修飾子の完全ガイド:種類、ルール、実践例

Javaアクセス修飾子

このチュートリアルでは、Javaのアクセス修飾子の4つの種類と、明確な例を通じてその使用方法を解説します。

アクセス修飾子とは?

Javaにおいて、アクセス修飾子はクラス、インターフェース、変数、メソッド、コンストラクタ、データメンバの可視性を定義します。例えば、

class Animal { public void method1() {...} private void method2() {...} }

上記の例では、method1はpublicであり、どのクラスからでもアクセス可能です。method2はprivateであり、定義されたクラス内のみに制限されます。

これらのキーワード(publicとprivate)は、Javaにおけるコアな可視性修飾子です。

注意: ゲッターメソッド自体をアクセス修飾子で宣言することはできません。


アクセス修飾子の種類

修飾子の詳細に入る前に、Javaパッケージの理解を確認しておきましょう。

Javaには4つの主要な可視性修飾子があります:

修飾子説明
デフォルト(package‑private)同じパッケージ内でのみ可視。
Private宣言したクラス内でのみ可視。
Protected同じパッケージ内と、他パッケージのサブクラスで可視。
Publicどこからでも可視。

デフォルトアクセス修飾子

修飾子を指定しない場合、Javaはデフォルト(package‑private)の可視性を適用します。例えば:

package defaultPackage; class Logger { void message() { System.out.println("This is a message"); } }

LoggerクラスはdefaultPackage内のクラスからのみアクセス可能です。別のパッケージから使用しようとするとコンパイルエラーになります。


Privateアクセス修飾子

メンバをprivateで宣言すると、そのアクセスは含むクラス内に限定されます:

class Data { private String name; } public class Main { public static void main(String[] args) { Data d = new Data(); d.name = "Programiz"; // ❌ コンパイルエラー } }

このエラーは、nameがDataクラスのprivateであるため発生します。安全に公開するには、アクセサメソッドを提供します:

class Data { private String name; public String getName() { return this.name; } public void setName(String name) { this.name = name; } } public class Main { public static void main(String[] args) { Data d = new Data(); d.setName("Programiz"); System.out.println(d.getName()); } }

出力:

The name is Programiz

なお、ネストされたクラスはprivateで宣言できますが、トップレベルのクラスやインターフェースはできません。

注意: Javaでは、トップレベルのクラスやインターフェースをprivateにすることはできません。


Protectedアクセス修飾子

protectedでマークされたメンバは、同じパッケージ内と、他パッケージのサブクラスで可視です。例:

class Animal { protected void display() { System.out.println("I am an animal"); } } class Dog extends Animal { public static void main(String[] args) { Dog dog = new Dog(); dog.display(); // ✅ 許可される } }

出力:

I am an animal

Protectedメンバは、トップレベルのクラスやインターフェースで宣言できません。

注意: トップレベルのクラスとインターフェースはprotectedにできません。


Publicアクセス修飾子

publicで宣言されたメンバは、どこからでもアクセス可能です:

// Animal.java public class Animal { public int legCount; public void display() { System.out.println("I am an animal."); System.out.println("I have " + legCount + " legs."); } } // Main.java public class Main { public static void main(String[] args) { Animal animal = new Animal(); animal.legCount = 4; animal.display(); } }

出力:

I am an animal. I have 4 legs.

まとめ:Animal(publicクラス)、legCount(publicフィールド)、display()(publicメソッド)はすべてMainからアクセス可能です。


アクセス修飾子を一枚の図でまとめる

Javaアクセス修飾子の完全ガイド:種類、ルール、実践例

アクセス修飾子はカプセル化の基盤であり、開発者が可視性を制御し、データの整合性を保護することを可能にします。カプセル化について詳しくは、Java Encapsulationを参照してください。

Java

  1. C# アクセス修飾子を理解する:public、private、protected、internal など
  2. Java演算子をマスター:種類、構文、実践例
  3. Javaコメント:種類、使い方、ベストプラクティス
  4. Java拡張forループをマスター:構文、例、ベストプラクティス
  5. Java文字列をマスター:生成、メソッド、ベストプラクティス
  6. Javaインターフェース完全ガイド:概念、実装、ベストプラクティス
  7. Java無名インナークラス完全ガイド:定義、構文、実践例
  8. Javaのtry-with-resourcesをマスターする:自動リソース管理の仕組みと活用法
  9. Javaアノテーション完全ガイド:種類、配置場所、実践例
  10. Javaアサーション完全ガイド:バグ早期発見とコード信頼性の向上
  11. Java Vectorの理解:使い方、特徴、ArrayListとの比較