第十三节 方法重载

本文介绍了Java中方法重载的概念,通过实例展示了如何通过改变参数列表实现功能类似的方法。作者强调了方法名相同但参数列表不同的特点,并探讨了重载与参数个数、类型和顺序的关系。此外,还提供了多个实战练习来加深理解,包括比较不同数据类型是否相等和自定义打印方法。最后,作者鼓励反复学习以巩固这一重要知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

    初学java语言的小白,日常记录个人所学、所思、所感、所获。
    请java语言行业的前辈们多多指教, 目前从事汽车制造行业。
    属于零基础自学,愿未来自己感谢今天的选择和努力。加油!

一、方法重载的基本使用

2021、8、29更新
笔记:
1.了解什么是重载,对于功能类似,参数列表不同的方法,直接定义相同名称。在调用时,对应上哪个参数列表,就用哪个方法。
2.重载的特点:方法名称一样,参数列表对应不一样(参数列表扩展,并非完全不一样)。
3.与修饰符无关
/*
题目要求:
定义一个方法,可以多个数字相加

对于功能类似的方法来说,因为参数列表不一样,却需要记住那么多不同方法的名称,太麻烦

方法的重载(overload):
多个方法名称一样,但是参数列表不一样
好处:只需要记住唯一一个方法的名称,就可以实现类似的多个功能。
*/

//按之前学习的方法,完成题目要求。
//缺点:对于功能类似的方法来说,因为参数列表不一样,却需要记住那么多不同方法的名称,太麻烦
//public class Demo01MethodOverLoad {
// public static void main(String[] args) {
// System.out.println(sumTwo(10,20));
// System.out.println(sumThree(10,20,30));
// System.out.println(sumFour(10,20,30,40));
//
// }
//
// //之前学习的两数字相加
// public static int sumTwo(int a,int b){
// int sum = a+b;
// return sum;
// }
//
// //之前学习的三数字相加
// public static int sumThree(int a,int b,int c){
// int sum = a+b+c;
// return sum;
// }
// //之前学习的四数字相加
// public static int sumFour(int a,int b,int c,int d){
// int sum = a+b+c+d;
// return sum;
// }
//}

//重载
public class Demo01MethodOverLoad {
public static void main(String[] args) {
System.out.println(sum(10,20,30,40));
// System.out.println(sum(10,20,30,40,50));//报错,谁能对得上,就用谁,谁都对不上,就报错
}

//两数字相加
public static int sum(int a,int b){
    System.out.println("有两个参数的方法执行了!");
    int sum = a+b;
    return sum;
}

//三数字相加
public static int sum(int a,int b,int c){
    System.out.println("有三个参数的方法执行了!");
    int sum = a+b+c;
    return sum;
}
//四数字相加
public static int sum(int a,int b,int c,int d){
    System.out.println("有四个参数的方法执行了!");
    int sum = a+b+c+d;
    return sum;
}

}

二、方法重载的注意事项

2021、8、29更新
笔记:
1.注意重载与那些因素相关,满足什么条件才能叫重载

/*
重载的特点:
方法名称一样,参数列表不一样

方法重载与下列因素相关(满足下列任何条件,都是重载)
1.参数个数不同
2.参数类型不同
3.参数的多类型顺序不同

方法重载与下列因素无关(满足下列任何条件,不再是重载)
1.与参数的名称无关
2.与方法的返回值类型无关
*/

public class Demo02MethodOverLoadNotice {

public static void main(String[] args) {
    System.out.println(sum(10, 20, 30, 40));
    System.out.println(sum(10,20));

}

//两数字相加
//1.参数个数不同
public static int sum(int a, int b) {
    System.out.println("有两个参数的方法执行了!");
    int sum = a + b;
    return sum;
}

//三数字相加
public static int sum(int a, int b, int c) {
    System.out.println("有三个参数的方法执行了!");
    int sum = a + b + c;
    return sum;
}

//四数字相加
public static int sum(int a, int b, int c, int d) {
    System.out.println("有四个参数的方法执行了!");
    int sum = a + b + c + d;
    return sum;
}


//2.参数类型不同
//double类型
public static double sum(double a, double b) {
    System.out.println("有两个double参数的方法执行了!");
    double sum = a + b;//注意此行代码为强制转换为int类型,后面a+b要括起来
    return sum;
}

//强制转换为int类型的写法

// public static int sum(double a, double b) {
// System.out.println(“有两个double参数的方法执行了!”);
// int sum = (int) (a + b);//注意此行代码为强制转换为int类型,后面a+b要括起来
// return sum;
// }

public static int sum(byte a, byte b) {
    System.out.println("有两个double参数的方法执行了!");
    //byte sum = a+b;//byte、short、char这三种类型发生数学运算时,系统会自动提升为int类型
    int sum = a + b;
    return sum;
}


//3.参数的多类型顺序不同
public static int sum(int a, double b) {
    System.out.println("先int,后double方法执行了!");
    return(int)(a+b);
}

