公众或没有

El3*_*1c4 1 java oop public-method

在java中,为了使我们的变量或方法公开,我们真的必须这样做吗?例如:

void aaa() {
...
}
Run Code Online (Sandbox Code Playgroud)

要么

public void aaa() {
...
}
Run Code Online (Sandbox Code Playgroud)

如果是必须的,为什么?

Jon*_*eet 12

那不是变量,这是一种方法 - 但是,你必须这样做才能使方法公开.如果不这样做,则它具有默认的包访问权限,并且无法从其他包访问.您应该自己判断您编写的任何特定方法是否只能在同一个类(make it private)中访问子类(make it protected),包(保留默认值;不能明确地声明包访问)或者对一切(做它public).

(这是访问修饰符的略微简化,但它是一个开始.)

至于为什么会出现这种情况 - 通常你应该限制可见性,这样你的类型只会公开那些对它试图封装的概念有意义的方法.您可能有更多私有方法,这些方法是特定于实现的,外部世界不应该知道或关心它们.

  • @JonSkeet我认为人们有时会对你的答案进行投票,以检查Stackoverflow的投票功能是否适用于你的答案! (2认同)

Ner*_*mas 6

您可以ommmit访问级别关键字

您可以在除main main方法之外的任何地方ommmit访问级别修改器.它必须设置为公开.


Cam*_*Cam 5

不把改性剂实际上是不同的public,privateprotected.

如果没有修饰符,则只有类本身和同一个包中的任何类都可以访问该属性.

在这里了解更多:在Java中,默认,公共,受保护和私有之间的区别