JAVA 學習模塊八:構造函數

這裏寫圖片描述

一.構造函數特點

1.函數名與類名相同
2.不用定義返回值類型
3.沒有具體的返回值

/*
構造函數: 構建創造對象時調用的函數  作用: 可以給對象進行初始化。
創建函數都必須要通過構造函數初始化


一個類中如果沒有定義過構造函數,那麼該類中會有一個默認的空參數的構造函數。
如果類中定義了指定的構造函數,那麼類中默認的構造函數就沒有了



*/

class  PerSon
{
    private String name;
    private int age;
    //定義一個person類的構造函數
    PerSon()//構造函數而且是空參數的
        {

    }



    public void speak()
    {
        System.out.println(name + age);
    }
}


class demo

{
    public static void main(String[] args)
    {
    PerSon = new PerSon(); //new 的時候會自動調用 person 構造函數 ,並運行

    }


}
class  PerSon
{
    private String name;
    private int age;
    //定義一個person類的構造函數
    PerSon()//構造函數
        {

            name = “baby”

        }
    person(String n) //一出生就有 名字
    {
    name = n
    }




    public void speak()
    {
        System.out.println(name + age);
    }
}


class demo

{
    public static void main(String[] args)
    {
    PerSon p = new PerSon(); //new 的時候會自動調用 person 構造函數 ,並運行
    person p1 = new person("xiaoming");

    }


}

2.一般函數和構造函數的區別:

1.構造函數:對象創建時,就回調用與之對用的構造函數,對對象進行初始化。
2.一般函數:對象創建後,需要函數功能時才調用。
3.構造函數,對象創建時,會只調用一次
4.一般函數:對象創建後,可以被調用多次。

3. This 關鍵字

class  PerSon
{
    private String name;
    private int age;
    //定義一個person類的構造函數
//erSon()//構造函數
//{

//  name = “baby”

//}
    person(String name) //一出生就有 名字
    {
        this.name = name //防止初始化時出錯
    }
/*
當成員變量和局部變量重名時,可以用 this 關鍵字區分
this: 代表對象,代表當前對象
this就是所在函數所屬對象的引用
簡單說那個對象調用了 this 所在的函數,this 就代表哪個對象。
*/



    public void speak()
    {
        System.out.println(name + age);
    }
}


class demo

{
    public static void main(String[] args)
    {
//erSon p = new PerSon(); //new 的時候會自動調用 person 構造函數 ,並運行
    person p1 = new person("xiaoming");

    }


}

構造函數調用構造函數:(但是 this 只能定義在構造函數的第一行)

class  PerSon
{
    private String name;
    private int age;
    //定義一個person類的構造函數
    perSon()//構造函數
    {

        name = “baby”

    }
    person(String name) //一出生就有 名字
    {
        this(name);
        this.name = name; //防止初始化時出錯
    }
/*
    判斷是否是同齡人
    */
    public boolean compare(person p)
    {
        if (this.age == p.age)
            return ture;
        else
            return false;

    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章