java第十八課 —— 重載、可變參數

方法重載

基本介紹

java 中允許同一個類中,多個同名方法的存在,但要求形參列表不一致!

比如:System.out.println(); out 是 PrintStream 類型

重載的好處

  1. 減輕了起名的麻煩
  2. 減輕了記名的麻煩

注意事項和使用細節

  1. 方法名:必須相同
  2. 參數列表:必須不同(參數類型個數順序,至少有一樣不同,參數名無要求)
  3. 返回類型:無要求

練習題

第一題:b c d e
在這里插入圖片描述

第二題:編寫程序,類 Methods 中定義三個重載方法并調用。方法名為 m。三個方法分別接收一個 int 參數、兩個 int 參數、一個字符串參數。分別執行平方運算并輸出結果,相乘并輸出結果,輸出字符串信息。在主類的 main() 方法中分別用參數區別調用三個方法。

import java.util.Scanner;
public class OverLoadExercise{public static void main(String[] args){Methods method = new Methods();int result1 = method.m(10);System.out.println("平方運算:" + result1);	int result2 = method.m(9,10);	System.out.println("兩數相乘并輸出:" + result2);String s = method.m("方法的重載");System.out.println("打印字符串:" + s);			}
}
class Methods{public int m(int num){return num * num;}public int m(int num1, int num2){return num1 * num2;}public String m(String s){return s;}}

第三題:在 Methods 類,定義三個重載方法 max(),第一個方法,返回兩個 int 值中的最大值,第二個方法,返回兩個double 值中的最大值,第三個方法,返回三個 double 值中的最大值,并分別調用三個方法。

import java.util.Scanner;
public class OverLoadExercise{public static void main(String[] args){Methods method = new Methods();int result1 = method.max(1,10);System.out.println("兩個int值的最大值:" + result1);	double result2 = method.max(9.0,10.0);	System.out.println("兩個double值的最大值:" + result2);double result3 = method.max(1.0,2.0,3.0);System.out.println("三個double值的最大值:" + result3);			}
}
class Methods{public int max(int num1, int num2){return num1 > num2 ? num1 : num2;}public double max(double num1, double num2){return num1 > num2 ? num1 : num2;}public double max(double num1, double num2, double num3){double max1 = num1 > num2 ? num1 : num2;return max1 > num3 ? max1 : num3;}}

可變參數

基本概念

java 允許將同一個類中多個同名同功能但參數個數不同的方法,封裝成一個方法。就可以通過可變參數實現。

基本語法

訪問修飾符 返回類型 方法名(數據類型... 形參名){}

例子:求和。

//1. int... 表示接受的是可變參數,類型是int,即可以接收多個int(0-多)
//2.使用可變參數時,可以當做數組來使用 即 nums 可以當做數組
//3.遍歷nums求和
public class VarParameter{public static void main(String[] args){HspMethod m = new HspMethod();System.out.println("和為:" + m.sum(1,9,80));}
}
class HspMethod{public int sum(int... nums){int sum = 0;for(int i = 0; i < nums.length; i++){sum += nums[i];}//System.out.println("接收的參數個數= "+ nums.length);return sum;}
}

注意事項和使用細節

  1. 可變參數的實參可以為 0 個或任意多個

  2. 可變參數的實參可以為數組

    例子:

    public class VarParameter{public static void main(String[] args){HspMethod m = new HspMethod();int[] arr = {1,2,3};m.sum(arr);}
    }
    class HspMethod{public void sum(int... nums){System.out.println("接收的參數個數="+ nums.length);}
    }
    
  3. 可變參數的本質就是數組

  4. 可變參數可以和普通類型的參數一起放在形參列表,但必須保證可變參數在最后

    public class VarParameter{public static void main(String[] args){HspMethod m = new HspMethod();m.sum("Str",2,1.0,2.0);}
    }
    class HspMethod{public void sum(String m, int n, double... nums){System.out.println("接收的參數為:" + m + " " + n + " " + nums[0] + " " + nums[1]);}
    }
    
