2010-04-29 2 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

Quick примечание - большинство людей считают второй путь - множественные линии - чтобы быть «лучше» или более правильно, так как его легче читать. Чем яснее, тем лучше, и размер файла кода обычно не является проблемой (если вы придерживаетесь других лучших практик) – aperkins

ответ

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; 
Смежные вопросы