在Java中,我们可以将顶级类声明为protected或private吗?

在Java中,我们可以将顶级类声明为protected或private吗?

不,我们不能将顶级类声明为私有或受保护。它可以是公共或默认(无修饰符)。如果没有修饰符,则应该具有默认访问权限。

语法

// A top level class
public class TopLevelClassTest {
// Class body
}

登录后复制如果将一个顶级类声明为私有(private),编译器将会报错,提示“在此处不允许使用修饰符private”。这意味着顶级类不能是私有的,同样也适用于protected访问修饰符。

protected意味着该成员可以被同一个包中的任何类以及子类访问,即使它们位于另一个包中。

顶级类只能有public、abstract和final修饰符,也可以不定义任何类修饰符。这被称为默认/包访问权限。

我们可以将内部类声明为私有或受保护,但不允许在外部类中这样做
classes.

  • 一个Java源文件中可以定义多个顶级类,但最多只能有一个 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 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)其它相关文章!