[問題] 繼承及變數問題

看板java作者 (warren)時間12年前 (2013/03/09 16:35), 編輯推噓3(301)
留言4則, 4人參與, 最新討論串1/2 (看更多)
假設我有幾個class如下 public class main { public static void main(String[] args) { // TODO Auto-generated method stub class2 c2 =new class2(); c2.run(); } } public class class1{ protected int i; class1(){ i=2; } } public class class2 extends class1 { class2(){ } private void change(int i){ ++i; System.out.println("change i:"+ i); } public void run(){ change(i); System.out.println("c2 i:"+i); } } 我用class1放我想放的變數 用class2去繼承class1 在main中使用class2 run method 可是我在class2中想要寫一個method來修改i 但是傳進去的變數在改變值離開後 到了外面值還是原本的 想問一下java 有call by reference的機制嗎 還是只能全部寫在同一個method內了? 麻煩大家幫忙解惑一下 感激不盡~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 119.14.239.33

03/09 17:44, , 1F
this.i++;
03/09 17:44, 1F

03/09 18:42, , 2F
為什麼你在run裡面知道直接用i,在change要用傳的...
03/09 18:42, 2F

03/09 18:55, , 3F
change直接改superclass的i就好啦...幹嘛繞遠路...
03/09 18:55, 3F

03/09 20:46, , 4F
這寫法行數再多一點 我想連你自己都會看不懂了...
03/09 20:46, 4F
文章代碼(AID): #1HElH9PG (java)
文章代碼(AID): #1HElH9PG (java)