吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1058|回复: 8
收起左侧

[学习记录] Java学习第十六天

[复制链接]
HAIHAIHEI 发表于 2022-3-31 23:03
第十六天,有不对之处麻烦各位指正
方法重载机制:
[Java] 纯文本查看 复制代码
/*
	方法重载机制:
	1.先判断以下代码风格存在什么缺点
	第一个:代码可读性差(次要)
	第二个:程序员需要记忆更多的方法名称
*/
public class 方法重载机制{
//主方法
	public static void main(String[] args){
	int x=sumInt(10,20);
	System.out.println(x);
	
	long y=sumLong(10L,20L);
	System.out.println(y);
	
	double z=sumDouble(10.0,20.0);
	System.out.println(z);
	}

//定义一个计算int类型数据的求和方法
public static int sumInt(int a,int b){
	return a+b;
}

//定义一个计算long类型数据的求和方法
public static long sumLong(long a,long b){
	return a+b;
}

//定义一个计算double类型数据的求和方法
public static double sumDouble(double a,double b){
	return a+b;
}
}

/*
使用方法重载机制解决上述两个问题
1.代码整齐美观
2.功能相似的可以让“方法名相同”,更易于之后的代码编写
在Java语言中进行方法区分:
	首先Java编译器会通过方法名区分
	但是Java中允许方法名相同的情况出现
	如果方法名相同的情况下,编译器会通过方法的参数类型进行方法的区分
*/
class test{
	public static void main(String[] args){
		//对于程序员来说,只需要记住一个方法名即可
	System.out.println(sum(10,20));
	System.out.println(sum(10L,20L));
	System.out.println(sum(10.0,20.0));
	}

//定义一个计算int类型数据的求和方法
public static int sum(int a,int b){
	System.out.println("int求和");
	return a+b;
}

//定义一个计算long类型数据的求和方法
public static long sum(long a,long b){
	System.out.println("long求和");
	return a+b;
}

//定义一个计算double类型数据的求和方法
public static double sum(double a,double b){
	System.out.println("double求和");
	return a+b;
}

}


什么时候使用方法重载:
[Java] 纯文本查看 复制代码
/*
	方法重载(overland):
	什么时候使用方法重载机制:
	在同一个类当中,如果“功能1”和“功能2”他们功能是相似的,那么可以考虑将它们方法名一致,这样代码既美观又便于后期的代码编写(容易记忆,方便使用)
	
	注意:方法重载机制不能随便使用,如果两个功能压根不相干,不相似,根本没关系,此时两个方法使用方法重载机制的话,会导致编码更麻烦。无法进行方法功能的区分

	什么时候代码会发生方法重载?
	条件一:在同一个类当中
	条件二:方法名相同
	条件三:参数列表不同(参数的个数不同;参数的类型不同;参数的顺序不同,都算不同)

	只要同时满足以上三个条件,我们可以认定方法和方法之间发生了重载机制

注意:
	不管代码怎么写,最终一定能让Java编译器很好的区分开这两个方法

	方法重载和返回值类型无关
	方法重载和修饰符列表无关
*/
public class 使用方法重载{
	public static void main(String[] args){
	m1();
	m1(100);
	m2(10,3.14);
	m2(3.14,110);
	m3(10);
	m3(10.0);
	}
	
	public static void m1(){
	System.out.println("m1无参数的执行");
	}
	//这个方法的参数个数和上面方法的参数个数不同
	public static void m1(int a){
	System.out.println("m1有一个int参数的执行");
	}

	public static void m2(int x,double y){
	System.out.println("m2(int x,double y)");
	}

	//参数的顺序不同,也算不同
	public static void m2(double x,int y){
	System.out.println("m2(double x,int y)");
	}

	public static void m3(int x){
	System.out.println("m3(int x)");
	}
	//参数的类型不同,也算不同
	public static void m3(double x){
	System.out.println("m3(double x)");
	}

	//分析:以下两个方法有没有发生重载
	//编译器报错了,这不是重载,这是重复
	/*
	public static void m4(int a){
	}
	public static void m4(int x){
	}
	*/

	//这两个方法是否发生重载
	//这不是重载,这是方法重复了
	/*
	public static int m5(){
	return 1;
	}
	public static double m5(){
	return 1.0;
	}
	*/

	//这两个方法是否发生重载
	//这个方法没有修饰符列表
	//这不是重载,这是方法重复了
	/*
	void m6(){
	}
	//这个有修饰符列表	
	public static void m6(){
	}
	*/
}

class test{
	//不在同一个类当中,不能叫做方法重载
	public static void m1(int x,int y){	
	
	}
}


免费评分

参与人数 2吾爱币 +2 热心值 +1 收起 理由
Songzhiqiang + 1 + 1 热心回复!
lgc81034 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| HAIHAIHEI 发表于 2022-3-31 23:06
纯手打,如果有不对之处希望各位大佬指出,感激不尽(注:昨天电脑重装后有点问题,拿去找人修理了下,今天开始继续,昨天的会找机会补上)
aonima 发表于 2022-3-31 23:12
Badelyn 发表于 2022-3-31 23:14
wangming5787 发表于 2022-3-31 23:58
楼主加油!!坚持就是胜利
Frank123456 发表于 2022-4-1 01:15
一起学习
zhuguang123 发表于 2022-4-1 02:11
楼主加油,Java刚开始很枯燥,要坚持
pglzxhyhc 发表于 2022-4-1 11:00
努力学习
马西瓜 发表于 2022-4-1 12:26
联系方式多少一起学习一下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 14:23

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表