在 Java 中,能否将顶级类声明为 protected 或 private?\n
否,我们不能将顶级类声明为private 或 protected。它可以是public 或默认(无修饰符)。如果它没有修饰符,则假定其具有默认访问权限。
语法
// A top level class
public class TopLevelClassTest {
// Class body
}- 如果将顶级类声明为private,编译器会报错“此处不允许使用修饰符 private”。这意味着顶级类不能是 private,同样的规则也适用于protected访问修饰符。
- Protected表示成员可以被同一包中的任何类以及子类访问,即使子类位于另一个包中。
- 顶级类只能具有public、abstract和final修饰符,也可以根本不定义任何类修饰符。这称为默认/包访问权限。
- 我们可以将内部类声明为private或protected,但外部类不允许这样做。
- 可以在一个 Java 源文件中定义多个顶级类,但最多只能有一个public 顶级类声明。文件名必须与 public 类的名称匹配。
将类声明为 Protected
示例
protected class ProtectedClassTest {
int i = 10;
void show() {
System.out.println("Declare top-level class as protected");
}
}
public class Test {
public static void main(String args[]) {
ProtectedClassTest pc = new ProtectedClassTest();
System.out.println(pc.i);
pc.show();
System.out.println("Main class declaration as public");
}
}在上面的示例中,如果我们尝试将类声明为protected,它将抛出一个错误,提示“此处不允许使用修饰符 protected”。因此,以上代码无法执行。
输出
modifier protected not allowed here
将类声明为 Private
示例
private class PrivateClassTest {
int x = 20;
void show() {
System.out.println("Declare top-level class as private");
}
}
public class Test {
public static void main(String args[]) {
PrivateClassTest pc = new PrivateClassTest();
System.out.println(pc.x);
pc.show();
System.out.println("Main class declaration as public");
}
}在上面的示例中,如果我们尝试将类声明为private,它将抛出一个错误,提示“此处不允许使用修饰符 private”。因此,以上代码无法执行。
输出
modifier private not allowed here
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP