>[success] # 方法的重載
1. **同一個類中**,出現**多個方法名稱相同**,但是**形參列表是不同的**,那么這些方法就是**重載方法(Overload)**。
2. 只要是同一個類中,**方法名稱相同、形參列表不同**,那么他們就是重載的方法,其他都不管!(如:修飾符,返回值類型都無所謂),**形參列表不同指的是:形參的個數、類型、順序不同,不關心形參的名稱**
~~~
public class Person {
// 構造函數初始化 age 和 name
Person(int a, String n) {
}
Person() {
}
}
~~~
* 方法重載的主要形式**體現在**:
1.1. 參數的個數**不同**
~~~
public class Person {
// 無參 參數個數
void printInfo() {
}
void printInfo(int age) {
}
}
~~~
1.2. 參數的類型**不同**
~~~
public class Person {
// 參數類型
void printInfo(String name) {
}
void printInfo(int age) {
}
}
~~~
1.3. 參數 的順序**不同**
~~~
public class Person {
// 參數順序
void printInfo(String name, int age) {
}
void printInfo(int age, String name) {
}
}
~~~
1.4. 返回值類型和形參變量名**無關**
~~~
public class Person {
// erro 此時不是重載
int printInfo(int age, String name) {
return 10
}
void printInfo(int age, String name) {
}
}
~~~
~~~
public class Person {
// erro 此時不是重載 雖然名字不同
int printInfo(int zz, String aa) {
return 10
}
void printInfo(int age, String name) {
}
}
~~~
* 總結:
1. 方法重載即**方法名相同**,**參數個數類型均不相同**則可以構成重載
2. 下面雖然符合重載但是建議返回值類型最好 **相同**
~~~
public class JavaTest {
// 是重載 方法名相同但參數類型不同
int printInfo(int zz, String aa) {
return 10;
}
void printInfo(String age, String name) {
}
}
~~~
>[danger] ##### 重載意義
1. 調用者只需要記住一個方法名就可以調用各種 不同的版本,來實現各種不同的功能
2. 可讀性好,方法名稱相同提示是同一類型的功能,通過形參不同實現功能差異化的選擇,這是一種專業的代碼設計
>[danger] ##### 重載案例
* 實現可以自增 可以指定增長年齡
~~~
public class Person {
int age;
void setAge() {
age++;
}
void setAge(int num) {
age += num;
}
public static void main(String[] args) {
Person person = new Person();
person.setAge();
System.out.println(person.age); // 1
person.setAge(20);
System.out.println(person.age); // 21
}
}
~~~
- windows -- 環境變量
- Vscode -- 編寫java
- 初始java
- java -- 關鍵字
- 編寫第一個java程序
- java -- 注釋
- 計算機存儲 -- 進制
- java -- 類型
- java -- 變量
- 數字類型
- 布爾類型
- 字符類型
- 類型轉換
- 雙等比較是什么
- java -- 運算符
- 算數運算符
- 字符串拼接
- 關系/比較運算符
- 自增減運算符
- 邏輯運算符
- 三目運算
- 賦值運算符
- 移位運算符
- 位運算符
- 運算符優先級
- java -- 流程控制語句
- if /else if /if -- 判斷
- switch case分支結構
- for -- 循環
- 用雙重for循環
- while -- 循環
- do while -- 循環
- 案例練習
- java -- 數組
- 數組的存儲
- 數組的增刪改查
- 數組的特點
- 數組案例
- 二維數組
- 數組的工具方法
- java -- 方法
- java -- 方法的重載
- java -- 方法的調用流程
- java -- 類方法傳參注意事項
- java -- 方法練習案例
- 對比 return break continue
- for each循環
- java -- 基礎練習
- java -- 面向對象
- java -- 創建類和對象
- java -- 訪問控制符
- java -- 類成員方法
- java -- 構造方法
- java -- this
- java -- 封裝
- java -- 對象內存圖
- java -- 創建對象案例
- java -- static
- java -- 繼承
- super -- 關鍵字
- java -- 構造塊和靜態代碼塊
- java -- 重寫
- java -- final
- java -- 多態
- java -- 抽象類
- java -- 接口
- 引用類型數據轉換
- 綜合案例
- java -- 內部類
- java -- 回調模式
- java -- 枚舉類型
- java -- switch 使用枚舉
- java -- 枚舉方法使用
- java -- 枚舉類實現接口
- java -- javaBean
- java -- package 包
- java -- import
- java -- 遞歸練習
- java -- 設計模式
- 單例模式
- java -- 注解
- java -- 元注解
- Java -- 核心類庫
- java -- 處理字符串
- Java -- String
- String -- 常用方法
- String -- 正則
- Java -- StringBuilder 和 StringBuffer
- 知識點
- Java -- StringJoiner 字符串拼接
- 練習題
- 字符串的總結
- Java -- 包裝類
- Integer
- Double
- Boolean
- Character
- java -- 集合類
- java -- util.Collection
- Iterator接口
- java -- util.List
- java -- ArrayList
- java -- util.Queue
- java -- util.Set
- java -- util.Map
- java -- util.Collections
- Java -- Math
- Java -- java.lang
- Java -- Object
- Java -- 獲取當前時間戳
- Java -- 異常
- Java -- java.util
- java -- Date
- java -- Calender
- Java -- java.text
- Java -- SimpleDateFormat
- Java -- java.time
- Java -- java.io
- java -- io.File
- java -- 泛型
- IDEA -- 用法