程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> java-急求分析兩段JAVA代碼(最近筆試碰到的)

java-急求分析兩段JAVA代碼(最近筆試碰到的)

編輯:編程綜合問答
急求分析兩段JAVA代碼(最近筆試碰到的)

public class NameClass {

private static  int x ;

public static void main(String[] args) {
    name(x);
    System.out.println(x);
}
public static void name(int x){
    x ++;

}

}
//請幫忙分析下為什麼這斷代碼的輸出為0?

package cn.com.test2;

public class A {

public static void testMethod(String name){
    System.out.println("hello"+name);
}

public static void main(String[] args) {
    testMethod("nick");
    //?
    ((A)null).testMethod("tom");//這句話是什麼意思呢?求詳細解答

}

}

最佳回答:


第一個程序;name函數操作的x的作用域只在name函數內,與外層的靜態變量x無關。這個靜態變量在類加載時就初始化為0了。
第二個程序:先將null類 強制類型轉換為A類型,然後通過這個A類型來調用靜態方法testMethod。如果你用普通的方法就不能實現。
在java中,對null進行強制類型轉換不會報錯,結果還是null。第二個程序也可以寫成下面這樣:

 A obj= null;
      obj.testMethod("Gook");
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved