方法
- 有返回值方法
public static void main(String[] args) {
System.out.print(reduce(4,3));
//直接调用:ruduce()只是返回值,要通过System.out.print输出
int sum = reduce(4,3);
//赋值调用<实参>
System.out.print(sum);
//打印调用
}
public static int reduce(int c,int d) {
//有返回值方法<形参>
return c-d;
}
- 无返回值方法
public static void main(String[] args) {
add(3,7);
//直接调用
}
public static void add(int a,int b) {
//无返回值方法
System.out.println(a+b);
}
方法重载
函数重载
- 方法名称一致;
- <形参>参数类型不同&参数类型相同,数目不同;
- 修饰符不影响:public ,static
public static void main(String[] args) {
System.out.println(isSame(1,2));
//调用isSame(int a,int b);
System.out.println(isSame(1,1.0));
//调用isSame(int c,double d);
System.out.println(isSame());
//调用isSame();
}
public static boolean isSame(int a,int b)
//原方法
{
boolean isPrime = true;
System.out.print("int");
if (a == b) {
isPrime = true;
} else {
isPrime = false;
}
return isPrime;
}
public static boolean isSame(int c,double d)
//参数类型不同;
{
boolean isPrime = true;
System.out.print("int");
if (c == d) {
isPrime = true;
} else {
isPrime = false;
}
return isPrime;
}
public static boolean isSame()
//参数数目不同;
{
return true;
}
方法的递归调用
必要条件
- 结束条件;
- 每次调用需要改变传递参数;
- 累加
public static void main(String[] args) {
System.out.println(leijia(10));
//累加结果:55
}
public static int leijia(int i) {
if (i == 1) {
//结束条件
return 1;
//返回为1 -->
} else {
return i + leijia(i - 1);
//如果最后没返回1,这里最后得不出结果;
//递归调用
}
}
- 阶乘
public static void main(String[] args) {
System.out.println(jiechen(5));
//阶乘结果: 120;
}
public static int jiechen(int i) {
if (i == 1 ) {
//结束条件: 当i = 1;
return 1;
//返回1,不返回,下面无法得出数据
} else {
return i * jiechen(i -1);
}
}
递归图解