999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

方法重載在JAVA中的應用之我見

2016-05-14 12:40:49符志軍王景景
智富時代 2016年8期

符志軍 王景景

【摘 要】方法重載是讓類以統一的方式處理不同類型數據的一種手段。多個同名函數同時存在,具有不同的參數個數/類型。重載Overloading是一個類中多態性的一種表現。Java的方法重載,就是在類中可以創建多個方法,它們具有相同的名字,但具有不同的參數和不同的定義。

【關鍵詞】方法重載;多態性;參數

一、方法重載性質

多態性可以用“一個對外接口,多個內在實現方法”來表示。也就是說,我們可以在一個類中定義多個同名方法,程序在調用某個方法時,系統會自動根據參數類型和個數的不同調用不同的方法,這種機制被稱為方法重載。它與方法重寫不一樣。方法重載:同一個類中,方法名相同,參數不同,方法體不同;方法重寫:不同的類中,方法體不同,參數相同,方法名也相同.(兩同兩不同)方法重載的作用:在有多個同名參數的類中,在調用時通過不同的參數來調用不同的方法。方法重寫的作用: 在繼承中,子類可用方法重寫,對父類進行擴充或改造。

Java支持重載方法,即多個方法可以共享一個名字。但是,各方法之間必須在參數個數、順序或類型方面有所區別。如下就是一個重載了而重載要滿足一下條件:1.必須是同一個類。2.方法名(也可以叫函數)一樣。3.參數類型不一樣或參數數量不一樣。

例如:

public class DoubleIt{

public static String doubleItt(String data){ // 參數類型為String

System.out.println(data+data);

returndata+data;

}

public static intdoubleItt(int data){ // 參數類型為int

System.out.println(2*data);

return 2*data;

}

}

二、方法重載作用

方法重載就是對不同數據類型的的數據實現相似的操作。方法重載,很大程度是為了程序的可讀性,即使不用,也是不會妨礙程序運行的。當我們利用繼承由父類創建子類時,如果父類中的某些方法不適合子類,我們無法刪除它們,但可以重新定義它們,這被稱為覆蓋。

三、方法重載的類型

java允許在一個類中,多個方法擁有相同的名字,但在名字相同的同時,必須有不同的參數,這就是重載,編譯器會根據實際情況挑選出正確的方法,如果編譯器找不到匹配的參數或者找出多個可能的匹配就會產生編譯時錯誤,這個過程被稱為重載的解析。

(一)普通方法的重載

普通方法的重載是Java實現多態技術的重要手段,為編程帶來了很多便利

當方法同名時,為了讓編譯器區別他們,至少需要下面之一不同:

1)參數個數不同

2)對應位置上的參數類型不同不允許參數完全相同而只是返回值不同的情況出現。無法進行編譯,程序在eclips中顯示錯誤。

(二)構造方法的重載

(三)重載的解析

當類的設計者提供了重載方法之后,類的使用者在使用這些方法時編譯器需要確定調用哪一個方法,確定的唯一依據是參數列表,確定的過程被稱為重載的解析。

以下舉些例子說明:

showaa(int a ,int b,int c) //這是一個具有相同的參數數據類型的方法

showaa(int a ,int b,double c) //這是一個具有不同數據類型參數的方法

showaa(int a ,double b,double c)// 這是一個具有不同數據類型參數的方法

showaa(double a,doubleb,int c) //這是一個具有不同數據類型參數的方法

下面是調用

showaa(4,2,3);//1,2,3,4都是可行方法所有參數完全匹配1

showaa(6.0,2.0,3.0);//沒有一個可行方法

showaa(4.0,2,3);//4是最佳可行方法

showaa(7,2.0,3);//3,4都是可行方法,沒有最佳可行方法,報錯。

重載和覆蓋都是多態的表現,他們在某些地方很相似,很容易引起初學者的疑惑,這里將它們之間的區別總結如下:

1.重載和覆蓋的方法名稱都相同,但重載要求參數列表不同,而覆蓋要求參數列表完全相同。

2.重載對于方法前面的修飾符沒有限制,而覆蓋則對這些修飾符的使用有限制

3.重載時編譯器在編譯期間就可以確定調用那一個方法,而覆蓋則有可能在運行期間才能確定。

四、方法重載與重寫的區別

方法重載是指方法名和方法的返回類型都相同,但方法參數不一樣. 參數不一樣體現在參數個數和參數類型不一樣.方法重寫:方法重寫是相對繼承而言的. 重寫的方法名.返回類型,參數類型和參數個數都要求和父類中的一樣. 這是重載和重寫形式上的區別。