    public static int sum(double a, int b) {
        System.out.println("先double,后int的方法执行了!");
        int sum = (int)(a + b);
        return sum;
    }

    //错误写法,参数名称不一样,无法构成重载

// 1.与参数的名称无关
//调用的时候无法确定参数传递给哪个方法
// public static int getSum(int a, int b) {//参数名称为a,b
// int sum = a + b;
// return sum;
// }
//
// public static int getSum(int x, int y) {//参数名称为x,y
// int sum = x + y ;
// return sum;
// }

//错误写法,参数名称不一样,无法构成重载

// 1.与返回值无关
//单独调用时无法区分返回值
// public static int getSum(int a, int b) {//参数名称为a,b
// return a + b;
//
// }
//
// public static int getSum(int a, int b) {//参数名称为x,y
// return a + b+0.0 ;
//
// }
//}

}

三、重载实战练习一

2021、8、30更新
笔记:
注意:byte、short、int、long、double等不同参数类型调用时的写法。
2:返回值类型是boolean。
3:注意简便写法return a==b;直接分号结尾,不要写问号。
/*
题目要求:
比较两个数据时候相等。
参数类型分别为两个byte,两个short,两个int、long类型
并在main方法中测试
*/

public class Demo03MethodOverLoadSame {
public static void main(String[] args) {
//调用方法一
//byte
byte a=10;
byte b=20;
System.out.println(isSame(a,b));
//调用方法二
//short
System.out.println(isSame((short)10,(short)20));
//int
System.out.println(isSame(11,12));
//long
System.out.println(isSame(10L,20L));
//double
System.out.println(isSame(9.8,9.8));

}

//写法一
public static boolean isSame (byte a, byte b){
System.out.println(“两个byte方法执行啦!”);
return a==b?true:false;
}

//写法二
public static boolean isSame (short a, short b){
System.out.println(“两个short方法执行啦!”);
boolean same;//注意返回值类型应该和定义变量先统一
if(a==b){
same=true;
}else{
same=false;
}
return same;
}

//写法三
public static boolean isSame (int a, int b){
System.out.println(“两个int方法执行啦!”);
if(a==b){
return true;
}else{
return false;
}
}

//写法四
public static boolean isSame (long a, long b) {
System.out.println(“两个long方法执行啦!”);
// return ab?;//错误写法,ab后面不要接问号。注意
return a==b;
}

//写法五
public static boolean isSame (double a, double b) {
System.out.println(“两个double方法执行啦!”);
boolean same;
same=a==b?true:false;
return same;
}
}

四、重载实战练习二

2021、8、30更新
笔记:
题目:判断下面8行代码,哪些构成重载

public class Demo04OverLoadJudge {
public static void open(){}//正确重载
public static void open(int a){}//正确重载
// static void open(int a,int b){}//代码错误,与第十一行冲突
public static void open(double a,int b){}//代码正确
// public static void open(int a, double b){}//代码错误,与第九行冲突
// public static void open(int i,double j){}//代码错误,与第九行冲突
public static void OPEN(){}//正确写法,但不够成重载,方法名称不一样。
// public static void open(int i, int j){}//代码错误,与第六行冲突
}

五、重载实战练习三

2021、8、30更新
笔记:
1.记住同时更改同一代码的快捷键 选中更改的代码再按shift+f6
2.println其实就是println方法的重载
/*

复盘:
1、基本数据类型;
整数类型:byte、short、int、long
浮点数类型:float、double
字符类型:char
布尔类型:boolean(true、false)
引用类型:Srting

//为啥pringtln后面接什么都可以打印输出
//按住ctrl在点击println,你会发现
//在调用输出语句的时候,println方法其实就行进行了多种数据类型的重载
//通过println重载,我们在调用时不用管数据类型。能够直接打印输出

定义一个方法用来显示数据类型
*/
public class Demo05OverLoadPrint {

public static void main(String[] args) {

    myPrint(100);//int
    myPrint("Hello");//String
    myPrint('啊');//char
    myPrint(10.0);//double
    myPrint((short)10);//short
    myPrint((byte)6);//byte
    myPrint(100l);//long
    myPrint(false);//boolean

}

//byte
public static void myPrint(byte num){
    System.out.println(num);
}

//short
public static void myPrint(short num){
    System.out.println(num);
}

//int
public static void myPrint(int num){
    System.out.println(num);
}

//long
public static void myPrint(long num){
    System.out.println(num);
}

//double
public static void myPrint(double num){
    System.out.println(num);
}

//char
public static void myPrint(char zifu){
    System.out.println(zifu);//整体更改名称的快捷键,选中更改的代码,按shift+f6 然后更改回车确认
}

//boolean
public static void myPrint(boolean is){
    System.out.println(is);
}

//String
public static void myPrint(String str){
    System.out.println(str);
}

}

心得体会

2021、8、30更新
笔记:
本章节主要学习方法的重载,通过同一个方法名称,调用功能类似,参数类型不同的方法,本章节比较重要,建议反复学习观看!加油,为明天而努力 。 2021、8、30

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值