前言
初学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