>[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 -- 用法