Java 中的默认访问修饰符
在本教程中,我们将讨论 Java 中的默认访问修饰符。顾名思义,当我们不使用变量或函数指定任何人时,使用访问修饰符。
Java 中的默认访问修饰符
Java 中有四种类型的 access
修饰符,private
、protected
、public
和 default
。要理解 default access
修饰符,我们需要知道为什么我们需要它以及不同条件下的其他修饰符。
private access
修饰符是最严格的,因为它只允许访问同一个类。当我们不知道 class
变量或函数将不会在我们所在的类之外的任何其他地方使用时,我们会使用它。
protected access
修饰符允许在类或同一个包内访问,但只有其他包的子类可以访问。
当我们希望它对包中的所有类都可用但不希望任何其他包访问
时使用它。
正如你所猜测的,public access
修饰符允许全局访问,这意味着我们可以在任何地方访问它,甚至可以从其他包访问。
当我们不使用上述任何内容时,default access
修饰符就会发挥作用。它的访问级别仅限于同一个包,其他包即使创建子类也无法访问。
让我们看一个 default access
修饰符的示例以及它是如何工作的。我们有两个类,ExampleClass1
和 ExampleClass2
。第一个类包含一个没有任何访问修饰符的变量,称为 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