最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java構(gòu)造方法和方法重載詳解

 更新時(shí)間:2022年01月19日 15:45:22   作者:像太陽(yáng)啊  
大家好,本篇文章主要講的是Java構(gòu)造方法和方法重載詳解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下

類的結(jié)構(gòu)包括 :

1. 成員變量

2. 成員方法

3. 構(gòu)造方法

4. 代碼塊

5. 內(nèi)部類

第一 構(gòu)造方法的作用

主要有以下三方面的作用:

(1)在構(gòu)造方法中為創(chuàng)建的對(duì)象初始化賦值

(2)在創(chuàng)建一個(gè)對(duì)象的時(shí)候,至少需要調(diào)用一個(gè)構(gòu)造方法

(3)每一個(gè)類都有構(gòu)造方法

一個(gè)例子加深對(duì)以上三條的理解

public class Car{
    String name;
    String color;
    float price;
}

上一篇文章已經(jīng)講解過(guò) name , color , price 三個(gè)都是類的成員變量,我們?cè)賱?chuàng)建一個(gè)類TextCar用來(lái)測(cè)試. 舉個(gè)例子,現(xiàn)在先記住:

Car bm = new Car();

這句代碼中Car()就是構(gòu)造方法.所以也說(shuō)明了(2)在創(chuàng)建一個(gè)對(duì)象的時(shí)候,至少需要調(diào)用一個(gè)構(gòu)造方法.

public class TextCar{
    public static void main(String [] args){
        Car bm = new Car();  //給Car類創(chuàng)建(new)了一個(gè)對(duì)象
        System.out.println(bm.name);
    } 
}

在main方法中未對(duì)name賦值,但運(yùn)行結(jié)果如下:

不難發(fā)現(xiàn),程序可以正常run并且name的值為null . 其實(shí)構(gòu)造方法為成員變量賦了初值,即(1)的為創(chuàng)建的對(duì)象初始化賦值.構(gòu)造方法賦初值如 : int類型 初值:0 , double類型 初值:0.0 ,String類型 初值 null 等等(常用的了解一下).

在public class Car{ } 這個(gè)類中看到的只有成員變量,沒(méi)有成員方法,更沒(méi)有看到構(gòu)造方法. 其實(shí),是因?yàn)槲覀儧](méi)有顯示的寫(xiě)書(shū)構(gòu)造方法,類里面有一個(gè)隱式的默認(rèn)的構(gòu)造方法:

public class Car{
    String name;
    String color;
    float price;
    public Car(){    //默認(rèn)的構(gòu)造方法,也可以顯示的寫(xiě)出來(lái)
        this.name = null;
        this.color = null;
        this.price = 0.0;
    }
}

public Car(){ }有這樣一個(gè)隱式的無(wú)參的構(gòu)造方法,只不過(guò)在上面的代碼中,我們顯示的寫(xiě)出來(lái)了,這也解釋了 (3)每一個(gè)類都有構(gòu)造方法.

到這里構(gòu)造方法的知識(shí)點(diǎn)就梳理完了,歡迎大家評(píng)論區(qū)補(bǔ)充~

第二 構(gòu)造方法的特點(diǎn)

構(gòu)造方法的特點(diǎn)如下:

(1)名稱和類名相同(這一點(diǎn)需要牢記)

(2)沒(méi)有返回值

(3)不需要用void來(lái)修飾

public class Car{
   //里面有一個(gè)默認(rèn)的無(wú)參構(gòu)造方法Car(){   }
}

Car類里面的默認(rèn)無(wú)參構(gòu)造方法的名稱也叫Car().

我們也可以定義有參的構(gòu)造方法,如果定義一個(gè)有參的構(gòu)造方法會(huì)把默認(rèn)的構(gòu)造方法覆蓋掉.例如:

public class Car{
    String name;
    String color;
    float price;
    public Car(String name,String color,float price){   
        this.name = name;
        this.color = color;
        this.price = price;
    }
    
}

此時(shí)默認(rèn)的無(wú)參構(gòu)造方法被覆蓋掉.

