Given the following code:
public class Pusma {
private static int un = 0;
private int jale = 0;
public static void main(String[] args) {
Pusma p0 = new Pusma();
A
Pusma p1 = new Pusma();
B
p0.truBla(1);
p1.truBla(10);
p0.truBla(100);
p0 = new Pusma();
p1 = p0;
p1.truBla(1000);
}
public void truBla(int i) {
int iosh = 0;
jale += i;
un += i;
iosh += i;
System.out.println("jale=" + jale + " un=" + un + " iosh=" + iosh);
C
}
}
iosh, jale, un, p0, p1] are in scope at A ?Output:
iosh=1 jale=1 un=1 iosh=10 jale=11 un=10 iosh=101 jale=111 un=100 iosh=1000 jale=1111 un=1000
In scope at A : jale, p0, p1
In scope at B : jale, p0, p1
In scope at C : jale, iosh
Explanation (which you do not need to write out in your submitted solution):
jale is a static variable, iosh is an instance variable, and un is a local variable.
At A , iosh is out of scope because it is an instance variable, but main is a static method. un is out of scope because it is local to truBla.
At B , iosh is out of scope because it is an instance variable, but main is a static method. un is out of scope because it is local to truBla.
At C , un is out of scope because it is not declared yet. p0 and p1 out of scope because they are local to the main method.
Related puzzles: