最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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)造方法的評論 (共 條)

分享到微博請遵守國家法律
丹凤县| 上杭县| 泸西县| 莫力| 永善县| 河间市| 苍山县| 思茅市| 成安县| 西青区| 闻喜县| 连江县| 凉城县| 五大连池市| 宝鸡市| 城市| 波密县| 甘谷县| 宜黄县| 宜兰市| 城口县| 南雄市| 天门市| 石阡县| 蓬安县| 阳山县| 安乡县| 莒南县| 商城县| 九江县| 玉门市| 浙江省| 封开县| 怀远县| 永川市| 临清市| 乐昌市| 响水县| 隆安县| 四子王旗| 边坝县|