java方法详解
方法的定义:(类似于c中的函数)
-
方法是解决一类问题的步骤的有序集合
-
方法包含于类或对象中
-
方法在程序中被创建,在其他地方被引用
方法需要保持原子性
即一个方法完成一个功能。
方法的命名
修饰词 + 返回值类型+ 方法名(注意大小写)+(形参列表){
…
方法体
…
return …
}
example:
import java.util.Scanner;
public class Method {
//main方法
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
Method method=new Method();
int a=scanner.nextInt();
int b= scanner.nextInt();
System.out.println("max:"+max(a,b));
System.out.println("min:"+method.min(a,b));
}
// 类方法 static 来表示该方法为类方法可直接调用
public static int max(int a,int b){
return (a>b)?a:b;
}
//一般方法无static需要构造对象来使用它
public int min(int a,int b){
return (a<b)?a:b;
}
}
拓展:值传递和引用传递
1.java一般为值传递型
值传递:是指在调用函数时,将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,就不会影响到实际参数
import java.util.Scanner;
public class Method {
//main方法
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int a=scanner.nextInt();
System.out.println("值为:"+change(a));
System.out.println("a为"+a);
}
// 类方法 static 来表示该方法为类方法可直接调用
public static int change(int a){
return a=a+1;
}
}
结果:
10
值为:11
a为10
引用传递:是指在调用函数时,将实际参数的地址传递到函数中,那么在函数中对参数进行修改,将会影响到实际参数
类似于c当中的址传递。
方法的重载:
重载就是在一个类中,有相同方法名,但形参不同的方法
规则:
- 方法名必须相同
- 参数列表必须不同(个数不同,或类型不同,排列顺序不同等)
import java.util.Scanner;
public class Method {
//main方法
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int a=scanner.nextInt();
int b=scanner.nextInt();
System.out.println("1./t"+add(a,b));
System.out.println("2./t"+add(a));
}
// 类方法 static 来表示该方法为类方法可直接调用
public static int add(int a,int b){
return a+b;
}
public static int add(int a){
return a+=1;
}
}
结果:
5
6
1. 11
2. 6
可变参数:(实质为创建数组)
import java.util.Scanner;
public class Method {
//main方法
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
int[] b = {0, 1, 2, 3};
System.out.println(b[0]);
System.out.println(add(a, b));
}
// 表示:数据类型后+...
public static int add(int a, int... b) {
return a + b[1];
}
}
8
0
9
注意:一个形参列表只能有一个可变形参,且需在末尾。
!!!递归
就是a方法调用自己的方法。
举例:求7的阶乘!
public class DiGui {
public static void main(String[] args) {
System.out.println(f(7));
}
public static int f(int a) {
if (a == 1) {
return 1;
} else {
return a * f(a - 1);
}
}
}
5040
进程已结束,退出代码0
调试视频需要加qq:2361047272
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/280179.html