【问题标题】:How do Java public/private and static modifiers affect multiple variables declared on one line?Java public/private 和 static 修饰符如何影响在一行上声明的多个变量?
【发布时间】:2011-02-13 23:53:53
【问题描述】:

以下是等价的吗?

private static boolean readAllFiles = false,readAllDirs = false;

private static boolean readAllFiles = false;
private static boolean readAllDirs = false;

如果是这样,它们是否仍然具有具有不同值的相同修饰符?

private static boolean readAllFiles = false,readAllDirs = true;

【问题讨论】:

  • 快速说明 - 大多数人认为第二种方式 - 多行 - 是“更好”或更正确的,因为它更容易阅读。越明确通常越好,代码文件大小通常不是问题(假设您遵循其他最佳实践)

标签: java syntax static declaration access-modifiers


【解决方案1】:

是的,无论初始值如何,它们都是等价的。

这里有一些测试代码来演示:

public class TestClass
{
  private static boolean readAllFiles = false,readAllDirs = true;

  public static void main(String[] args)
  {
    //these two would result in COMPILE error if both vars were not static
    System.out.println("readAllFiles: " + readAllFiles);
    System.out.println("readAllDirs: " + readAllDirs);
  }
}

public final class TestClass2
{
  public static void main(String[] args)
  {
    //these two DO result in COMPILE error, because both vars are private
    System.out.println("TestClass.readAllFiles: " + TestClass.readAllFiles);
    System.out.println("TestClass.readAllDirs: " + TestClass.readAllDirs);
  }
}

【讨论】:

    【解决方案2】:

    它们都是等价的。

    你的最后一句话:

    private static boolean readAllFiles = false,readAllDirs = true;
    

    相当于:

    private static boolean readAllFiles = false;
    private static boolean readAllDirs = true;
    

    【讨论】:

      猜你喜欢
      • 2011-09-20
      • 2013-12-05
      • 1970-01-01
      • 1970-01-01
      • 2021-06-11
      • 1970-01-01
      • 1970-01-01
      • 2010-11-22
      • 2010-10-17
      相关资源
      最近更新 更多