本質上的區別是:重寫Overriding是父類與子類之間多態性的一種表現,重載Overloading是一個類中多態性的一種表現。如果在子類中定義某方法與其父類有相同的名稱和參數,我們說該方法被重寫(Overriding)。子類的對象使用這個方法時,將調用子類中的定義,對它而言,父類中的定義如同被"屏蔽"了。如果在一個類中定義了多個同名的方法,它們或有不同的參數個數或有不同的參數類型,則稱為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類型。

java中重寫父類的方法只需寫出與父類一模一樣的這個方法即可,包括方法名,參數類型,參數值,返回值。java重寫父類方法后,原有的父類里面的實現全部清空,變為重寫后的內容。

方法重載為:

Public static void main(string[] args){

//todo自動生成的方法存根

Overload reload=new overload();

Reload.method();

}

Public void method(){

System.out.println(“這是一個普通的函數”);

}

Private void method(){

System.out.println(“這是對method方法的重載):

}

}

在重載的方法中一般地訪問權限修飾符對方法的重載不影響。也即,它們不是構成不同方法的必要條件。通俗點講,方法的不同和訪問修飾符是否一致沒有任何關系。當然在以上的程序中如果訪問修飾符不一致,而參數相同(或者都沒有參數)的話,java默認其都為同一種方法,因此編譯無法通過,報錯。

【參考文獻】

[1] 張潤蓮,張向利,葉進.案例教學法及其運用[J].桂林電子工業學院學報,2004,24(4):102-105.

[2]李嵐.案例教學法探析[J].云南財貿學院學報,2004,20:347-349.

[3] 宋平;王振;提高Java語言教學效果的探索與實踐[J];沈陽農業大學學報(社會科學版);2006年04期

主站蜘蛛池模板: 成人福利在线观看| 国产综合网站| 亚洲大学生视频在线播放| 亚洲va在线观看| 亚洲精品国产乱码不卡| 国产黄网永久免费| 97人人做人人爽香蕉精品| 亚洲无码高清一区二区| 国产欧美性爱网| 谁有在线观看日韩亚洲最新视频 | 亚洲国产91人成在线| 中文字幕 91| 拍国产真实乱人偷精品| 美女被操91视频| 尤物午夜福利视频| 少妇露出福利视频| 成人伊人色一区二区三区| 粉嫩国产白浆在线观看| 欧美成人精品高清在线下载| 国产在线视频欧美亚综合| 国产精品一线天| 亚洲色无码专线精品观看| 欧美三级不卡在线观看视频| 在线欧美a| 亚洲欧美日韩精品专区| 欧美激情视频一区| 国产欧美中文字幕| 国产成人精品18| 欧美激情视频一区二区三区免费| 亚洲欧美不卡视频| V一区无码内射国产| 91精品网站| 国产精品网址你懂的| 久操线在视频在线观看| 国产日韩精品一区在线不卡| 免费一看一级毛片| 美女无遮挡免费网站| 国产区网址| 亚洲综合一区国产精品| 无码专区国产精品一区| 中文精品久久久久国产网址 | 亚洲AV无码一区二区三区牲色| 国产在线91在线电影| 久爱午夜精品免费视频| 日韩在线成年视频人网站观看| 伊人成人在线视频| 国产成人高精品免费视频| 毛片一级在线| 97国产成人无码精品久久久| 91年精品国产福利线观看久久| 亚洲中文字幕在线精品一区| 天堂在线亚洲| 亚洲国产精品无码久久一线| 成人一区在线| 国产麻豆另类AV| 亚洲av无码人妻| 99久久精品久久久久久婷婷| 在线观看的黄网| 亚洲人人视频| 天天综合色网| 92精品国产自产在线观看| 台湾AV国片精品女同性| 亚洲精品国产成人7777| 原味小视频在线www国产| 精品91自产拍在线| 91在线播放免费不卡无毒| 免费人成在线观看成人片| 97综合久久| 国产91特黄特色A级毛片| 国产极品美女在线观看| 97国产在线播放| 天堂va亚洲va欧美va国产| 91精品国产情侣高潮露脸| 成人在线观看不卡| 亚洲黄网在线| 91麻豆精品视频| 91在线日韩在线播放| 久久国产高清视频| 久久情精品国产品免费| 狠狠色噜噜狠狠狠狠色综合久| av尤物免费在线观看| 国产sm重味一区二区三区|