使用構造器時需要記住:
1.構造器必須與類同名(如果一個源文件中有多個類,那么構造器必須與公共類同名)
2.每個類可以有一個以上的構造器
3.構造器可以有0個、1個或1個以上的參數
4.構造器沒有返回值
5.構造器總是伴隨着new操作一起調用
構造方法: 語法
public 類名(){} (構造方法沒有返回值, 構造方法:一般用於給對象賦初始值)
解決:參數名和 屬性名 相同
-
修改參數名(不推薦)
-
使用this關鍵字
this: 關鍵字
1、指代當前對象
2、指代當前類 *
3、 指代構造方法 this(): 表示當前類的構造方法,只能放在首行
注意: 在新建對象的時候 實際上調用了類的無參(沒有參數)的構造方法一般默認 (在類中可以隱藏)
示例1:
public class Student {
// 成員變量
private String name;
private int age;
public Student(){} //無參構造
public Student(String name, int age) {
this.name = name;
this.age = age; }//有參構造
示例2:
A.java
- public class A{
- public A(){
- System.out.println("調用了無參的構造函數");
- }
- public A(String mess){
- System.out.println("調用了有參的構造函數\n"+
- "參數內容為:"+mess);
- }
- }
Test.java
- public class Test{
- public static void main(String [] args){
- A a_1=new A();//調用無參的構造函數
- A a_2=new A("Hello");//調用有參的構造函數
- }
- }
輸出結果:調用了無參的構造函數
調用了有參的構造函數
參數內容為:Hello
繼承與構造函數
super關鍵字
- 只能指代父類對象
- 指代父類的構造方法,只能放在首行
注意
- 子類必須通過super關鍵字調用父類有參數的構造函數
- 使用super調用父類構造器的語句必須是子類構造器的第一條語句
如果子類構造器沒有顯式地調用父類的構造器,則將自動調用父類的默認(沒有參數)的構造器。如果父類沒有不帶參數的構造器,並且在子類的構造器中又沒有顯式地調用父類的構造器,則java編譯器將報告錯誤