App下載

簡述什么是Java構造器? 怎么使用?

猿友 2021-07-15 10:11:18 瀏覽數(shù) (3060)
反饋

相信有很多初學Java的小伙伴在學習面對對象的時候,一個類里面既有構造函數(shù),又有普通函數(shù),因為他們兩個就像雙胞胎兄弟,所以區(qū)分得不是很明白。本文將為您介紹Java中的構造器,重載方法,以及構造函數(shù)和普通函數(shù)之間的區(qū)別。

構造器

在學習之前,我們首先要了解什么是構造器?構造器能用來做什么?

構造器:也就是我們前文提到的構造函數(shù),也可以叫做構造方法,是 Java 中一種特殊的函數(shù)。

作用:構造器一般是用來初始化成員屬性和成員方法。當我們使用?new?關鍵詞美創(chuàng)建一個新的對象,那么構造器就會被調用一次。


構造器的特點

  1. 函數(shù)名必須和類名相同。
  2. 不需要定義返回值類型。
  3. 每個對象都至少有一個構造函數(shù),即使沒有創(chuàng)建構造器,系統(tǒng)也會默認添加一個無參構造器。
  4. 如果有自定義的構造器,那么系統(tǒng)就不會添加。

因為構造函數(shù)的名稱只能和類名相同,這也就是說明了如果要自定義多個構造函數(shù)的話,那么必然就會有重名的結果。在這里,就要先介紹Java中另外一個很重要的知識點——重載。

重載

定義:在同一個類當中,方法可以有相同的方法名,但是所給的參數(shù)不一樣,那么這就叫做方法重載(Method Overloading)。。

特點:和返回值類型無關,只和參數(shù)列表有關系。(參數(shù)個數(shù)、參數(shù)類型、參數(shù)順序)。

那么方法重載后,會不會影響前面寫過的方法函數(shù)?

答案是不會的!方法重載并不會對前面的方法函數(shù)進行覆蓋。

同樣的方法名,不同的方法函數(shù)。


構造器的示例用法

無參構造器

創(chuàng)建一個?People?對象,定義一個無參構造器(為了更直觀看到是否調用了構造器,在其中添加了一個打印。)

public class People {
        String name;
        Integer age;
        String gender;

        public People() {
            System.out.println("已經(jīng)調用了這個無參構造器。");
        }
}

用?new?關鍵詞創(chuàng)建一個新對象

public class Demo {
    public static void main(String[] args) {
        People p1 = new People();
    }
}

輸出結果

java構造器輸出結果


有參構造器

有參構造器也就是比無參構造器多一些參數(shù)類型,參數(shù)值。

寫法

public 類名 (參數(shù)類型1 參數(shù)值1, 參數(shù)類型2 參數(shù)值2...){}

自定義一個有參構造器

public People(String name, Integer age, String gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }

創(chuàng)建一個名為?p2?的對象,來調用自定義的有參構造器

People p2 = new People("Jack", 15, "男");
System.out.println(p2.name+"是一個"+p2.age+"歲的"+p2.gender+"生.");

輸出結果

java有參構造器的輸出結果

看到這里,對構造器有了一個大概的了解了。接下來,我們說說構造函數(shù)和普通函數(shù)的區(qū)別。

構造函數(shù)和普通函數(shù)的區(qū)別

構造函數(shù)和普通函數(shù)長得非常相似,就像是雙胞胎一樣。但即便是雙胞胎,他們之前也會存在一些的區(qū)別的。

  • 普通函數(shù)的函數(shù)名可以根據(jù)個人愛好自定義的;構造函數(shù)的函數(shù)名只能是和類名一樣。
  • 普通函數(shù)可以用void來修飾,也可以有返回值;構造函數(shù)則既不能用void修飾,也沒有返回值。
  • 一般情況下,建議的是普通函數(shù)使用小駝峰式命名法,即首字母小寫;構造函數(shù)和類名首字母要大寫。
  • 普通函數(shù)是可以直接通過?函數(shù)名()?來直接調用;構造函數(shù)則是在new?關鍵詞創(chuàng)建對象時才調用。

總結

關于Java構造器、重載方法以及構造函數(shù)和普通函數(shù)之間的區(qū)別就介紹到此結束了。如果想要了解更多有關于Java知識的內容,請搜索W3Cschool以前的文章或是繼續(xù)瀏覽相關文章。


0 人點贊