2010-04-29 49 views
3

以下是否相同?Java公共/私有和静态修饰符如何影响在一行上声明的多个变量?

private static boolean readAllFiles = false,readAllDirs = false; 

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

如果是这样,他们仍然有不同的修饰符值不同吗?

private static boolean readAllFiles = false,readAllDirs = true; 
+5

快速注 - 大多数人认为第二种方式 - 多线 - 是“更好”或更正确,如它更容易阅读。更明确通常更好,代码文件大小通常不是问题(假设您正在遵循其他最佳实践) – aperkins 2010-04-29 20:49:31

回答

9

是的,它们是等价的,不管它们的初始值如何。

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

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); 
    } 
} 
3

他们都是等价的。

你的最后一句话:

private static boolean readAllFiles = false,readAllDirs = true; 

等同于:

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