構造方法與相同名稱的類和方法的關系
package?first;
public?class?demo5qidong?{
public?static?void?main(String[]?args)?{
//?TODO?Auto-generated?method?stub
demo5?asd=new?demo5();
asd.asd();
}
}在上面代碼執(zhí)行后,會顯示a和b。
package?first;
public?class?demo5?{
public?demo5(){
System.out.println("a");
}
void?asd(){
System.out.println("b");
}
}我想知道第二段代碼中外面的demo5類與它內(nèi)部的demo方法的問題,我創(chuàng)建了demo5對象,不是由外面的demo5類得來的嗎?為什么會顯示a?和內(nèi)部的demo5有什么關系?
2017-05-10
因為 public demo5() 這個是 demo5 類的構造方法,每當你 new 一個 demo5 對象時,就會調(diào)用對象的構造方法來創(chuàng)建并初始化一個對象。new demo5(),調(diào)用的就是構造方法。
2017-05-10
第二段代碼中 內(nèi)部的demo5為demo5類的構造方法,當你new demo5的對象時首先會調(diào)用構造方法(如果不聲明構造方法。那么構造函數(shù)還是會有。默認為不參構造方法)。當你第一段代碼new了demo5對象就執(zhí)行了demo5構造方法然后又執(zhí)行了asd()方法
2017-05-10
創(chuàng)建demo5對象時,對對象進行實例化,會先調(diào)用類的構造方法對它進行實例化,所以會打印出來a,然后再調(diào)用asd方法,會打印b.