JAVA全系列 教程
3762个小节阅读:7088k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
重载:一个类中可以定义多个名称相同,但形式参数列表不同的方法。
新手雷区
重载的方法,实际是完全不同的方法,只是名称相同而已!
构成方法重载的条件:
形参列表不同的含义:形参类型、形参个数、形参顺序不同
只有返回值不同不构成方法的重载
如:int a(String str){}
与 void a(String str){}
不构成方法重载
只有形参的名称不同,不构成方法的重载
如:int a(String str){}
与int a(String s){}
不构成方法重载
【示例】方法重载
xxxxxxxxxx
public class Test21 {
public static void main(String[ ] args) {
System.out.println(add(3, 5));// 8
System.out.println(add(3, 5, 10));// 18
System.out.println(add(3.0, 5));// 8.0
System.out.println(add(3, 5.0));// 8.0
// 我们已经见过的方法的重载
System.out.println();// 0个参数
System.out.println(1);// 参数是1个int
System.out.println(3.0);// 参数是1个double
}
/** 求和的方法 */
public static int add(int n1, int n2) {
int sum = n1 + n2;
return sum;
}
// 方法名相同,参数个数不同,构成重载
public static int add(int n1, int n2, int n3) {
int sum = n1 + n2 + n3;
return sum;
}
// 方法名相同,参数类型不同,构成重载
public static double add(double n1, int n2) {
double sum = n1 + n2;
return sum;
}
// 方法名相同,参数顺序不同,构成重载
public static double add(int n1, double n2) {
double sum = n1 + n2;
return sum;
}
//编译错误:只有返回值不同,不构成方法的重载
public static double add(int n1, int n2) {
double sum = n1 + n2;
return sum;
}
//编译错误:只有参数名称不同,不构成方法的重载
public static int add(int n2, int n1) {
double sum = n1 + n2;
return sum;
}
}
1、 定义一个方法处理公司的迟到问题:
(1) 输入:迟到时间,月薪。
(2) 处理逻辑:
① 迟到1-10分钟,警告。
② 迟到11-20分钟,罚款100元。
③ 迟到21分钟-30分钟,罚款200元。
④ 迟到30分钟以上,扣除半日工资。
⑤ 迟到1小时以上,按照旷工计算,扣除3日工资。
(3) 输出:罚款金额
xxxxxxxxxx
public class TestMethod2 {
/**
* (1)输入参数:迟到时间,月薪。
* (2)处理逻辑:
* ①迟到1-10分钟,警告。
* ②迟到11-20分钟,罚款100元。
* ③迟到21分钟-30分钟,罚款200元。
* ④迟到30分钟以上,扣除半日工资。
* ⑤迟到1小时以上,按照旷工计算,扣除3日工资。
* (3)输出罚款金额
*/
public static int late(int lateMinute,double salary){
int fakuan = 0; //罚款
if(lateMinute<11){
System.out.println("警告!!不能迟到!!");
}else if(lateMinute<21){
fakuan = 100;
}else if(lateMinute<31){
fakuan = 200;
}else if(lateMinute<61){
fakuan = (int)(salary/(21.75*2)); //21.75指的是:月平均工作日
}else{
fakuan = (int)(salary*3/(21.75));
}
System.out.println("迟到时间:"+lateMinute+",罚款:"+fakuan);
return fakuan;
}
public static void main(String[] args) {
late(45,42000);
}
}
实时效果反馈
1. 如下关于方法的重载,说法错误的是:
A 重载的方法,实际是完全相同的方法,而且名称相同
B 形参列表不同的含义:形参类型、形参个数、形参顺序不同
C 只有返回值不同不构成方法的重载
D int a(String str){}
与int a(String s){}
不构成方法重载
答案
1=>A