java類的構造
⑴ java中什麼叫構造方法
構造方法是一種特殊的方法,與一般的方法不同是:
1.構造方法的名字必須與定義他的類名完全相同,沒有返回類型,甚至連void也沒有。
2.構造方法的調用是在創建一個對象時使用new操作進行的。構造方法的作用是初始化對象。
3.不能被static、final、synchronized、abstract和native修飾。構造方法不能被子類繼承。
class RectConstructor{
double length;
double width;
double area(){
return length*width;
}
//下面這個方法就是所謂的構造方法,沒有返回值,方法名與類名相同~~~
RectConstructor(double width,double length){//帶參數的構造方法
this.length=length;
this.width=width;
}
}
其實構造方法就是為了給類中成員賦初值~~~~~~~~~~~~~
⑵ java中類的構造方法和普通的方法在使用上有什麼區別
java中類的構造方法只在創建對象時調用,
如:String
str=new
String("dssd");
調用了String的構造方法。
java中類的普通的方法,用對象就可以調用
如:str.Length();
調用length()方法,求str的長度
⑶ 談一談Java中類的構造方法
this代表你正在構造的對象。public class Test {public Test() {System.out.println(this.toString());}public static void main(String[] args) {Test obj = new Test();System.out.println(obj.toString());}}輸出的兩個字元串相同(後面的數字是對象地址),說明this和obj是同一個對象。這里this就是正在構建的CommunicationDemo的對象,作為參數傳給Thread的構造函數。內幕是:java對象的建立其實是在構造函數開始執行之前,就是說構造函數執行的時候,被構造的對象其實已經存在了,所以構造函數中可以用this引用當前被構造的對象進行處理(比如this.name=「Jack」)。
⑷ JAVA構造方法
構造方法的方法名必須與類名一樣。
構造方法沒有返回類型,也不能定義為void,在方法名前面不聲明方法類型。
構造方法不能作用是完成對象的初始化工作,他能夠把定義對象時的參數傳遞給對象的域。
構造方法不能由編程人員調用,而要系統調用。
構造方法可以重載,以參數的個數,類型,或排序順序區分。
例子:
1;單個構造函數方法;』
⑸ Java類的完整構造執行順序
這里只說一個完整的結果 至於為什麼是這樣的順序 可以參考我以前的文章 深入剖析java類的構造方式
- 如果父類有靜態成員賦值或者靜態初始化塊 執行靜態成員賦值和靜態初始化塊 如果類有靜態成員賦值或者靜態初始化塊 執行靜態成員賦值和靜態初始化塊 將類的成員賦予初值(原始類型的成員的值為規定值 例如int型為 float型為 f boolean型為false 對象類型的初始值為null) 如果構造方法中存在this()調用(可以是其它帶參數的this()調用)則執行之 執行完畢後進入第 步繼續執行 如果沒有this調用則進行下一步 (這個有可能存在遞歸調用其它的構造方法) 執行顯式的super()調用(可以是其它帶參數的super()調用)或者隱式的super()調用(預設構造方法) 此步驟又進入一個父類的構造過程並一直上推至Object對象的構造 執行類申明中的成員賦值和初始化塊 執行構造方法中的其它語句
其中第 步是比較麻煩的 因為this調用實際上會調用類的另外一個構造方法 最終應該是執行類的某個構造方法 它可能會顯示的調用super 但是無論是否調用super 最終都是執行super的 也就是父類的構造方法並一直這樣遞歸到Object 所以在子類和父類的構造中 首先構造或者說執行的是父類的構造 但是它是由子類的構造方法調用的 先於構造方法的方法體裡面的內容 這個是由編譯器決定的 所以我感覺簡單直觀一些的順序表述應該是
- 如果父類有靜態成員賦值或者靜態初始化塊 執行靜態成員賦值和靜態初始化塊 如果類有靜態成員賦值或者靜態初始化塊 執行靜態成員賦值和靜態初始化塊 將類的成員賦予初值(原始類型的成員的值為規定值 例如int型為 float型為 f boolean型為false 對象類型的初始值為null) 執行構造方法 並可能遞歸調用this() 最終先執行父類的構造方法並一直遞歸到Object的構造方法的執行 父類的構造方法執行完成後 執行類申明中的成員賦值和初始化塊 執行構造方法中的其它語句
最終的簡化順序版本是
- 父類的靜態成員賦值和靜態塊 子類的靜態成員和靜態塊 父類的構造方法 父類的成員賦值和初始化塊 父類的構造方法中的其它語句 子類的成員賦值和初始化塊 子類的構造方法中的其它語句
⑹ java 類 構造方法
PublicclassHero{
privateStringname;
Privateintattack;
Privateinthp;
Privateintmp;
Privateintspeed;
//構造方法
publicFather(Stringname,intattack,inthp,intmp,intspeed){
this.name=name;
this.attack=attack;
this.hp=hp;
this.mp=mp;
this.speed=speed;
}
}
publicclassHeroesextendsHero{
privateStringskill;
//構造方法
publicHeroes(Stringname,intattack,inthp,intmp,intspeed,Stringskill){
super(name,attack,hp,mp,speed);
this.skill=skill;
}
//測試
publicstaticvoidmain(String[]args){
Heroesh1=newHeroes("劍聖",250,2500,0,530,"高原血統");
Heroesh2=newHeroes("蠻子",350,2500,0,470,"無盡的怒火");
}
}
哥們你這是瞎搞啊我純手給你打的望採納吧