如果剛開(kāi)始接觸java,對(duì) this. 不理解,看一下這一段的簡(jiǎn)單解釋:this表示的是對(duì)應(yīng)的對(duì)象,一定可以在main方法中找到對(duì)應(yīng)的對(duì)象如上一段的代碼,一定可以找到這樣的對(duì)象 : Car bm = new Car("寶馬","黑色",5000000);(參量只要類型確定,想寫(xiě)什么讀者隨意),this就指的是這個(gè)對(duì)象, this . 后面的name表示的是Car類的成員變量name , 等號(hào)右邊的name表示該構(gòu)造方法的參數(shù)name.其余變量同理.最后,如果你覺(jué)得不好理解,可以把參數(shù)換個(gè)名字,如a,左邊的this . 就可以去掉.但this的使用一定要會(huì).

來(lái)一個(gè)完整的簡(jiǎn)單的代碼,讀者自己敲一下,然后給自己講一下,就完全理解啦~

public class Car{
    String name;
    String color;
    float price;
    public Car(String name,String color,float price){   
        this.name = name;
        this.color = color;
        this.price = price;
    }
    public run(){  //成員方法
        System.out.println("汽車行駛");
    }
}
 
 
public class TextCar{
    public static void main(String [] args){
        Car bm = new Car("寶馬","紅色",500000);  //給Car類創(chuàng)建(new)了一個(gè)對(duì)象
        System.out.println(bm.name+" "+bm.color+" "+500000);
        bm.run();
    } 
}

方法重載

1.重載有什么特點(diǎn)

(1)在一個(gè)類中有多個(gè)方法名稱相同的現(xiàn)象

(2)構(gòu)造方法和成員方法都可以重載

(3)通過(guò)參數(shù)的個(gè)數(shù),類型,類型的順序進(jìn)行區(qū)分是否為同一方法

方法重載涉及到一個(gè)覆蓋的問(wèn)題,如果重新定義傳參的構(gòu)造方法,需要把默認(rèn)的無(wú)參構(gòu)造方法顯示的寫(xiě)出來(lái),因?yàn)槟J(rèn)的已經(jīng)被重載的覆蓋掉,調(diào)用Car()時(shí)會(huì)報(bào)錯(cuò)!例如:

public Car(String name,String color,float price){
    this.name = name;
    this.color = color;
    this.price = price;
    public Car(String name,String color,float price){   
        this.name = name;
        this.color = color;
        this.price = price;
    }
    
    public run(String name,String color){  //成員方法
        System.out.println(this.color+this.name+"汽車行駛");
    }
    public run(String color,String name){
        System.out.println(this.color+this.name+"汽車行駛");
    }
    public int run(String name){
        System.out.println(this.name+"汽車行駛");
        return 0;
    }
}
public class TextCar{
    public static void main(String [] args){
        Car dz = new Car();//創(chuàng)建了一個(gè)對(duì)象
        System.out.println(dz.name);
        Car bm = new Car("寶馬","紅色",500000);  //創(chuàng)建了一個(gè)對(duì)象
        System.out.println(bm.name+" "+bm.color+" "+500000);
        bm.run("紅色","寶馬");
        bm.run("寶馬");
    } 
}

因?yàn)镃ar()這個(gè)無(wú)參構(gòu)造方法已經(jīng)被有參的Car(String name,String color,float price)覆蓋,new Car()時(shí)找不到無(wú)參構(gòu)造方法.需要我們顯示得把Car()定義出來(lái)才可以.

方法的重載,在Car類中有Car同名的構(gòu)造方法,run()同名的構(gòu)造方法,在類中使用重名的方法就是方法的重載,如果兩個(gè)方法的名字和參數(shù)類型,數(shù)量,順序都相同是不可以的,同名的方法需要考方法的參數(shù)類型,數(shù)量和順序區(qū)分開(kāi)來(lái)

總結(jié)

到此這篇關(guān)于Java構(gòu)造方法和方法重載詳解的文章就介紹到這了,更多相關(guān)Java構(gòu)造方法 方法重載內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 修改idea的這些啟動(dòng)參數(shù),令你的idea健步如飛

    修改idea的這些啟動(dòng)參數(shù),令你的idea健步如飛

    這篇文章主要介紹了修改idea的這些啟動(dòng)參數(shù),令你的idea健步如飛~具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • 用java將GBK工程轉(zhuǎn)為uft8的方法實(shí)例

    用java將GBK工程轉(zhuǎn)為uft8的方法實(shí)例

    本篇文章主要介紹了用java將GBK工程轉(zhuǎn)為uft8的方法實(shí)例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • Java運(yùn)行時(shí)數(shù)據(jù)區(qū)域(內(nèi)存劃分)的深入講解

    Java運(yùn)行時(shí)數(shù)據(jù)區(qū)域(內(nèi)存劃分)的深入講解

    聽(tīng)說(shuō)Java運(yùn)行時(shí)環(huán)境的內(nèi)存劃分是挺進(jìn)BAT的必經(jīng)之路,這篇文章主要給大家介紹了關(guān)于Java運(yùn)行時(shí)數(shù)據(jù)區(qū)域(內(nèi)存劃分)的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • 關(guān)于JDK8升級(jí)17及springboot?2.x升級(jí)3.x詳細(xì)指南

    關(guān)于JDK8升級(jí)17及springboot?2.x升級(jí)3.x詳細(xì)指南

    這篇文章主要介紹了關(guān)于JDK8升級(jí)17及springboot?2.x升級(jí)3.x的相關(guān)資料,還討論了JPA包路徑從javax改為jakarta,以及Spring?Boot版本升級(jí)和Redis配置調(diào)整等,需要的朋友可以參考下
    2025-01-01
  • log4j配置失效日志中打印Debug信息問(wèn)題

    log4j配置失效日志中打印Debug信息問(wèn)題

    這篇文章主要介紹了log4j配置失效日志中打印Debug信息問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Spring空值和特殊字符的注入方式

    Spring空值和特殊字符的注入方式

    文章介紹了如何通過(guò)創(chuàng)建類、配置文件和測(cè)試代碼來(lái)實(shí)現(xiàn)空值和特殊字符注入,具體包括定義屬性、生成set方法、配置對(duì)象創(chuàng)建和屬性注入、以及編寫(xiě)測(cè)試代碼進(jìn)行驗(yàn)證
    2024-11-11
  • 淺談Java多線程實(shí)現(xiàn)及同步互斥通訊

    淺談Java多線程實(shí)現(xiàn)及同步互斥通訊

    下面小編就為大家?guī)?lái)一篇淺談Java多線程實(shí)現(xiàn)及同步互斥通訊。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • Spring源碼之事件監(jiān)聽(tīng)機(jī)制(實(shí)現(xiàn)EventListener接口方式)

    Spring源碼之事件監(jiān)聽(tīng)機(jī)制(實(shí)現(xiàn)EventListener接口方式)

    這篇文章主要介紹了Spring源碼之事件監(jiān)聽(tīng)機(jī)制(實(shí)現(xiàn)EventListener接口方式),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 詳解如何用SpringBoot 2.3.0.M1創(chuàng)建Docker映像

    詳解如何用SpringBoot 2.3.0.M1創(chuàng)建Docker映像

    這篇文章主要介紹了詳解如何用SpringBoot 2.3.0.M1創(chuàng)建Docker映像,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • 淺談java String不可變的好處

    淺談java String不可變的好處

    這篇文章主要介紹了java String不可變的好處,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03

最新評(píng)論

德格县| 财经| 金寨县| 中超| 桐庐县| 顺昌县| 紫金县| 太保市| 夏津县| 望谟县| 石家庄市| 绵阳市| 德保县| 文昌市| 大冶市| 新和县| 隆德县| 油尖旺区| 陈巴尔虎旗| 肥西县| 潢川县| 原阳县| 西安市| 乌拉特中旗| 和平区| 搜索| 平定县| 泊头市| 金川县| 临颍县| 天长市| 永靖县| 阳江市| 黄山市| 开阳县| 平果县| 上栗县| 柞水县| 梁河县| 鸡东县| 阜新|