五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

150天打卡day11_方法的重載和構(gòu)造方法

2021-04-19 17:10 作者:關(guān)阿姨的Java日記  | 我要投稿

方法的重載

  • 方法的簽名包括兩部分:方法名和參數(shù)列表

  • 是來自于英文單詞signature,外國人認(rèn)為每個簽名都必須是唯一的,不可以有相同的兩個簽名。

  • 那么程序在運行的時候,也是要求在一個類里面不可以有方法簽名完全一樣的兩個方法.

如果這么寫編譯器立馬就會報編譯錯誤,但是如果方法名相同,參數(shù)列表不同的話是可以的

有的同學(xué)會有這樣的誤區(qū),寫成這樣

  • 這樣也是會報編譯錯誤的a,b這兩個變量名編譯器認(rèn)為他就僅僅是兩個名字而已,不做任何判斷,還是會認(rèn)為這兩個方法的參數(shù)列表是一樣的。

  • 但是如果寫成這樣就是可以的,所以呢,參數(shù)列表不同只和參數(shù)的類型,個數(shù),還有順序有關(guān).

?

在一個類里面如果有兩個方法他們的方法名相同,參數(shù)列表不同,就可以把這稱之為是方法的重載為什么會用到方法的重載呢?

來看這樣一個例子,模擬一下現(xiàn)實生活中的收銀系統(tǒng)

假設(shè)收款窗口的的設(shè)計可以采用兩種方式:

  • A:開設(shè)三個窗口,分別用來收取現(xiàn)金,微信支付和支付寶支付,三種支付渠道,用戶在付款的時候根據(jù)需求選擇不同的窗口。

  • B:只開設(shè)一個窗口,但是支持現(xiàn)金支付,微信支付,和支付寶支付三種支付方式

常規(guī)情況下都會認(rèn)為是B的設(shè)計會更加合理。

可以降低用戶的負(fù)擔(dān),用戶去付款的時候不需要再去找相應(yīng)的窗口,只需要到收款窗口,如果你是

微信,就出示微信的二維碼,如果你是支付寶就拿出支付寶的二維碼就可以了。

有了方法的重載,對于同一件事情,如果有不同的解決方法就不用在一個類里面去定義不同的多

個方法了,大大的減少了代碼的冗余。那么在主方法中去調(diào)用的時候,編譯器會自動根據(jù)傳入的

參數(shù)來調(diào)用合適的方法。重載方法的調(diào)用與之前學(xué)習(xí)的方法調(diào)用相同

?

構(gòu)造方法

構(gòu)造方法是在創(chuàng)建對象的時候為其開辟內(nèi)存空間,并且用來初始化成員變量的時候調(diào)用的一個特殊的方法

  • 沒有返回值

  • 方法名必須和類名一致

  • 任何一個類都有他的構(gòu)造方法,如果不寫,編譯器在運行的時候會自動添加一個空的無參構(gòu)造方法,稱之為是默認(rèn)的構(gòu)造方法。但是如果自己定義想要初始化那個成員變量就需要自己去定義構(gòu)造方法,如果自己定義了帶參的構(gòu)造方法,那么原有的空的無參構(gòu)造就會失效。

  • 在創(chuàng)建對象的時候,構(gòu)造函數(shù)跟在new關(guān)鍵字的后面意思就是在實例化了一個對象,而構(gòu)造方法對這個對象進行了初始化,里面的參數(shù)類型和個數(shù)都必須和構(gòu)造方法里面定義的保持一致。

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

初始化成員變量

  • 成員變量的作用域在整個類內(nèi)部都是可見,可用的;

  • ?java會給成員變量一個初始值,初始值為0;

  • 在不同的方法中,可以有同名的局部變量;

this 關(guān)鍵字

可以看到如果在類中聲明成員變量,自己定義一個帶參的構(gòu)造方法來為成員變量賦值,會出現(xiàn)成員變量和自己定義的參數(shù)重名了

public class Student{ ?String name; ?int age; ?public Student(String name, int age){ ? ?name = name; ? ?age = age; ?} }

在類中的方法是既可以使用自己定義的參數(shù),也可以使用成員變量,當(dāng)成員變量和自己定義的參數(shù)發(fā)生重名時,就需要用到一個this關(guān)鍵字來進行區(qū)分哪個是成員變量,哪個是自己定義的參數(shù)。

this關(guān)鍵字用在方法體中,用于指向調(diào)用該方法的當(dāng)前對象,簡單的來說,就是那個對象調(diào)用方法,this就指向哪個對象,

在方法中通過this關(guān)鍵字來指明當(dāng)前對象,用運算符"."來表示對象的屬性,可以理解為“對象的”

但是如果沒有歧義的話,我們可以省略this

構(gòu)造方法的重載

方法可以重載,同樣構(gòu)造方法也是可以重載的,為了方便使用,可以定義多個構(gòu)造方法,這些構(gòu)造方

法都有相同的類名,只是參數(shù)列表不同.

稱之為是構(gòu)造方法的重載,在調(diào)用的時候同樣也是根據(jù)傳入的參數(shù)編譯器會自動判斷調(diào)用的是

哪個構(gòu)造方法


歡迎??點贊+關(guān)注,筆芯??



150天打卡day11_方法的重載和構(gòu)造方法的評論 (共 條)

分享到微博請遵守國家法律
二连浩特市| 沙洋县| 阳谷县| 江安县| 温泉县| 宝鸡市| 洪洞县| 沙雅县| 大足县| 长汀县| 定远县| 高平市| 沂源县| 荥经县| 玉溪市| 泰安市| 昌邑市| 广元市| 探索| 芒康县| 奉贤区| 沁阳市| 卢湾区| 池州市| 阜宁县| 齐齐哈尔市| 汝州市| 西充县| 同心县| 黄冈市| 县级市| 榆树市| 九台市| 沾化县| 滨州市| 博野县| 瓦房店市| 米泉市| 邓州市| 二连浩特市| 江达县|