Given the following code:
public class QadAsm {
private static int cidi = 0;
private int io = 0;
public void iaslo(int proi) {
int shud = 0;
A
shud += proi;
io += proi;
cidi += proi;
System.out.println("shud=" + shud + " io=" + io + " cidi=" + cidi);
}
public static void main(String[] args) {
QadAsm q0 = new QadAsm();
B
QadAsm q1 = new QadAsm();
C
q0.iaslo(1);
q1.iaslo(10);
q0 = q1;
q1 = q0;
q0.iaslo(100);
q1.iaslo(1000);
}
}
cidi, shud, io, q0, q1] are in scope at A ?Output:
cidi=1 shud=1 io=1 cidi=10 shud=10 io=11 cidi=100 shud=110 io=111 cidi=1000 shud=1110 io=1111
In scope at A : io, shud, cidi
In scope at B : io, q0, q1
In scope at C : io, q0, q1
Explanation (which you do not need to write out in your submitted solution):
io is a static variable, shud is an instance variable, and cidi is a local variable.
At A , q0 and q1 out of scope because they are local to the main method.
At B , shud is out of scope because it is an instance variable, but main is a static method. cidi is out of scope because it is local to iaslo.
At C , shud is out of scope because it is an instance variable, but main is a static method. cidi is out of scope because it is local to iaslo.
Related puzzles: