Consider the following class:
public class IdentifyMyParts {
public static int x = 7;
public int y = 3;
}
- Question: What are the class variables?Answer: x
- Question: What are the instance variables?Answer: y
- Question: What is the output from the following code:
IdentifyMyParts a = new IdentifyMyParts(); IdentifyMyParts b = new IdentifyMyParts(); a.y = 5; b.y = 6; a.x = 1; b.x = 2; System.out.println("a.y = " + a.y); System.out.println("b.y = " + b.y); System.out.println("a.x = " + a.x); System.out.println("b.x = " + b.x); System.out.println("IdentifyMyParts.x = " + IdentifyMyParts.x);
Answer: Here is the output:a.y = 5 b.y = 6 a.x = 2 b.x = 2 IdentifyMyParts.x = 2
Becausex
is defined as apublic static int
in the classIdentifyMyParts
, every reference tox
will have the value that was last assigned becausex
is a static variable (and therefore a class variable) shared across all instances of the class. That is, there is only onex
: when the value ofx
changes in any instance it affects the value ofx
for all instances ofIdentifyMyParts
No comments:
Post a Comment