程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 輸出結果和解釋-java這道題能幫我解答下麼?最好能每行注釋一下。麻煩各位大神

輸出結果和解釋-java這道題能幫我解答下麼?最好能每行注釋一下。麻煩各位大神

編輯:編程綜合問答
java這道題能幫我解答下麼?最好能每行注釋一下。麻煩各位大神

public class StaticTest {
static int x=1; int y;
StaticTest(){ y++; }

public static void main(String args[ ]){

StaticTest st=new StaticTest();

System.out.println("x=" + x);
System.out.println("st.y=" + st.y);

st=new StaticTest();

System.out.println("st.y=" + st.y);

}

static { x++;}

}

最佳回答:


 public class StaticTest {
static int x=1;//靜態變量,類加載時執行,只會執行一次
int y; //保存成員變量,沒有賦值,默認為0
StaticTest(){ y++; }//構造方法

public static void main(String args[ ]){//main函數,程序執行入口

StaticTest st=new StaticTest();//這裡實例化前執行加載,所以x=2.然後執行構造函數y=1

System.out.println("x=" + x);//x=2
System.out.println("st.y=" + st.y);//y=1

st=new StaticTest();//新的類,但是類加載只執行一次,所以x=2.同進,執行構造函數y=1

System.out.println("st.y=" + st.y);//y=1

}

static { x++;}//靜態代碼端,類加載時執行
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved