在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Java/ Java構造器(構造方法)
Java for循環(huán)
Java接口
Java是什么?
Java命名約定
java中方法重載和方法重寫的區(qū)別
Java運算符
Java抽象類
Java快速入門
Java實例初始化程序塊
Java靜態(tài)綁定和動態(tài)綁定
Java do-while循環(huán)
Java對象克隆
Java Object類
Java聚合
Java繼承
Java this關鍵字
Java虛擬機內(nèi)部體系結(jié)構
Java構造器(構造方法)
Eclipse安裝和配置
Java多態(tài)
Java方法重載
Java while循環(huán)
Java教程
Java按值調(diào)用和引用調(diào)用
Java strictfp關鍵字
Java封裝
Java語言特點
Java數(shù)組
Java instanceof運算符
Java包裝類
Java命令行參數(shù)
Java包
Java面向?qū)ο螅∣OP)概念
簡單Java程序
Java基礎實例程序
Java對象和類
Java continue語句
Java抽象類和接口的區(qū)別
C++ VS Java比較
Java if/else語句
Java switch語句
Java歷史
Java變量和數(shù)據(jù)類型
安裝Java環(huán)境(Linux)
Java JDK安裝和配置
Hello Java程序的內(nèi)部細節(jié)
Java break語句
Java方法重寫
Java Unicode編碼系統(tǒng)
怎么樣開始學習Java編程?
對象和類之間的區(qū)別
Java訪問修飾符
Java super關鍵字
Java注釋
JDK,JRE和JVM之間的區(qū)別
Java final關鍵字
Java static關鍵字

Java構造器(構造方法)

java中的構造方法是一種特殊類型的方法,用于初始化對象。Java構造函數(shù)在對象創(chuàng)建時被調(diào)用。 它構造值,即提供對象的數(shù)據(jù),這是為什么它被稱為構造函數(shù)。

創(chuàng)建java構造函數(shù)的規(guī)則

構造函數(shù)基本上定義了兩個規(guī)則。它們分別如下 -

  1. 構造函數(shù)名稱必須與其類名稱相同
  2. 構造函數(shù)必須沒有顯式返回類型

Java構造函數(shù)的類型

有兩種類型的構造函數(shù):

  1. 默認構造函數(shù)(無參數(shù)構造函數(shù))
  2. 參數(shù)化構造函數(shù)

1. Java默認構造函數(shù)(無參數(shù)構造函數(shù))

沒有參數(shù)的構造函數(shù)稱為默認構造函數(shù)。默認構造函數(shù)的語法如下:

<class_name>(){}

默認構造函數(shù)的示例:

在這個例子中,在Bike類中創(chuàng)建了無參數(shù)(no-arg)構造函數(shù)。它將在對象創(chuàng)建時被調(diào)用。

class Bike1 {
    Bike1() {
        System.out.println("Bike is created");
    }

    public static void main(String args[]) {
        Bike1 b = new Bike1();
    }
}

上面的示例代碼運行結(jié)果如下 -

Bike is created

規(guī)則:如果類中沒有構造函數(shù),編譯器會自動創(chuàng)建一個默認構造函數(shù)。

問題: 默認構造函數(shù)的目的是什么?

默認構造函數(shù)根據(jù)類型為對象提供默認值,如:0,null等。

顯示默認值的默認構造函數(shù)示例

class Student3 {
    int id;
    String name;

    void display() {
        System.out.println(id + " " + name);
    }

    public static void main(String args[]) {
        Student3 s1 = new Student3();
        Student3 s2 = new Student3();
        s1.display();
        s2.display();
    }
}

運行上面代碼,得到如下結(jié)果 -

0 null
0 null

解釋: 在上面的類中,代碼中并沒有創(chuàng)建任何構造函數(shù),但編譯器自動提供了一個默認構造函數(shù)。默認構造函數(shù)分別為字段:idname 分別提供了0null值。

2. Java參數(shù)化構造函數(shù)

具有參數(shù)的構造函數(shù)稱為參數(shù)化構造函數(shù)。

問題: 為什么使用參數(shù)化構造函數(shù)?
回答: 參數(shù)化構造函數(shù)用于為不同對象提供不同初始化的值。

參數(shù)化構造函數(shù)的示例
在這個例子中,我們創(chuàng)建了具有兩個參數(shù)的Student類的構造函數(shù)。構造函數(shù)中柯有任意數(shù)量的參數(shù)。

class Student4 {
    int id;
    String name;

    Student4(int i, String n) {
        id = i;
        name = n;
    }

    void display() {
        System.out.println(id + " " + name);
    }

    public static void main(String args[]) {
        Student4 s1 = new Student4(111, "Karan");
        Student4 s2 = new Student4(222, "Aryan");
        s1.display();
        s2.display();
    }
}

運行上面代碼,得到如下結(jié)果 -

111 Karan
222 Aryan

Java構造函數(shù)重載

構造方法重載是Java中的一種技術,一個類可以有任何數(shù)量的參數(shù)列表不同的構造函數(shù)。編譯器通過構造函數(shù)參數(shù)列表中的參數(shù)數(shù)量及其類型來區(qū)分這些構造函數(shù)。

構造函數(shù)重載示例

class Student5 {
    int id;
    String name;
    int age;

    Student5(int i, String n) {
        id = i;
        name = n;
    }

    Student5(int i, String n, int a) {
        id = i;
        name = n;
        age = a;
    }

    void display() {
        System.out.println(id + " " + name + " " + age);
    }

    public static void main(String args[]) {
        Student5 s1 = new Student5(111, "Karan");
        Student5 s2 = new Student5(222, "Aryan", 25);
        s1.display();
        s2.display();
    }
}

上面示例代碼,執(zhí)行后輸出結(jié)果如下 -

111 Karan 0
222 Aryan 25

java的構造函數(shù)和方法之間的區(qū)別

構造函數(shù)和方法之間有許多區(qū)別,它們?nèi)缦旅媪谐?-

Java構造函數(shù) Java方法
構造器用于初始化對象的狀態(tài)(數(shù)據(jù))。 方法用于暴露對象的行為。
構造函數(shù)不能有返回類型。 方法一般都有返回類型。
構造函數(shù)隱式調(diào)用。 方法要顯式調(diào)用。
如果沒有指定任何構造函數(shù),java編譯器提供一個默認構造函數(shù)。 在任何情況下編譯器都不會提供默認的方法調(diào)用。
構造函數(shù)名稱必須與類名稱相同。 方法名稱可以或可以不與類名稱相同(隨意)。

Java拷貝構造函數(shù)

在Java中沒有復制構造函數(shù)。但是可以將一個對象的值復制到另一個中,就像C++中的復制構造函數(shù)。

在java中有很多方法可以將一個對象的值復制到另一個對象中。它們分別是:

  • 通過構造函數(shù)
  • 通過將一個對象的值分配給另一個對象
  • 通過Object類的clone()方法

在這個例子中,使用java構造函數(shù)將一個對象的值復制到另一個對象中。

class Student6 {
    int id;
    String name;

    Student6(int i, String n) {
        id = i;
        name = n;
    }

    Student6(Student6 s) {
        id = s.id;
        name = s.name;
    }

    void display() {
        System.out.println(id + " " + name);
    }

    public static void main(String args[]) {
        Student6 s1 = new Student6(111, "Karan");
        Student6 s2 = new Student6(s1);
        s1.display();
        s2.display();
    }
}

上面示例代碼,執(zhí)行后輸出結(jié)果如下 -

111 Karan
111 Karan

不使用構造函數(shù)復制值

可以通過將對象值分配給另一個對象,將一個對象的值復制到另一個對象中。 在這種情況下,不需要創(chuàng)建構造函數(shù)。

class Student7 {
    int id;
    String name;

    Student7(int i, String n) {
        id = i;
        name = n;
    }

    Student7() {
    }

    void display() {
        System.out.println(id + " " + name);
    }

    public static void main(String args[]) {
        Student7 s1 = new Student7(111, "Karan");
        Student7 s2 = new Student7();
        s2.id = s1.id;
        s2.name = s1.name;
        s1.display();
        s2.display();
    }
}

上面示例代碼,執(zhí)行后輸出結(jié)果如下 -

111 Karan
111 Karan

問題1: 構造函數(shù)有返回值 ?

回答: 是的,構造函數(shù)返回當前類的實例(不能指定返回值類型,但它會返回一個值)。

問題2: 可以構造函數(shù)執(zhí)行其他任務而不是初始化?

回答: 是的,比如:對象創(chuàng)建,啟動線程,調(diào)用方法等。你可以像在方法中執(zhí)行的任何操作一樣,在構造函數(shù)中也可以做到這些。


上一篇:Java switch語句下一篇:Java super關鍵字