Java のデフォルトのアクセス修飾子
このチュートリアルでは、Java のデフォルトのアクセス修飾子について説明します。この名前は、変数または関数で誰も指定しない場合にアクセス修飾子が使用されることを示しています。
Java のデフォルトのアクセス修飾子
Java の access
修飾子には、private
、protected
、public
、および default
の 4つのタイプがあります。default
アクセス修飾子を理解するには、なぜそれが必要なのか、そしてさまざまな条件で他の修飾子が必要なのかを知る必要があります。
private
アクセス修飾子は、同じクラスへのアクセスのみを許可するため、最も厳密です。class
変数または関数が、現在のクラス以外の場所で将来使用されないことがわからない場合に使用します。
protected
アクセス修飾子は、クラスまたは同じパッケージ内のアクセスを許可しますが、他のパッケージのサブクラスのみがアクセスできます。
これは、パッケージ内のすべてのクラスで使用できるようにしたいが、他のパッケージアクセスは必要ない場合に使用されます。
ご想像のとおり、public
アクセス修飾子はグローバルアクセスを許可します。つまり、他のパッケージからでも、どこからでもアクセスできます。
上記を使用しない場合、default
アクセス修飾子が機能します。そのアクセスレベルは同じパッケージに制限されており、他のパッケージはサブクラスを作成してもアクセスできません。
default
アクセス修飾子の例とその仕組みを見てみましょう。ExampleClass1
と ExampleClass2
の 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
パッケージにある ExampleClass1
の randomString
変数にアクセスしようとすると、IDE
はエラーをスローします。randomString
は公開されておらず、パッケージの外部からアクセスすることはできません。
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