What is the result?

Given this code from Class B:

25. A a1 = new A();
26. A a2 = new A();
27. A a3 = new A();
28. System.out.println(A.getInstanceCount());

What is the result?

1. public class A{
2.
3. private int counter = 0;
4.
5. public static int getInstanceCount() {
6. return counter;
7. }
8.
9. public A() {
10. counter++;
11. }
12.
13. }

Given this code from Class B:

25. A a1 = new A();
26. A a2 = new A();
27. A a3 = new A();
28. System.out.println(A.getInstanceCount());

What is the result?

1. public class A{
2.
3. private int counter = 0;
4.
5. public static int getInstanceCount() {
6. return counter;
7. }
8.
9. public A() {
10. counter++;
11. }
12.
13. }

A.
Compilation of class A fails.

B.
Line 28 prints the value 3 to System.out.

C.
Line 28 prints the value 1 to System.out.

D.
A runtime error occurs when line 25 executes.

E.
Compilation fails because of an error on line 28.

Explanation:
counter variable is being used inside a static context.



Leave a Reply 1

Your email address will not be published. Required fields are marked *


fjbo221

fjbo221

TestQ92.java:6: error: non-static variable counter cannot be referenced from a static context
return counter;
^