目录
一、方法的定义(方法就是一个代码片段. 类似于 C 语言中的 "函数".)
一、方法的定义(方法就是一个代码片段. 类似于 C 语言中的 "函数".)
1、 是能够模块化的组织代码(当代码规模比较复杂的时候)。
2、 做到代码被重复使用, 一份代码可以在多个位置使用。
3、 让代码更好理解更简单。
4、 直接调用现有方法开发, 不必重复造轮子。
二、方法的定义语法
(该方法是否有返回值取决于这个方法的作用和功能)
例:①求某几个数的和,则需要返回和;
②接受任意值并输出,则不需要返回。
//方法的定义
public static 方法的返回值 方法名称(方法的参数(形参)){
//代码
[return 语句];
}
//方法的调用
返回值变量=方法名称(参数(实参));
1、有返回值的方法
public static int add(int a,int b){
int ret =a+b;
return ret;
}
public static void main(String[] args) {
int x=10;
int y=20;
int sum =add(x,y);//主方法运行到此处会停止,直到add方法调用结束(或者遇到return语句)
System.out.println(sum);
}
2、没有返回值的方法使用void,并且使用"retuen;"结束方法的调用
public static void printNum(int num){
for (int i = 1 ;i <=num; i++) {
if(i%3==0){
System.out.print(i);
return;
}
}
}
public static void main(String[] args) {
printNum(100);//结束方法的调用
}
三、关于实参和形参
(在java中,方法的参数只有值传递,所谓的传递就是把实参的值拷贝一份给形参,对实参并没有产生任何的影响)
例:
public static void main(String[] args) {
int x=10;
int y=20;
swap(x,y);//调用swap时,就有实参到形参的传递,即将实参的值拷贝一份赋值给形参(将x的值10和y的值20拿出来拷贝一份给a和b)
//即为:swap-x=main-x=10;swap-y=main-y=20;
System.out.println("x="+x+",y="+y);
}
public static void swap(int a,int b){
System.out.println("调用swap方法中......");
int temp=a; //交换的是swap-x和swap-y的值,对于main-x和main-y没有任何影响
a=b;
b=temp;
System.out.println("a="+a+",b="+b);
}
对于上述问题的解决方法(在java中不存在方法外部交换两个局部变量的方法)
方法:引用数据类型(数组和对象)
public static void main(String[] args) {
int []arr={10,20};
swapArr(arr);
System.out.println("arr[0]="+arr[0]+",arr[1]="+arr[1]);
}
public static void swapArr(int[]arr){
int temp=arr[0];
arr[0]=arr[1];
arr[1]=temp;
}
四、方法的重载(overload)
方法的重载发生在同一个类中,定义了若干方法名称相同,参数列表不同(参数的类型或者个数不同)的一组方法,与返回值无关。
①public static int add(int a,int b){
int ret =a+b; //①②类型不同
return ret;
}
②public static double add(double a,double b){
return a+b;
}
③public static int add(int a,int b,int c){
return a+b+c; // ①③个数不同
}