不,我们不能将顶级类声明为私有或受保护。它可以是公共或默认(无修饰符)。如果没有修饰符,则应该具有默认访问权限。
语法
// A top level class
public class TopLevelClassTest {
// Class body
}
登录后复制如果将一个顶级类声明为私有(private),编译器将会报错,提示“在此处不允许使用修饰符private”。这意味着顶级类不能是私有的,同样也适用于protected访问修饰符。
protected意味着该成员可以被同一个包中的任何类以及子类访问,即使它们位于另一个包中。
顶级类只能有public、abstract和final修饰符,也可以不定义任何类修饰符。这被称为默认/包访问权限。
我们可以将内部类声明为私有或受保护,但不允许在外部类中这样做
classes.
将类声明为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 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中,我们可以将顶级类声明为protected或private吗?的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!