目录
1.方法的定义
2.方法的调用
3.形参与实参的关系
4.方法重载overload
5.方法重写和重载的区别
Java中的方法类似于c语言中的函数,每个方法都表示一种能力或行为。方法就是一个代码片段,为了让这段代码被重复使用,我们将它抽象为方法。
1.方法的定义
public static 方法返回值 方法名称 (参数类型 参数名称 ....){
方法体代码;
return 返回值;}
2.方法的调用
数据类型? 变量? =? 方法名称 (参数) ;?
代码示例:
public class Overa {
public static void main(String[] args) {
int a = 10;
int b = 20;
int ret = add(a,b);//方法的调用
System.out.println(ret);
}
public static int add(int x , int y){//方法的定义
return x + y;
}
}
执行结果: 30
注意!!
- 方法没有返回值时使用 void ;
- 在没有返回值的方法中使用 return ,表示提前结束方法的调用;
- Java 中没有函数调用的概念,一旦定义了一个方法就必须写它的实现。
3.形参与实参的关系
方法定义时的参数叫做形参,方法调用时的参数叫做实参。上面的例子中add方法中的x和y就是形参,调用方法时的a和b就是实参。
代码示例:
public class Swap {
public static void main(String[] args) {
int a = 10;
int b = 20;
swap(a,b);//调用方法
System.out.println("a="+a);
System.out.println("b="+b);
}
//swap方法用来交换两个数的值
public static void swap(int x,int y){
int tmp =x;
x = y;
y = tmp;
}
}
运行结果:
?按理说,我们调用了swap方法之后,a和b的值就应该交换,为什么运行结果没有变呢,这就是因为对于基础类型来说,形参相当于实参的拷贝,他们之间仅仅是值传递。上面代码只是对x和y做出了修改
要记住,Java方法的参数传递只有 值传递 ,就是将实参的值复制一份给形参。
4.方法重载overload
在同一个类中,定义了若干个,方法名称相同,参数列表不同(参数的类型和个数),与函数的返回值无关,这样的一组方法称为方法重载。
代码示例:
public class Swap {
public static void main(String[] args) {
int a = 10;
int b = 20;
int ret = add(a,b);
System.out.println(ret);
double a2 = 10.1;
double b2 = 5.0;
double c = 20.5;
double ret2 = add(a2,b2);
System.out.println(ret2);
double ret3 = add(a2,b2,c);
System.out.println(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;
}
}
//运行结果:
30
15.1
35.6
可以看到我们有三个名为add的方法,他们的返回值和参数列表不同,这就是方法重载。
5.方法重写和重载的区别
可以发现重写和重载的都是多个名称相同的方法,那么它们有何不同呢?
方法重写部分下面这篇文章中有详细阐述哦
?
- 定义不同:重载是定义相同的方法名,参数列表不同;重写是子类重写父类的方法
- 范围不同:重载在一个类中;重写发生在父类和子类之间
- 返回不同:重载对返回值没有要求;重写要返回值必须相同,或者是向上转型的返回值
- 参数不同:重载参数列表、个数可以不同;重写的参数必须和父类相同
- 权限修饰符不同:重写没有特殊要求;重载要求子类的权限修饰符必须大于或等于父类的
|