Java中的方法
1、方法的定义及调用
是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集,并且能实现达到代码复用的效果
格式:修饰符 返回值类型 方法名(参数类型 参数名,…){
方法的具体实现内容
}
方法中遇到return 就结束该方法的调用。
方法的调用:
- 类实例名称.方法名(实参)
- 静态方法:类名.方法名(实参)
- 同一个类中的其他方法体调用:直接 方法名(实参)
例子:
public class Test{
public static void main(String[] args){
//方法的调用
Test test = new Test();
int sum = test.add(1, 2);
System.out.println(sum);
}
//两数相加
public int add(int num1,int num2){
return num1+num2;
}
public void add1(){
//方法调用
add(1,2);
}
}
2、方法重载
方法重载的规则:
- 方法名必须相同
- 参数列表必须不同(参数个数不同,或参数类型不同,或参数的排列顺序不同等)
例子:
public class Test{
public static void main(String[] args){
}
//两数相加
public int add(int num1,int num2){
return num1+num2;
}
//add方法的重载
public double add(int num1,double num2){
return num1+num2;
}
//add方法的重载
public int add(int num1,int num2,int num3){
return num1+num2+num3;
}
}
3、可变参数
可变参数:
- 可变参数,在参数的数据类型之后添加
...
,如:int…name- 可变参数,只能在参数列表的最后一个
例子:
public class Test{
public static void main(String[] args){
Test test = new Test();
double sum = test.sum(20, 40, 20);
System.out.println(sum);
}
//可变参数
public double sum(double num1,double...nums){
double result=num1;
if(nums.length==0){
return result;
}else{
for (double num : nums) {
result+=num;
}
return result;
}
}
//可变参数2
public double sum1(double...nums){
double result=0;
if(nums.length==0){
return result;
}else{
for (double num : nums) {
result+=num;
}
return result;
}
}
}
4、递归
递归函数:就是自己调用自己;用简单的程序解决复杂的问题。
注意:
- 递归要有递归头和递归体
- 递归头:什么时候不调用自身方法,没有头,将陷入 死循环
- 递归体:什么时候调用自身方法
- 层级过多时,使用递归会影响性能;能用其他办法解决的就不要使用递归
求阶乘的例子:
//n的阶乘:n*(n-1)*(n-2)*(n-3)*...*2*1
public class Test{
public static void main(String[] args){
Test test = new Test();
//求5的阶乘
int f = test.f(5);
System.out.println(f);
}
//阶乘函数-递归
public int f(int n){
if(n==1){
return 1;
}else{
return n*f(n-1);
}
}
}