是类默认情况下,Java和C ++的私人或公共?
Answer 1:
Java的 :
默认情况下,类能见度包私有,即仅适用于在同一包中的类可见。
C ++:
这个类有没有像Java定义的知名度。 如果你提供他们的编译单元,他们是可见的。
Answer 2:
在Java中, 顶级类是公共的或不公开。 没有“私人”。 您只能使用public关键字或将其关闭。 如果你把它关闭它是不公开的,也就是说,仅可见在同一个包的其他类。
嵌套类,也就是另一个类的内部类,可以公开,包私有,保护,或私人的,就像任何其他类别的成员。 默认值(即一个不带修饰)是包不公开,只有在同一个包中的类。
编辑:忘了C ++的答案,所以看到(和给予好评)@泽勒的答案。 :)
Answer 3:
根据该JLS的§6.6.1 ,
如果顶层类或接口类型未声明公开,则可以仅从在声明它在包装内访问。
所以,一个Java类是默认的包和私营部门 。
这并不适用于C ++,但是。 一类缺乏可见性 - 只有其成员可以访问控制。 请参阅有关成员访问控制信息中的C ++ 11标准的§11。 下面是¶1摘录...
一个类的成员可以是
private
; 也就是说,它的名字只能在声明它的类的成员和朋友使用。protected
; 也就是说,它的名称只能由成员在声明它的类,从该类派生类的朋友使用,并通过他们的朋友(见11.4)。public
; 也就是说,它的名字可以在任何地方使用,无需访问限制。
文章来源: Is a class private or public by default in Java and C++?