[javase學習筆記]-7.3 建構函式的重載

來源:互聯網
上載者:User

[javase學習筆記]-7.3 建構函式的重載

這一節我們來學習一下建構函式的重載。

說到重載,我們在函數那一章已經學習過了,為了更好的理解建構函式的重載,我們先要弄明白一個問題:

那就是什麼時候定義建構函式呢?

在描述事物時,該事物已存在就具備一些內容,這些內容都定義在建構函式中。

我們來看例子:

class Person{private String name;private int age;Person(){System.out.println("person run");}public void speak(){System.out.println(name+":"+age);}}
我們來測試一下:

class ConsDemo{public static void main(String[] args) {Person p = new Person();//此時調用了建構函式p.speak();}}

結果:


此時列印結果為null和0,就是說我們從來沒有對成員變數賦過值。

那麼當我們想要在建立Person對象時成員變數就有值,可以定義這樣的建構函式:

class Person{private String name;private int age;Person()//建構函式,分別為成員變數name和age賦值{name = "baby";age = 1;System.out.println("person run");}public void speak(){System.out.println(name+":"+age);}}
測試

class ConsDemo{public static void main(String[] args) {Person p = new Person();p.speak();}}
我們看到結果:

那麼如果我們要使一個Person對象一出生就有名字,那麼我們可以定義如下一個建構函式:<喎?http://www.bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PHByZSBjbGFzcz0="brush:java;">class Person{private String name;private int age;Person()//建構函式,分別為成員變數name和age賦固定的值{name = "baby";age = 1;System.out.println("person run");}Person(String n)//建構函式,有一個初始name參數{name = n;}public void speak(){System.out.println(name+":"+age);}}

我們來測試一下:

class ConsDemo{public static void main(String[] args) {Person p = new Person();p.speak();Person p1 = new Person("旺財");p1.speak();}}

看一下結果:


同理,我們可以定義另外一個建構函式,把name和age兩個參數同時初始化

class Person{private String name;private int age;Person()//建構函式,分別為成員變數name和age賦固定的值{name = "baby";age = 1;System.out.println("person run");}Person(String n)//建構函式,有一個初始name參數{name = n;}Person(String n,int a){name = n;age = a;}public void speak(){System.out.println(name+":"+age);}}
測試:

class ConsDemo{public static void main(String[] args) {Person p = new Person();p.speak();Person p1 = new Person("旺財");p1.speak();Person p2 = new Person("小強",10);p2.speak();}}
結果:

從上面我們看到,一個類中我們定義了多個建構函式,它們的參數各不相同,這種現象就是建構函式的重載。

通過建構函式的重載,我們可以通過不同的建構函式初始化不同的對象。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.