私有类的声明[复制](Private class declaration [duplicate])

2019-08-16 17:23发布

可能重复:
Java的:为什么我们可以定义一个顶层类为私有?

为什么我们不能宣布一个私人外部类? 如果我们能有内部私有类,那么我们为什么不能有外部私有类...?

Answer 1:

私人外部类将是无用的没有什么可以访问它。

查看更多详细信息:

Java的:为什么我们可以定义一个顶层类为私有?



Answer 2:

要回答你的问题:

如果我们能有内部私有类,那么我们为什么不能有外部私有类...?

你可以,区别在于,内部类是在“类”访问级别,而“外”类的“一揽子”访问级别。 从甲骨文教程 :

如果一个类没有修饰符(默认值,也称包私有),只在其自己的包是可见的(包名为相关类的群体 - 你会了解他们在后面的课程。)

因此,包私有(声明没有修饰符)是您所期待的宣布了“外”类私人的效果,语法只是不同而已。



Answer 3:

private改性剂会使你的类从外部访问,这样就不会是这个任何好处,我想这就是为什么它是非法的,只有publicabstractfinal被允许的。

注意:即使你不能让它protected



Answer 4:

您可以。

package test;

public class Test {
    public static void main(String[] args) {
        B b = new B();
    }
}

class B {
  // Essentially package-private - cannot be accessed anywhere else but inside the `test` package
}


Answer 5:

你不能有private类,但你可以有second类:

public class App14692708 {
    public static void main(String[] args) {
        PC pc = new PC();
        System.out.println(pc);
    }
}

class PC {
    @Override
    public String toString() {
        return "I am PC instance " + super.toString();
    }
}

还记得static内部类是无法区分单独的类的,除了它的名字是OuterClass.InnerClass 。 所以,如果你不想用“倒闭潮”,使用静态内部类。



Answer 6:

私人使得类访问只能在声明它的类。 如果我们整个班级私人从外面任何人都不能访问类,使之无用。

内部类可以由私人因为外部类可以访问内部类的地方,因为它是不是如果你让外部类的私人用的情况。



文章来源: Private class declaration [duplicate]