java基礎—方法重載(overload)

一、方法的重載

  

  方法名一樣,但參數不一樣,這就是重載(overload)。

  所謂的參數不一樣,主要有兩點:第一是參數的個數不一樣,第二是參數的類型不一樣。只要這兩方面有其中的一方面不一樣就可以構成方法的重載了。

復制代碼
 1 package cn.galc.test;2 3 public class TestOverLoad {4 5     void max(int a, int b) {6         System.out.println(a > b ? a : b);7     }8 9     /*
10      * int max(int a, int b) { 
11      *         return a > b ? a : b; 
12      * }
13      */
14 
15     void max(float a, float b) {
16         System.out.println(a > b ? a : b);
17     }
18 }
復制代碼

  這里有void修飾符的兩個max方法名字相同,但它們的參數類型不一樣,所以可以構成重載。而int??max(int?a?,?int?b)方法與void??max(int?a,?int?b)方法是不構成重載的,現在它們是重名的兩個方法,在一個類中聲明兩個重名的方法是不允許的,編譯會出錯。方法名一樣,參數類型一樣,只有返回值不一樣,這個不構成重載,因為方法可以這么調用,調用一個方法時可以不使用的它返回值,所以當調用這兩個方法時,把整型的數傳進去,由于兩個方法都是一樣的名字,一樣的參數類型,所以編譯器無法區分到底要調用的是哪一個方法。構成重載深層次的原因:只要這兩個方法編譯器能區分開來,在調用的時候知道要調用的是哪一個,不會產生混淆,這兩個方法就構成重載。

再看下面這兩個方法:

復制代碼
1 int max(int a, int b) {
2     System.out.println("調用的int max(int a, int b)方法");
3     return a > b ? a : b;
4 }
5      
6 int max(short a, short b) {
7     System.out.println("調用的int max(short a, short b)方法");
8     return a > b ? a : b;
9 }
復制代碼

  這兩個方法也是可以構成重載的,因為編譯器一看到整數,就會把它當作int類型。所以當把整數傳進來的時候,編譯器首先調用的是max(int?a?,?int?b)這個方法。而要想調用max(short?a?,short?b)這個方法,那么就得在main方法里面這樣寫:

復制代碼
1 public static void main(String[] args) {
2     TestOverLoad t= new TestOverLoad();
3     t.max(3,4);  //這里調用的是max(int a , int b)這個方法
4     short a = 3;
5     short b = 4;
6     t.max(a, b);  //這里調用的是max(short a , short b)這個方法。
7 }
復制代碼

二、構造方法的重載

與普通方法一樣,構造方法也可以重載

復制代碼
 1 package cn.galc.test;2 3 public class Person {4 5     int id;6     int age;7     8     /**9      * 構造方法
10      */
11     public Person() {
12         id=0;
13         age=20;
14     }
15     
16     /**
17      * 構造方法重載一
18      * @param i
19      */
20     public Person(int i) {
21         id=i;
22         age=20;
23     }
24     
25     /**
26      * 構造方法重載二
27      * @param i
28      * @param j
29      */
30     public Person(int i,int j) {
31         id=i;
32         age=j;
33     }
34 }
復制代碼

轉載于:https://www.cnblogs.com/estellez/p/5614839.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/457714.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/457714.shtml
英文地址,請注明出處:http://en.pswp.cn/news/457714.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

word 編輯域中的漢字_word中插入的cad對象無法雙擊編輯問題解決記錄

昨日,安裝了天正插件5.0后,插入word中的cad圖無法編輯了,彈出提示的大意是檢查是否安裝了cad或者是否關閉了CAD中所有的彈窗。在此之前,計算機裝了office2010和cad2014及cad2018,office自動關聯cad2018,即使…

php實現注冊登陸驗證

歡迎界面很簡單&#xff0c;直接放上代碼 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml"> <head&…

iOS touch事件單擊雙擊區分響應

如果您的 iPhone 應用里有個 view&#xff0c;既有單擊操作又有雙擊操作。用戶雙擊 view 時&#xff0c;總是先執行一遍單擊的操作再執行雙擊的操作。所以直接判斷時就會發現不能直接進入雙擊操作。下面是區分 touch 事件是單擊還是雙擊的方法 -(void)singleTap{ NSLog(&quo…

搭建高可用的redis集群,避免standalone模式帶給你的苦難

現在項目上用redis的話&#xff0c;很少說不用集群的情況&#xff0c;畢竟如果生產上只有一臺redis會有極大的風險&#xff0c;比如機器掛掉&#xff0c;或者內存爆掉&#xff0c;就比如我們生產環境 曾今也遭遇到這種情況&#xff0c;導致redis內存不夠掛掉的情況&#xff0c;…

python計算a的平方加b的平方_NumPy計算范數2的平方

老實說&#xff0c;沒有比np.inner或np.dot更快的了。如果你覺得中間變量很煩人&#xff0c;你可以創建一個lambda函數&#xff1a;sqeuclidean lambda x: np.inner(x, x)np.inner和np.dot利用BLAS例程&#xff0c;幾乎肯定比標準的元素乘法加和快。In [1]: %%timeit -n 1 -r …

php連接MySQL

