2010-04-29 16 views
3

L'équivalent suivant est-il?Comment les modificateurs publics/privés et statiques Java affectent-ils plusieurs variables déclarées sur une ligne?

private static boolean readAllFiles = false,readAllDirs = false; 

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

Et si oui, ont-ils toujours les mêmes modificateurs avec des valeurs différentes?

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

Note rapide - la plupart des gens considèrent la deuxième façon - les multiples lignes - être le "meilleur" ou plus correct, comme c'est plus facile à lire. Le plus explicite est généralement meilleur, et la taille du fichier de code n'est généralement pas un problème (en supposant que vous suiviez d'autres bonnes pratiques) – aperkins

Répondre

9

Oui, ils sont équivalents, quelles que soient leurs valeurs initiales.

Voici un code de test pour démontrer:

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

Ils sont tous équivalents.

Votre dernière déclaration:

private static boolean readAllFiles = false,readAllDirs = true; 

équivaut à:

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