程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 代碼分析-代碼大全 全局數據有關的奇異的和令人激動的別名問題

代碼分析-代碼大全 全局數據有關的奇異的和令人激動的別名問題

編輯:編程綜合問答
代碼大全 全局數據有關的奇異的和令人激動的別名問題

代碼大全p336 示例代碼:
函數:
Sub WriteGlobal(ByRef inputVar As Integer)
inputVar = 0
globalVar = inputVar + 5
MsgBox("Input Variable: " $ Str(inputVar))
MsgBox("Global Variable: " $ Str(globalVar))
End Sub

調用:
WriteGlobal(globalVar)

結果:
Input Variable:5
Global Variable:5

意思是:globalVar是一個全局變量當做參數傳遞給子程序:
是否可以將代碼轉換成java代碼:

package itcast.writeglobal;

public class WriteGlobalTest {
public static int globalVar = 3;
public static void main(String[] args) {
WriteGlobal(globalVar);
}

private static void WriteGlobal(int inputVar){
inputVar = 0;
globalVar = inputVar + 5;
System.out.println(inputVar);
System.out.println(globalVar);
}
}

為什麼java代碼顯示的結果是0和5.哪裡理解錯了嗎?請懂的大神解惑。謝謝!

最佳回答:


Sub WriteGlobal(ByRef inputVar As Integer)
VB特有的ByRef,是引用傳參,在其中修改inputVar會影響調用者。
Java不支持。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved