可能重复:
Java的:为什么我们可以定义一个顶层类为私有?
为什么我们不能宣布一个私人外部类? 如果我们能有内部私有类,那么我们为什么不能有外部私有类...?
可能重复:
Java的:为什么我们可以定义一个顶层类为私有?
为什么我们不能宣布一个私人外部类? 如果我们能有内部私有类,那么我们为什么不能有外部私有类...?
私人外部类将是无用的没有什么可以访问它。
查看更多详细信息:
Java的:为什么我们可以定义一个顶层类为私有?
要回答你的问题:
如果我们能有内部私有类,那么我们为什么不能有外部私有类...?
你可以,区别在于,内部类是在“类”访问级别,而“外”类的“一揽子”访问级别。 从甲骨文教程 :
如果一个类没有修饰符(默认值,也称包私有),只在其自己的包是可见的(包名为相关类的群体 - 你会了解他们在后面的课程。)
因此,包私有(声明没有修饰符)是您所期待的宣布了“外”类私人的效果,语法只是不同而已。
private
改性剂会使你的类从外部访问,这样就不会是这个任何好处,我想这就是为什么它是非法的,只有public
, abstract
和final
被允许的。
注意:即使你不能让它protected
。
您可以。
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
}
你不能有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
。 所以,如果你不想用“倒闭潮”,使用静态内部类。
私人使得类访问只能在声明它的类。 如果我们整个班级私人从外面任何人都不能访问类,使之无用。
内部类可以由私人因为外部类可以访问内部类的地方,因为它是不是如果你让外部类的私人用的情况。