先說一下我踩了三天的坑 我在這之前用mysql申請了一個數據庫&#xff0c;然后用php連接一直連接不上&#xff0c;試了許多辦法&#xff0c;都不行 下載MySQL時顯示3306端口被占用&#xff0c;所以選了3307 一直報錯&#xff0c;三天后&#xff0c;終于知道了&#xff0c;你用的…

SVG動畫

動畫原理 SVG動畫&#xff0c;就是元素的屬性值關于時間的變化。 如下圖來說&#xff0c;元素的某個屬性值的起始值&#xff08;from&#xff09;到結束值&#xff08;to&#xff09;在一個時間段&#xff08;duration&#xff09;根據時間函數&#xff08;timing-function&…

bootstrap彈出的模態框水平垂直居中的實現

學習javascript從入門到放棄&#xff01;&#xff0c;這是第一篇隨筆&#xff0c;經驗不足&#xff0c;如有不當之處&#xff0c;還望指出。好了廢話不多說直接切入正題吧 1.bootstrap默認的model寫法&#xff1a; //觸發模態框的button <button data-toggle"modal&quo…

python開發實踐教程_Python開發實踐教程

前言第一章 通過求三角形面積步入Python程序世界 案例1-1 求三角形面積 導讀 知識梳理與擴展 小結 練習一第二章 常用運算、使用自定義函數 案例2-1 用函數的方法計算三角形面積 導讀 案例2-2 開發一個求三角形面積的工具包 知識梳理與擴展 小結 練習二第三章 分支、循環和列表…

正則表達式 PHP

正則表達式的常用函數&#xff1a; 先寫一個函數show&#xff0c;用來輸出數組&#xff0c;使代碼看起來方便&#xff0c;且把經常重復用到的量放在前面 function show($varnull) {if(empty($var))//檢測變量是否為空{echo null;}elseif (is_array($var)||is_object($var))//…

iis發布網站怎么支持.json文件

轉載于:https://www.cnblogs.com/daizhipeng/p/5622839.html

PHP Cookie和Session

cookie cookle常用來識別用戶&#xff0c;可以理解為瀏覽器留下的一種文件&#xff0c;cookie可以分為會話cookie和硬盤cookie兩種&#xff0c;會話cookie生命周期短&#xff0c;瀏覽器關閉即銷毀&#xff0c;硬盤cookie生命周期由開發者設定&#xff0c;可長可短 1.創建cook…

瀏覽器渲染機制

1. 明白瀏覽器渲染的目的 可訪問性&#xff08;Accessability&#xff09;、加載性能和重構靈活性一直是前端工程師們關心的主題。 其中加載性能與瀏覽器的渲染機制深深掛鉤&#xff0c;弄明白瀏覽器背后的渲染機制&#xff0c;才能在日常的前端的開發中明白如何進行性能優化。…

java中List Set Map使用

Testpublic void run(){ArrayList<String> list new ArrayList<String>();list.add( "美女");list.add( "帥哥");list.add( "芙蓉姐姐" );for (int i 0; i < list.size(); i) {String strlist.get(i);System. out.println(str);…

python免費開源工具推薦_年薪200萬的程序員,推薦這10大Python免費開源工具!

原標題&#xff1a;年薪200萬的程序員&#xff0c;推薦這10大Python免費開源工具&#xff01;毫無疑問&#xff0c;Python是最流行的語言之一&#xff0c;其成功的原因之一是它為科學計算提供了廣泛的報道。 在這里&#xff0c;我們仔細研究用于機器學習和數據科學的十大Python…

通過Yeoman快速搭建AngularJS webapp應用的實踐

這里主要記錄關于使用yeoman快速構建angluarJS的前端應用的實踐&#xff1a; 安裝node、yeoman等過程略去 1、首頁我們可以在公共的腳手架中找到自己想要的腳手架&#xff0c;官方腳手架庫的地址 Yeoman generators: http://yeoman.io/generators/ 這里我們選擇官方團隊出的ang…

[Objective-C]編程藝術 筆記整理

看了《禪與 Objective-C 編程藝術》&#xff0c;發現不少平時不注意的或注意但沒有系統總結的東西&#xff0c;特此記錄一下。 這次沒有整理完&#xff0c;后續更新會結合手里的一些其他資料整理。 新博客wossoneri.com傳送門 完整的介紹看這兩個鏈接Google開源項目風格指南禪與…

python大數據工程師 培訓_大數據工程師學習之路

大數據的作用&#xff1a;發現過去事件的特征預測未來最優化選擇職位劃分&#xff1a;數據產品經理數據分析師->商業敏感性&#xff0c;產品經理的助手數據研發工程師數據挖掘工程師/數據科學家需要準備的技術知識&#xff1a;Linux操作系統與網絡編程&#xff1a;進程/線程…

python序列

python序列 列表 python變量不存放值&#xff0c;之存放值的引用&#xff0c;所以列表中元素可以是不同類型 1.常用方法 1.1 增加元素 append,在末尾插入元素 extend&#xff0c;將一個列表整體插入到尾部 insert&#xff0c;將某個元素插入到特定位 /*&#xff0c;拼合…

前端資源(11)

移動端API 地址99移動端知識集合 https://github.com/jtyjty99999/mobileTech移動端前端開發知識庫 https://github.com/AlloyTeam/Mars移動前端的一些坑和解決方法&#xff08;外觀表現&#xff09; http://caibaojian.com/mobile-web-bug.html【原】移動web資源整理 http://w…