看板 java 關於我們 聯絡資訊
假設我有幾個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
singlovesong:this.i++; 03/09 17:44
ssccg:為什麼你在run裡面知道直接用i,在change要用傳的... 03/09 18:42
coolcomm:change直接改superclass的i就好啦...幹嘛繞遠路... 03/09 18:55
luoqr:這寫法行數再多一點 我想連你自己都會看不懂了... 03/09 20:46