# pls clarify

bani kaali
Ranch Hand
Posts: 42
Can someone kindly tell me why the result is the AA's result is
20,10,30,31 and not 20,31,30,31 ?
class B{
protected int x;
B(){ x = 10;}
B(int a){ x = a;}
void m1(){x = 20;}
void m1(int x){this.x = x;}
}
public class AA {
int x;
AA(){x = 20;}
AA(int x){this.x = x;}
void m1(B x){this.x = x.x++;}
public static void main(String arf[]){
AA x = new AA(20);
B y = new B();
System.out.println(x.x);
x.m1(y);
System.out.println(x.x);
y.m1(30);
System.out.println(y.x);
((AA)x).m1(y);
System.out.println(y.x);
}
}
Thanks in advance
bani

R K Singh
Ranch Hand
Posts: 5384
Originally posted by bani kaali:
Can someone kindly tell me why the result is the AA's result is
20,10,30,31 and not 20,31,30,31 ?

Thanks in advance
bani

Jose Botella
Ranch Hand
Posts: 2120
Hello Bani
I have stepped through the code jotting donw the values:
AA x = new AA(20); // x.x = 20
B y = new B(); // y.x = 10

x.m1(y); // x.x = 10
y.m1(30); // y.x = 30

((AA)x).m1(y); // x.x = 30 but later 31 because of x.x++ in m1
hope it helps