Quizzes Assignments Puzzles Easy exercises Required knowledge |

< |
Java Quizzes Green = Easy, Blue = Normal, Red = Hard Select 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 By title |
> |
---|

It is important for every Java programmers to understand the difference between class(static) variables and instance variables. Therefore I wrote this quiz, which clarifies those differences.

### Java quiz 3: The difference between static and instance variables

Level: Normal

What is written to the standard output as the result of executing the following code?

public class MyClass { int x; static int y; MyClass(int i) { x += i; y += i; } public static void main(String[] args) { new MyClass(2); MyClass mc = new MyClass(3); System.out.print(mc.x + "," + mc.y); } }

###### Author: Sar Maroof

### Answer explanation

- By creating the first object, we pass the parameter value 2 to the constructor.

The statement x += i; increments the value of x by 2. the variable x is not initialized.

Therefore, x = 0 + 2 = 2.

The statement y += i; increments the value of y by 2. The initial value of y is 0, therefore y = 0 + 2 = 2. - By creating the second object mc, we pass the variable 3 as parameter to the constructor.

The statement x += i; increments the value of x by 3. The variable x is an instance variable, therefore

its value for the object mc is equal to 3.

The statement y += i; increments the value of y by 3. The variable y is a static (class) variable and its last

value was 2. Therefore the value of y becomes 2 + 3 = 5 and that value is the same for all the objects of the class.The correct answer is c. 3, 5.

## Suggested Articles

Subscribe to Sar Maroof's RSS feeds! Mail this page to a friend! Bookmark this page! |

Thanks Sir U Clear My Confusion

Thanks for your comment!