希望通过博客和大家相互交流,相互学习,如有错误,请评论区指正
目录
一、什么是方法
方法就相当于C语言当中的函数,负责完成某项特定任务,相较于其他代码,具有相对的独立性
我们通过如下代码来体验一下 Java 当中的方法
public static int max(int x, int y) {
return x > y ? x : y;
}
这就是一个简单的方法,来求两个整型中的较大值
在这段代码中,int 是这个方法的返回值类型,max 为方法名,后面括号中为参数列表
注意
- 方法定义时每个参数都要指明类型(方法可以没有参数)
- 方法的参数列表中的参数为形参,调用方法时传的参数为实参,形参相当于实参的一份临时拷贝
- 方法必须要定义在类中
- 调用方法会在栈中开辟空间
二、方法的调用
上代码
public static int max(int x, int y) {
return x > y ? x : y;
}
public static void main(String[] args) {
int ret2 = max(1, 2);
}
在上面的这段代码中,我们定义了一个max方法,并通过main函数来调用
在调用时,传入参数 1 和 2,相当于分别给形参 x 和 y 赋值,然后在max方法中实现求最大值的逻辑,再将最大值返回,在main函数中用ret2来接收返回值
注意
- 方法只有被调用的时候才会被执行,否则不执行相关逻辑
- 方法可以没有返回值,用void
三、方法的签名与重载(overload)
在C语言中我们通过函数名来区分各种不同的函数,但在 Java 中,通过方法的签名来区分
方法的签名
方法的签名包含以下两部分:
- 方法名
- 参数列表(参数的类型和数量)
由于 Java 中是通过方法名和参数列表来区分方法,所以才使得Java中可以支持方法的重载
方法的重载
如果同一个类中包含了两个或两个以上方法名相同的方法,但形参列表不同,这种情况被称为方法重载(overload)(返回值类型不做要求)
同一个方法名提供不同版本的实现
在很多情况下我们都需要一个函数可以同时兼容多种情况,这就用到了方法的重载,如下代码
public static int max(int x, int y) {
return x > y ? x : y;
}
public static float max(float x, float y) {
return x > y ? x : y;
}
public static void main(String[] args) {
int ret = max(1, 2);
float ret2 = max(1.5f, 2.3f);
}
可以看到,在上面这段代码中,我们需要通过max方法来获取不同类型数据中的最大值,在C语言中我们就需要重新换个函数名去定义函数(繁多的方法名降低代码可读性)。但在Java中就不需要那么麻烦了,不管是float类型还是int类型求最大值,核心逻辑都一样,我们通过方法重载就可以避免繁多的方法名
在调用方法时,会根据方法的参数列表来确定要调用哪一个方法
错误示范
public static int max(int x, int y) {
return x > y ? x : y;
}
public static float max(int x, int y) {
return x > y ? x : y;
}
要注意方法重载和返回值类型无关,所以这样会编译出错
欢迎大家关注!!!
一起学习交流 !!!
让我们将编程进行到底!!!
--------------整理不易,请三连支持------------------