課程
/后端開發
/Java
/Java入門第二季 升級版
通過靜態初始化塊初始化age通過初始化塊初始化sex通過構造方法初始化name主函數只是執行hello.show()方法啊,應該是只顯示姓名:tom,性別:男,年齡:20
這一行啊
2016-02-29
源自:Java入門第二季 升級版 8-9
正在回答
此問題你可以回想一下程序的三大結構之順序結構。因為你的程序是按要求進行順序操作的,而你的show()方法里的數據的輸出依賴于各個方法的順序執行,從而出現那樣的運行結果。
一個帶main方法的類,加載到虛擬機后,才能運行。那么首先就執行static靜態代碼塊,然后每構造一個對象時,再執行初始化塊,最后執行構造方法。
public class HelloWorld {
? ??
? ? String name; // 聲明變量name
String sex; // 聲明變量sex
static int age;// 聲明靜態變量age
? ? // 構造方法
public HelloWorld() {?
System.out.println("通過構造方法初始化name");
name = "tom";
}
? ? // 初始化塊
{?
System.out.println("通過初始化塊初始化sex");
sex = "男";
? ? // 靜態初始化塊
? ? ?static ?{?
System.out.println("通過靜態初始化塊初始化age");
age = 20;
public void show() {
System.out.println("姓名:" + name + ",性別:" + sex + ",年齡:" + age);
? ? ? ? public static void main(String[] args) {
? ? ? ??
? ? ? ? // 創建對象
? ? HelloWorld hello = new HelloWorld();
// 調用對象的show方法
? ? ? ? hello.show();
舉報
課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙
2 回答為什么不能顯示運行結果呢?
3 回答為什么執行第一次,運行結果會有這個?
1 回答為什么我的運行結果會出現ExtendsClass.Dog@15136019這個
5 回答運行結果為什么全是0.0?
3 回答為什么運行結果是這樣:chapter3.Dog@1db9742
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-03-22
此問題你可以回想一下程序的三大結構之順序結構。因為你的程序是按要求進行順序操作的,而你的show()方法里的數據的輸出依賴于各個方法的順序執行,從而出現那樣的運行結果。
2016-02-29
一個帶main方法的類,加載到虛擬機后,才能運行。那么首先就執行static靜態代碼塊,然后每構造一個對象時,再執行初始化塊,最后執行構造方法。
2016-02-29
public class HelloWorld {
? ??
? ? String name; // 聲明變量name
String sex; // 聲明變量sex
static int age;// 聲明靜態變量age
? ??
? ? // 構造方法
public HelloWorld() {?
System.out.println("通過構造方法初始化name");
name = "tom";
}
? ??
? ? // 初始化塊
{?
System.out.println("通過初始化塊初始化sex");
sex = "男";
}
? ??
? ? // 靜態初始化塊
? ? ?static ?{?
System.out.println("通過靜態初始化塊初始化age");
age = 20;
}
? ??
public void show() {
System.out.println("姓名:" + name + ",性別:" + sex + ",年齡:" + age);
}
? ? ? ? public static void main(String[] args) {
? ? ? ??
? ? ? ? // 創建對象
? ? HelloWorld hello = new HelloWorld();
// 調用對象的show方法
? ? ? ? hello.show();
? ? ? ??
}
}