一、什么是方法?
方法是一个代码块,类似于c语言中的“函数”。
方法存在的意义:
- 是能够模块化的组织代码(当代码规模比较复杂的时候)。
- 做到代码能被重复使用,一份代码可以在多个位置使用。
- 让代码更简洁更容易理解。
- 直接调用已有的方法,不用重复造轮子。
二、方法的定义
public static 方法返回值 方法名称([参数类型 形参 ...]){
方法体代码;
[return 返回值];
}
// 方法调用
返回值变量 = 方法名称(实参...)
示例:
class Test {
public static void main(String[] args) {
int a = 10;
int b = 20;
// 方法的调用
int ret = add(a, b);
System.out.println("ret = " + ret);
}
// 方法的定义
public static int add(int x, int y) {
return x + y;
}
}
// 执行结果
ret = 30
注意:
- 定义方法时,可以没有参数;如果有参数的话,那么则要指定其类型。
- 定义方法时,可以没有返回值,此时,返回值类型应写成void。
- 方法的定义必须在类中,代码书写在调用位置的上方或者下方,均可。
- java不同于c语言,没有“函数调用”这一概念。
三、 方法的重载
我们先看一个程序示例:
class Test {
public static void main(String[] args) {
int a = 10;
int b = 20;
int ret = add(a, b);
System.out.println("ret = " + ret);
double a2 = 10.5;
double b2 = 20.5;
double ret2 = add(a2, b2);
System.out.println("ret2 = " + ret2);
}
public static int add(int x, int y) {
return x + y;
}
}
// 编译出错
Test.java:13: 错误: 不兼容的类型: 从double转换到int可能会有损失
double ret2 = add(a2, b2);
由于参数类型不匹配,所以不能直接使用现有的add方法。
这个问题,可以使用方法的重载加以解决,具体如下:
class Test {
public static void main(String[] args) {
int a = 10;
int b = 20;
int ret = add(a, b);
System.out.println("ret = " + ret);
double a2 = 10.5;
double b2 = 20.5;
double ret2 = add(a2, b2);
System.out.println("ret2 = " + ret2);
double a3 = 10.5;
double b3 = 10.5;
double c3 = 20.5;
double ret3 = add(a3, b3, c3);
System.out.println("ret3 = " + ret3);
public static int add(int x, int y) {
return x + y;
}
public static double add(double x, double y) {
return x + y;
}
public static double add(double x, double y, double z) {
return x + y + z;
}
}
}
方法的名字都叫 add.
但是有的 add 是计算 int 相加, 有的是 double 相加; 有的计算两个数字相加, 有的是计算三个数字相加.
同一个方法名字, 提供不同版本的实现, 称为 方法重载。
重载的规则
- 方法名相同。
- 方法的参数不同(参数的个数 or 参数的类型)。
- 方法的返回值类型不影响重载,可以相同也可以不相同。
- 所有方法都处于同一类中。
版权声明:本文为weixin_61253613原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。