欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

java重載的代碼,java方法重載代碼

java方法的重載

方法重載概述

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名與空間、虛擬主機(jī)、營銷軟件、網(wǎng)站建設(shè)、珠山網(wǎng)站維護(hù)、網(wǎng)站推廣。

– 在同一個(gè)類中, 允許存在一個(gè)以上的同名方法, 只要它們

的參數(shù)個(gè)數(shù)或者參數(shù)類型不同即可。

? 方法重載特點(diǎn)

– 與返回值類型無關(guān), 只看方法名和參數(shù)列表

– 在調(diào)用時(shí), 虛擬機(jī)通過參數(shù)列表的不同來區(qū)分同名方法

復(fù)制代碼

package method.methodchongzai;

public class MethodChongZai {

public static void main(String[] args) {

int a = 1;

int b = 2;

int c = 3;

System.out.println(sum(a,b,c));

System.out.println(sum(a,b));

}

public static int sum(int a,int b) {

int c = a + b;

return c;

}

public static int sum(int a,int b,int c){

int d = a + b + c;

return d;

}

}

復(fù)制代碼

輸出如下:

復(fù)制代碼

package method.methodchongzai;

public class ChongZai2 {

public static void main(String[] args) {

//定義變量

int a = 10;

int b = 20;

//求和方法

int result = sum(a,b);

System.out.println("result:"+result);

//定義變量

int c = 30;

//求和方法

//int result2 = sum2(a,b,c);

int result2 = sum(a,b,c);

System.out.println("result2:"+result2);

}

//不能出現(xiàn)方法名相同,并且參數(shù)列表也相同的情況

// public static int sum(int x,int y) {

// return x + y;

// }

public static float sum(float a,float b) {

return a + b;

}

//求三個(gè)數(shù)據(jù)的和

/*

public static int sum2(int a,int b,int c) {

return a + b + c;

}

*/

public static int sum(int a,int b,int c) {

return a + b + c;

}

//求兩個(gè)數(shù)據(jù)的和方法

public static int sum(int a,int b) {

//int c = a + b;

//return c;

return a + b;

}

}

復(fù)制代碼

輸出結(jié)果:

Java重載和重寫?

(1)方法重載是讓類以統(tǒng)一的方式處理不同類型數(shù)據(jù)的一種手段。多個(gè)同名函數(shù)同時(shí)存在,具有不同的參數(shù)個(gè)數(shù)/類型。

重載Overloading是一個(gè)類中多態(tài)性的一種表現(xiàn)。

(2)java的方法重載,就是在類中可以創(chuàng)建多個(gè)方法,它們具有相同的名字,但具有不同的參數(shù)和不同的定義。

調(diào)用方法時(shí)通過傳遞給它們的不同參數(shù)個(gè)數(shù)和參數(shù)類型來決定具體使用哪個(gè)方法,這就是多態(tài)性。

(3)重載的時(shí)候,方法名要一樣,但是參數(shù)類型和個(gè)數(shù)不一樣,返回值類型可以相同也可以不相同。無法以返回型別作為重載函數(shù)的區(qū)分標(biāo)準(zhǔn)。

下面是重載的例子:

packagec04.answer;//這是包名

//這是這個(gè)程序的第一種編程方法,在main方法中先創(chuàng)建一個(gè)Dog類實(shí)例,然后在Dog類的構(gòu)造方法中利用this關(guān)鍵字調(diào)用不同的bark方法。

不同的重載方法bark是根據(jù)其參數(shù)類型的不同而區(qū)分的。

//注意:除構(gòu)造器以外,編譯器禁止在其他任何地方中調(diào)用構(gòu)造器。

packagec04.answer;

publicclassDog{

Dog()

{

this.bark();

}

voidbark()//bark()方法是重載方法

{

System.out.println(\"nobarking!\");

this.bark(\"female\",3.4);

}

voidbark(Stringm,doublel)//注意:重載的方法的返回值都是一樣的,

{

System.out.println(\"abarkingdog!\");

this.bark(5,\"China\");

}

voidbark(inta,Stringn)//不能以返回值區(qū)分重載方法,而只能以“參數(shù)類型”和“類名”來區(qū)分

{

System.out.println(\"ahowlingdog\");

}

publicstaticvoidmain(String[]args)

{

Dogdog=newDog();

//dog.bark();[Page]

//dog.bark(\"male\",\"yellow\");

//dog.bark(5,\"China\");

然后我們再來談?wù)勚貙懀∣verriding)

(1)父類與子類之間的多態(tài)性,對(duì)父類的函數(shù)進(jìn)行重新定義。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫(Overriding)。在Java中,子類可繼承父類中的方法,而不需要重新編寫相同的方法。

但有時(shí)子類并不想原封不動(dòng)地繼承父類的方法,而是想作一定的修改,這就需要采用方法的重寫。

方法重寫又稱方法覆蓋。

(2)若子類中的方法與父類中的某一方法具有相同的方法名、返回類型和參數(shù)表,則新方法將覆蓋原有的方法。

如需父類中原有的方法,可使用super關(guān)鍵字,該關(guān)鍵字引用了當(dāng)前類的父類。

(3)子類函數(shù)的訪問修飾權(quán)限不能少于父類的;

下面是重寫的例子:

概念:即調(diào)用對(duì)象方法的機(jī)制。

動(dòng)態(tài)綁定的內(nèi)幕:

1、編譯器檢查對(duì)象聲明的類型和方法名,從而獲取所有候選方法。試著把上例Base類的test注釋掉,這時(shí)再編譯就無法通過。

2、重載決策:編譯器檢查方法調(diào)用的參數(shù)類型,從上述候選方法選出唯一的那一個(gè)(其間會(huì)有隱含類型轉(zhuǎn)化)。

如果編譯器找到多于一個(gè)或者沒找到,此時(shí)編譯器就會(huì)報(bào)錯(cuò)。試著把上例Base類的test(byteb)注釋掉,這時(shí)運(yùn)行結(jié)果是11。

3、若方法類型為priavtestaticfinal,java采用靜態(tài)編譯,編譯器會(huì)準(zhǔn)確知道該調(diào)用哪個(gè)方法。

4、當(dāng)程序運(yùn)行并且使用動(dòng)態(tài)綁定來調(diào)用一個(gè)方法時(shí),那么虛擬機(jī)必須調(diào)用對(duì)象的實(shí)際類型相匹配的方法版本。

在例子中,云南java課程發(fā)現(xiàn)b所指向的實(shí)際類型是TestOverriding,所以b.test(0)調(diào)用子類的test。

但是,子類并沒有重寫test(byteb),所以b.test((byte)0)調(diào)用的是父類的test(byteb)。

如果把父類的(byteb)注釋掉,則通過第二步隱含類型轉(zhuǎn)化為int,最終調(diào)用的是子類的test(inti)。

java的重載實(shí)例?

void Try(int m,int n){

x=m;

y=n;

}

中的void 去掉,返回void 也算返回一種類型,而構(gòu)造方法是沒有返回類型的,因此編譯器不把其看做構(gòu)造方法,更不用提構(gòu)造方法的重載了

Java編寫程序?qū)崿F(xiàn)方法重載。

因?yàn)槟銢]有指定數(shù)據(jù)類型,所以默認(rèn)用int類型給你,double或者float等等都一樣,只是數(shù)據(jù)類型改一下而已。

public class Test {

public int max(int a, int b) {

int intMax = Math.max(a, b);

return intMax;

}

public int max(int a, int b, int c) {

// 可以直接調(diào)用本類的max(int a, int b)方法,起到代碼重復(fù)利用效果

int intMax = max(a, b);

intMax = max(intMax, c);

return intMax;

}

public static void main(String[] args) {

Test t = new Test();

System.out.println(t.max(2, 1));

System.out.println(t.max(2, 6, 5));

}

}

當(dāng)前標(biāo)題:java重載的代碼,java方法重載代碼
網(wǎng)站鏈接:http://chinadenli.net/article7/dsipooj.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)外貿(mào)建站外貿(mào)網(wǎng)站建設(shè)網(wǎng)站制作App開發(fā)Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化