【问题标题】:Does Java require keyword "public" in class variables? [closed]Java 是否需要在类变量中使用关键字“public”? [关闭]
【发布时间】:2013-11-27 16:19:10
【问题描述】:

我知道在 JavaScript 中,您不需要在以下代码中使用 public 关键字:

class myClass
{
  public int myVariable;
  // it is the same as :
  int myVariable
}

你在 Java 中需要它吗?它的目的是什么?

【问题讨论】:

  • 查看前缀的简单解释:stackoverflow.com/questions/215497/…
  • 来一个家伙。这个问题已经在 SO 上被问过并回答了十几次。做一些研究并停止垃圾邮件。
  • @mwhs 当有人向我发新帖时,我想给他们一个简短的答案(就像我的一样),它包含的内容足以让他们朝着正确的方向搜索,但不会太长,它会浪费我的时间.其余的只是围绕简单问题的秃鹰。 :P
  • @AlecTeal,你应该投票给秃鹰,以防止你的声誉被不当稀释。
  • @mwhs,虽然我祝贺你能够剪切和粘贴,但欢迎你对这个问题投反对票。但是为什么要像行刑队一样对每个答案都投反对票呢?你真的只是说“nuff”吗?这不再像 20 年前那样酷了。接下来你会用“你无法处理真相”来打击我们吗?

标签: java class oop public


【解决方案1】:

http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

然而,公共字段是个坏主意(在多线程应用程序中是一个非常个坏主意)。它允许其他类在没有任何控制的情况下更改您的类的状态,并且可能会破坏不变量。正确的做法是通过公共 setter 方法控制状态变化。

【讨论】:

  • 投反对票的人能评论一下为什么吗?
  • 链接/标记是这个问题的正确答案。
  • 这不知怎的让我的回答无效?我知道这是正确的!
  • 嗨尼克,无效可能是正确的术语,是的。虽然从上下文不敏感的角度来看它可能是正确的,但答案的整体评级/评分应该是上下文敏感的,否则 SO 将在长期内失败。用同样的答案一次又一次地回答同样的问题是绝对没有价值的。这就是为什么我不赞成你的回答。
【解决方案2】:

您不需要“public”关键字 - 如果您不指定 Class 变量的访问级别,它将被设置为 package-private。

更多细节在这里 - http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

【讨论】:

    【解决方案3】:

    是的,如果您希望某些东西随处可见。

    否则它是包可见性,这意味着只有同一个包中的东西(在某种程度上)可以访问它。

    【讨论】:

    • 喜欢无法解释的反对票。
    • 今天也有一个,一定有一个投反对票的巨魔潜伏在附近:)
    • @2Dee 我知道它不详细,但不应该如此,这个问题可以通过搜索来解决,甚至不仅仅是 SO。我喜欢为新用户提供此类问题的答案,因为它为他们指明了正确的方向,但又不会浪费时间。我希望其他人也这样做。
    • 完全同意...先生,您应该为良好的精神点赞!
    • @2Dee 希望将某人转变为我的方式(如果只是简短地回答重复,然后通常继续前进 - 这是一个例外)当一个好问题出现时stackoverflow.com/questions/18543980/… - 我不是秃鹫为容易的人盘旋!您可以说出一个简单的答案,因为它会在问题提出 2 分钟后的 4 秒内从 0 到 4 个答案:P
    猜你喜欢
    • 2021-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-26
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 2023-02-17
    相关资源
    最近更新 更多