Examveda
Examveda

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

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.

Join The Discussion

Related Questions on Declaration and Access Control

Suppose a class has public visibility. In this class we define a protected method. Which of the following statements is correct?

A. This method is only accessible from inside the class itself and from inside all subclasses.

B. In a class, you cannot declare methods with a lower visibility than the visibility of the class in which it is defined.

C. From within protected methods you do not have access to public methods.

D. This method is accessible from within the class itself and from within all classes defined in the same package as the class itself.

What is the result of compiling and running the following code?

A. Compile error at line 1 (static x must be only accessed inside static methods)

B. Compile error at line 2 (constructors can't be static)

C. Compile error at line 3 (static methods can't invoke this)

D. Compile error at line 4 (invalid argument type for method main )

E. 44