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

Rupam Yadav 2023年10月12日
Java のデフォルトのアクセス修飾子

このチュートリアルでは、Java のデフォルトのアクセス修飾子について説明します。この名前は、変数または関数で誰も指定しない場合にアクセス修飾子が使用されることを示しています。

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

Java の access 修飾子には、privateprotectedpublic、および default の 4つのタイプがあります。defaultアクセス修飾子を理解するには、なぜそれが必要なのか、そしてさまざまな条件で他の修飾子が必要なのかを知る必要があります。

privateアクセス修飾子は、同じクラスへのアクセスのみを許可するため、最も厳密です。class変数または関数が、現在のクラス以外の場所で将来使用されないことがわからない場合に使用します。

protectedアクセス修飾子は、クラスまたは同じパッケージ内のアクセスを許可しますが、他のパッケージのサブクラスのみがアクセスできます。

これは、パッケージ内のすべてのクラスで使用できるようにしたいが、他のパッケージアクセスは必要ない場合に使用されます。

ご想像のとおり、publicアクセス修飾子はグローバルアクセスを許可します。つまり、他のパッケージからでも、どこからでもアクセスできます。

上記を使用しない場合、defaultアクセス修飾子が機能します。そのアクセスレベルは同じパッケージに制限されており、他のパッケージはサブクラスを作成してもアクセスできません。

defaultアクセス修飾子の例とその仕組みを見てみましょう。ExampleClass1ExampleClass2 の 2つのクラスがあります。最初のクラスには、randomString と呼ばれるアクセス修飾子のない変数が含まれています。

ここで、ExampleClass2 クラスで、関数を作成し、ExampleClass1 のオブジェクトを作成して randomString 変数にアクセスします。私たちはそれを行うことができ、エラーはありません。これは、両方のクラスが同じパッケージに含まれているために発生します。

クラスの上部にあるパッケージ名 com.package に注意してください。

Java で ExampleClass1 を使用する

package com.tutorial;

public class ExampleClass1 {
  String randomString = "This is a string from Example Class1";

  public static void main(String[] args) {
    String getReturnedString = new ExampleClass2().functionWithDefaultAccessModifier();
    System.out.println(getReturnedString);
  }
}

Javaで ExampleClass2 を使用します。

package com.tutorial;

public class ExampleClass2 {
  String functionWithDefaultAccessModifier() {
    return new ExampleClass1().randomString;
  }
}

出力:

This is a string from Example Class1

randomString は、上記のシナリオの同じパッケージ内の別のクラスからアクセスできます。

それでも、別のパッケージ com.tutorial2 にあるクラスから com.tutorial パッケージにある ExampleClass1randomString 変数にアクセスしようとすると、IDE はエラーをスローします。randomString は公開されておらず、パッケージの外部からアクセスすることはできません。

著者: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn