您好,登錄后才能下訂單哦!
這篇文章給大家介紹this中super構造方法怎么在Java中使用,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
1、構造方法
定義:與類同名沒有返回值的方法稱為構造方法;
public class test1 { private String name; private int age; public test1(){ } }
上面的test1()是默認構造方法,即使沒有定義java虛擬機在運行的時候也會自動生成,
當然如果定義了重載的構造方法便不會自動生成;
構造方法的作用有兩點1.通過構造方法建立一個對象;2.通過構造方法可以快速的賦初值;
public class Main { public static void main(String[] args) { test1 t1=new test1();//new后面加上構造方法建立了一個對象 } }
而如果類中有其它屬性的話可以有構造方法的重載:
public test1(String name, int age) { this.name = name; this.age = age; }
利用重載的構造方法可以很快速的給對象賦初值,特別是對于private的屬性,如果用getter和setter很不方便;
public static void main(String[] args) { test1 t1=new test1(); test1 t2=new test1("bob", 18); System.out.println(t1); System.out.println(t2); }
輸出結果:
test1 [name=null, age=0]
test1 [name=bob, age=18]
t1沒有賦初值所有它里面的值是系統設置的初值;
t2利用有參的構造方法,直接給屬性設置了初值,非常的方便,就不用setter方法來一個個設置值;
2. this
誰調用指向誰,是指向調用的對象;
舉例說明:
在上面的test1 類中加上以下fly()方法:
public void fly(){ System.out.println(this.name+"會飛");//this指向調用的對象 }
在運行中調用:
public static void main(String[] args) { test1 t1=new test1(); test1 t2=new test1("bob", 18); t1.fly();//方法中的this指向t1 t2.fly();//方法中的this指向t2 // System.out.println(t1); // System.out.println(t2); }
結果如下:
null會飛
bob會飛
另外this還需要注意的一點是用在構造方法中:
public test1(String name, int age) { this();//在運行構造方法進行屬性賦值前是一定會先調用無參數的構造方法 this.name = name; this.age = age; }
當然構造方法調用主要看this(參數列表)看圓括號里面的參數列表和哪一個構造方法相同就執行哪一個構造方法;
2. super:指向父類,調用父類的屬性和方法;
其實使用起來和this關鍵字差不多;
public test1(){ super(); }
上面的super(()調用的是父類的構造方法,如果沒有繼承父類的話,那么它的父類是指向object(所有類的超類);
使用:suiper關鍵字加“ . ”可以訪問父類可以訪問的屬性和方法,一般用于區分被子類重寫了的方法;
使用this(參數列表)和super(參數列表)的構造方法注意事項:
a. 只能夠位于構造方法的第一行;
b. 不能同時出現在一個構造方法中;
c. 總是會先訪問完父類的構造方法在訪問子類里面的構造方法;
關于this中super構造方法怎么在Java中使用就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。