  5. 一個形參列表中只能出現一個可變參數

練習題

有三個方法,分別實現返回姓名和兩門課成績(總分),返回姓名和三門課成績(總分),返回姓名和五門課成績(總分)。封裝成一個可變參數的方法。

public class VarParameter{public static void main(String[] args){HspMethod m = new HspMethod();m.showScore("王二",99.5,100);m.showScore("張三",99,100,98.5);m.showScore("李五",99,100,100,100,90.5);}
}
class HspMethod{public void showScore(String name, double... nums){double sum = 0.0;int i = 0;for(; i < nums.length; i++){sum += nums[i];}System.out.println("姓名:" + name );System.out.println("一共有"+ i + "門成績,課程總成績為:" + sum);}
}

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

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

相關文章

【Vue】Vue2中的Vuex

目錄 Vuex介紹Vuex 中的核心概念 在vue2中使用Vuex安裝 Vuex創建一個 Vuex Store在 Vue 實例中使用 Vuex編寫 Vuex 的 state、mutations 和 actions在組件中使用 Vuex Vuex的核心State組件中獲取 Vuex 的狀態mapState 輔助函數對象展開運算符 Getter基本使用示例 通過屬性訪問通…

從多站點到多活,XEOS 對象數據容災能力再提升

近日&#xff0c; XSKY SDS V6.4 新版本發布&#xff0c;其中 XEOS V6.4 全新升級并完善了統一命名空間功能&#xff0c;更進一步增強和完善了異地容災方案&#xff0c;配合強一致代理讀&#xff0c;可以實現異地多活&#xff1b;同時大幅降低管理復雜度&#xff0c;有效降低容…

Nginx中的limit_req模塊和limit_conn模塊詳解

引言 在高流量場景下&#xff0c;良好的限流和連接控制策略至關重要&#xff0c;以防止服務器過載&#xff0c;確保服務穩定性和高可用性。Nginx 提供了 limit_req 和 limit_conn 模塊&#xff0c;用以實現請求頻率和并發連接數的限制。本文將詳細介紹這兩個模塊的生效階段和生…

TikTok電商帶貨特訓營,跟隨時代潮流,跨境掘金(8節課)

課程內容&#xff1a; 1-先導課 2-一、店鋪運營認知與思路 3-二、店鋪風控注意事項 4-三、美區Tiktok前期工作-1店鋪入駐模式 5-三、美區Tiktok前期工作-2指紋瀏覽器介紹 6-三、美區Tiktok前期工作-4綁定電話號碼 7-三、美區Tiktok前期工作-5添加倉庫地址 8-三、美區Ti…

GIS讀研與求職準備:植被定量遙感專業研0

本文介紹植被定量遙感專業研究生入學初期&#xff0c;為將來從事開發類工作所作求職準備的規劃路徑、方向選擇等方面的建議。 前面提到了&#xff0c;最近有很多師弟師妹詢問關于研究生方向選擇、求職準備等方面的問題。因為很多朋友的提問比較有共性&#xff0c;所以會在征得對…

【秒殺系統】從零開始打造簡易秒殺系統(一):防止超賣

【秒殺系統】從零開始打造簡易秒殺系統&#xff08;一&#xff09;&#xff1a;防止超賣 前言 大家好&#xff0c;好久不發文章了。&#xff08;快一個月了- -&#xff09;最近有很多學習的新知識想和大家分享&#xff0c;但無奈最近項目蠻忙的&#xff0c;很多文章寫了一半擱…

redis筆記1

1-nosql&#xff08;非關系型數據庫&#xff09; 定位緩存&#xff0c;提高數據讀寫速度&#xff0c;減輕對數據儲存與訪問壓力&#xff0c;不建議存敏感數據&#xff08;重要數據&#xff09;。 2-特征 &#xff08;1&#xff09;鍵值&#xff08;key-value&#xff09;型 &a…

【面試】Oracle JDK和Open JDK什么關系?

目錄 1. 起源與發展2. 代碼與許可3. 功能與組件4. 使用場景5. 版本更新與支持 1. 起源與發展 1.Oracle JDK是由Oracle公司基于Open JDK源代碼開發的商業版本。2.Open JDK是java語言的一個開源實現。 2. 代碼與許可 1.Oracle JDK包含了閉源組件&#xff0c;并根據二進制代碼許…

深入Java:JSON解析與操作的藝術

哈嘍&#xff0c;大家好&#xff0c;我是木頭左&#xff01; 一、初識JSON&#xff1a;數據格式的優雅舞者 在現代Web開發中&#xff0c;JSON&#xff08;JavaScript Object Notation&#xff09;以其輕量級和易于閱讀的特點成為了數據交換的首選格式。它基于JavaScript的一個…

用最通俗的話理解什么是協程

參考&#xff1a; 用最通俗的話理解什么是協程-CSDN博客

FreeRTOS_信號量_學習筆記

信號量的特性 消息隊列用于傳輸多個數據&#xff0c;但是有時候我們只需要傳遞狀態&#xff0c;這個狀態值需要用一個數值表示。套用隊列筆記中的流水線例子&#xff0c;可以理解為流水線上工件的數量。 信號&#xff1a;起通知作用 量&#xff1a;還可以用來表示資源的數量 當…

打印機手動雙面打印技巧

一、WORD和PDF &#xff08;1&#xff09;首先選擇要打印的頁面范圍&#xff0c;然后選擇僅奇數頁打印 &#xff08;2&#xff09;將打印完的紙張翻過來&#xff0c;白紙朝上&#xff0c;紙張的頭部先放入打印機 &#xff08;3&#xff09;選擇要打印的頁面范圍&#xff0c;然…

oracle.jdbc.OracleDatabaseException: ORA-00911: 無效字符

先吐槽一句&#xff0c;oracle 真坑啊&#xff01; 一個很正常的sql 語句一直報 ORA-00911: 無效字符 &#xff0c;拿到數據庫去執行一點問題沒有&#xff0c;一運行代碼就報錯&#xff0c;然后一個字符一個字符的對比&#xff0c;竟然是因為sql 結尾的一個 ";" 導致…

TP6開發文檔概述

TP6&#xff08;ThinkPHP 6&#xff09;是一個使用PHP語言開發的快速、兼容且簡單的面向對象開發框架。以下是一個簡化的TP6開發文檔概述&#xff0c;涵蓋了核心功能和一些常用方法&#xff1a; 一、環境準備 PHP安裝&#xff1a;確保已經安裝了與TP6兼容的PHP版本。 Composer…

PHPIPAM在建立數據庫階段報錯

如題&#xff0c;參考大佬的操作IP地址管理系統phpipam部署-CSDN博客搭建PHPIPAM&#xff0c;不過我沒有選擇1.4&#xff0c;而是直接搭建了1.6版本&#xff0c;一切順利&#xff0c;到了最后建立數據庫階段&#xff0c;輸入數據庫賬號和密碼后提示Cannot install sql SCHEMA f…

大模型部署_書生浦語大模型 _作業2

本節課可以讓同學們實踐 4 個主要內容&#xff0c;分別是&#xff1a; 1、部署 InternLM2-Chat-1.8B 模型進行智能對話 1.1安裝依賴庫&#xff1a; pip install huggingface-hub0.17.3 pip install transformers4.34 pip install psutil5.9.8 pip install accelerate0.24.1…

Elasticsearch之文本分析

文本分析基本概念 官網&#xff1a;Text analysis | Elasticsearch Guide [7.17] | Elastic 官網稱為文本分析&#xff0c;這是對文本進行一直分析處理的方式&#xff0c;基本處理邏輯是為按照預先制定的分詞規則&#xff0c;把原本的文檔進行分割成多個小顆粒度的詞項&#x…

Python pands使用引擎實現excel條件格式

截至我的知識更新日期&#xff08;2023年&#xff09;&#xff0c;Pandas 庫本身并不直接支持Excel條件格式。Pandas 是一個強大的Python數據分析庫&#xff0c;它主要用于數據分析和操作&#xff0c;而不是用于創建或編輯Excel文件的格式。 然而&#xff0c;你可以使用 openp…

如何給出好的“文言一心”指令?

一、文言一心是什么&#xff1f; 在現代技術背景下&#xff0c;“文言一心”還是百度公司創建的一款大語言模型。這款模型基于飛槳深度學習平臺和文心知識增強大模型&#xff0c;并擁有強大的中文語料庫&#xff0c;可以理解和生成富含文化內涵和哲理的文本內容。其核心技術架構…

社區醫院|基于SprinBoot+vue的社區醫院管理服務系統(源碼+數據庫+文檔)

社區醫院管理服務系統 目錄 基于SprinBootvue的社區醫院管理服務系統 一、前言 二、系統設計 三、系統功能設計 1系統功能模塊 2管理員功能模塊 3用戶功能模塊 4醫生功能模塊 四、數據庫設計 五、核心代碼 六、論文參考 七、最新計算機畢設選題推薦 八、源碼獲取…