java - Can't decrease value of int variable -


i created 4 classes, mainp class, , others ex2, ex3 , ex4 (3 , 4 extend 2). when call object whice decreases int variable of object, on first call.

these classes:

ex2:

protected int par;  public int getpar() {     return par; }  public void setpar(int par) {     this.par = par; } 

ex3:

private int par;  public ex3(int par) {     this.par = par; }  public void bar(ex2 b) {     b.setpar(par - 10); }  public int getpar() {     return par; }  public void setpar(int par) {     this.par = par; }    

ex4 same ex3.

main:

public class mainp {     public static void main(string[] args) {          ex3 kaka = new ex3(100);         ex4 tana = new ex4(100);          kaka.bar(tana);          system.out.println(tana.getpar());          kaka.bar(tana);          system.out.println(tana.getpar());     } } 

output:

90
90

i don't understand why par decreases in first call , stops @ second call. suppose it's calibrated somehow, don't see why.

edit: understood silly mistake, have new 1 though. changed method to:

    public void bar(ex2 b){     b.setpar(b.par-=10); } 

and output is:

-10

-20

why method changes b.par -10? if this: tana.setpar(tana.par-=10); @ main method, , changing variables public, not change value of tana -10, , decreases 100.

public void bar(ex2 b){     b.setpar(par - 10); } 

here set b value of par - 10 par not field of b. , because hasn't changed 2 times set b par field same value - 90.


Comments

Popular posts from this blog

yii2 - Yii 2 Running a Cron in the basic template -

asp.net - 'System.Web.HttpContext' does not contain a definition for 'GetOwinContext' Mystery -

mercurial graft feature, can it copy? -