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

2023年 9月 12日 33.6k 0

在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)其它相关文章!

    相关文章

    JavaScript2024新功能:Object.groupBy、正则表达式v标志
    PHP trim 函数对多字节字符的使用和限制
    新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
    使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
    为React 19做准备:WordPress 6.6用户指南
    如何删除WordPress中的所有评论

    发布评论