Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do Java public/private and static modifiers affect multiple variables declared on one line?

Are the following equivalent?

private static boolean readAllFiles = false,readAllDirs = false;

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

And if so, do they still have the same modifiers with different values?

private static boolean readAllFiles = false,readAllDirs = true;
like image 689
hhh Avatar asked Dec 12 '22 22:12

hhh


2 Answers

Yes, they are equivalent, regardless of their initial values.

Here is some test code to demonstrate:

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);
  }
}
like image 151
Kip Avatar answered Apr 30 '23 08:04

Kip


They are all equivalent.

Your last statement:

private static boolean readAllFiles = false,readAllDirs = true;

is equivalent to:

private static boolean readAllFiles = false;
private static boolean readAllDirs = true;
like image 23
ryanprayogo Avatar answered Apr 30 '23 06:04

ryanprayogo