What is the result of compiling and running the following code?
public class Tester{
static int x = 4;
int y = 9;
public Tester(){
System.out.print(this.x); // line 1
printVariables();
}
public static void printVariables(){
System.out.print(x); // line 2
System.out.print(y); // line 3
}
public static void main(String... args) { // line 4
new Tester();
}
}
public class Tester{
static int x = 4;
int y = 9;
public Tester(){
System.out.print(this.x); // line 1
printVariables();
}
public static void printVariables(){
System.out.print(x); // line 2
System.out.print(y); // line 3
}
public static void main(String... args) { // line 4
new Tester();
}
}
A. Compile error at line 1 (static x must be only accessed inside static methods)
B. Compile error at line 3 (static methods can't make reference to non-static variables)
C. Compile error at line 4 (invalid argument type for method main)
D. 49
E. Compile error at line 2 (must access x by writing Tester.x)
Answer: Option B
Solution(By Examveda Team)
static methods cannot make references to non-static variables.
Related Questions on Declaration and Access Control
What is the default access modifier for class members in Java if no access modifier is specified?
A. public
B. protected
C. private
D. package-private
A. private
B. public
C. protected
D. package-private
What keyword is used to declare a constant in Java, which is implicitly final and static?
A. final
B. const
C. static
D. constant
A. protected
B. private
C. public
D. default
Join The Discussion