代码之家  ›  专栏  ›  技术社区  ›  hhh

Java公共/私有和静态修饰符如何影响一行中声明的多个变量?

  •  3
  • hhh  · 技术社区  · 16 年前

    以下是否等效?

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

    private static boolean readAllFiles = false,readAllDirs = true;
    
    2 回复  |  直到 16 年前
        1
  •  9
  •   Kip    16 年前

    是的,不管它们的初始值是多少,它们都是等价的。

    下面是一些测试代码来演示:

    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
  •  4
  •   ryanprayogo    16 年前

    它们都是等价的。

    你的最后陈述:

    private static boolean readAllFiles = false,readAllDirs = true;
    

    相当于:

    private static boolean readAllFiles = false;
    private static boolean readAllDirs = true;
    
    推荐文章