Java方法
Java方法详解
方法基本概念
package com.arbedu.method;
public class Demo01 {
// main方法
public static void main(String[] args) {
int a;
int b;
int sum = add(1, 2); // 实际参数,用来调用传递的参数
System.out.println(sum);
test();
}
// 加法
// a,b形式参数,用来定义作用的
public static int add(int a, int b){
return a + b;
}
// 循环
public static void test(){
for (int i = 0; i < 10; i++) {
System.out.print(i+" ");
}
}
}
package com.arbedu.method;
public class Demo02 {
public static void main(String[] args) {
int max = max(10,20);
System.out.println(max);
}
// 比大小
public static int max(int num1, int num2) {
int result;
if (num1 == num2) {
System.out.println("num is the same");
return 0; // 终止方法
}
if (num1 > num2) {
result = num1;
}else {
result = num2;
}
return result;
}
}
方法的重载
重载就是在一个类中,有相同的函数名称,但形参不同的函数
- 方法名称相同
- 参数列表不同(个数不同、类型不同、参数排列顺序不同(可读性差))
- 方法的返回类型可以相同也可以不同
- 仅仅返回类型不同不足以成为方法的重载
- JVM会对重载自行判断
package com.arbedu.method;
public class Demo01 {
public static void main(String[] args) {
int i;
int j;
int k;
int sum1 = add(1, 2);
int sum2 = add(1, 2, 3);
double sum3 = add(1.0, 2.0);
}
// 方法1
public static int add(int a, int b) {
return a + b;
}
// 方法2 与方法1相同 不是方法的重载 报错
//public static int add(int a, int b) {
// return a + b;
//}
// 方法3
public static int add(int a, int b, int c) {
return a + b + c;
}
// 方法4
public static double add(double a, double b) {
return a + b;
}
// 方法5
// public static int add(int b, int a) {
// return a+b;
// }
}
命令行传参
package com.arbedu.method;
public class Demo03 {
public static void main(String[] args) {
for(int i = 0; i < args.length; i++) {
System.out.println("args["+i+"]: "+args[i]);
}
}
}

可变参数(不定项参数)
package com.arbedu.method;
public class Demo04 {
public static void main(String[] args) {
// 调用可变参数的方法
printMax(34, 4, 4, 1,94);
}
public static void printMax(double... numbers) {
if(numbers.length == 0) {
System.out.println("No arguments passed");
return;
}
double result = numbers[0];
// 排序
for (int i = 1; i < numbers.length; i++) {
if(numbers[i] > result) {
result = numbers[i];
}
}
System.out.println("The max value is "+result);
}
}
递归
能不用递归就不用递归
package com.arbedu.method;
public class Demo05 {
public static void main(String[] args) {
System.out.println(f(4));
}
public static int f(int n){
if(n == 1) { //限制条件
return 1;
}else{
return n*f(n-1);
}
}
}