我只是关于它: 如果你有这样的课程:
public class a
{
int x = 5;
//setter & getter
}
除非是public
,否则您无法从其他类访问x
所以,我知道,但如果是这样,为什么我需要使用private
?
如果没有public
或其他情况static
保留字,则无法在课外访问x变量。
所以,问题:
我需要private
为什么?
我是否必须使用private
或者它并不重要?
答案 0 :(得分:3)
没有访问说明符与private
不相同。
当您没有访问说明符时,如示例中所示,变量x
可以在类a
中访问,但也可以在与类{{1}相同的包中的所有其他类中访问}。
如果是a
,则只能在课程private
中访问,而不能在任何其他课程中访问。
请参阅Oracle Java教程中的Controlling Access to Members of a Class。
答案 1 :(得分:0)
通过省略访问修饰符,您依赖于语言的默认值。
例如,在C#类中,变量默认为private。
答案 2 :(得分:0)
最常用的access modifiers无疑是public
和private
。
public
表示您将字段或方法公开给其他所有类。这对于让类执行其主要功能所必需的方法很有用,在某些情况下,对于需要可见的常量非常有用。
private
表示您将该成员隐藏在其他所有类中。这对于其他类不了解的内部状态和函数很有用。这强制执行information hiding
。
其他修饰符protected
和默认值(未提及修饰符时)是中间访问级别,在特定情况下可能很有用。
例如,当子类需要访问父(或基类)类中的方法并且您不希望其他类能够访问它时,您可以将其设为protected
。
默认访问修饰符比protected
更具限制性,可用于仅允许从同一个包中访问。如果包中包含一组紧密相关的类,这些类需要通过您不想在其他地方公开的方法相互交互,甚至不包含在此包之外的子类,这可能很有用。
也许您也会受益于this article。
答案 3 :(得分:-1)
这个问题已在this link的stackoverflow中得到解答。
java中有4种访问限制:
有必要声明可访问性范围以正确封装功能。