1.函数
1. 1什么是函数(method、方法):
▪ 函数是定义在类中的一段独立的代码块,用来实现某个功能。Java中,函数又被称为方法。
▪ 将功能封装为函数,可以使其重复使用,简化代码。
▪ java里函数必须定义在类里面。
1.2函数的格式:
▪ 修饰符 返回值类型 方法名(参数类型 形参1, 参数类型 形参2, ….){方法体程序代码
return 返回值; }
例如:
public class Person{
private int age;
public int getAge() { //声明方法getAge()
return age;
}
▪ Java中静态方法没有办法直接调用非静态方法,只能调用静态方法。
▪ static 表示函数是静态的。
▪ void 表示函数有无返回值。
函数名(形参列表) 表示函数有无形参。
▪ 有形参 静态
public static void setAge(int i) { //声明方法setAge
age = i; //将参数i的值赋给类的成员变量age
}
▪ 无形参 非静态
public int setAge() {
return age;
}
1.3函数的调用:
▪ 函数的调用通过"类名.方法名(参数)"调用,例如:x(t)。
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入n的值");
int t =sc.nextInt();
System.out.println(x(t));
}
public static int x(int i ) {
int sum =i;
boolean x=(i>0)&&((sum +=x(i-1))>0);
// sum +=x(i-1);
// boolean flg = (n>0) && ((sum += Sum_Solution(n-1)) > 0);
return sum;
}}
2.函数进一步理解
2.1函数的内存调用:
后续会进行函数的内存解析。
2.2 函数重载(overload):
▪ 在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
▪ 与返回值类型无关,只看参数列表,且参数列表必须不同。(参数个数或参数类型)。调用时,根据方法参数列表的不同来区别。
例如:
1:
int add(int x,int y){return x+y;}
2:
int add(int x,int y,int z){return x+y+z;}
3:
double add(double x,double y){return x+y;}
4:
int add(double p,double q){return p+q;}
▪ 1,2,3构成重载
▪ 3,4不构成重载
2.3 递归:
一个方法体内调用它自身。
/计算1-100之间所有自然数的和
public int sum(int num){
if(num == 1){
return 1;
}else{
return num + sum(num - 1);
}
}
▪ 递归一定要向已知方向递归,否则这种递归就变成了无穷递归,类似于死
循环。
▪ 注意递归要有结束条件,不然会报StackOverflowError。
▪ jvm规定了栈的最大深度,当执行时栈的深度大于了规定的深度,就会抛出StackOverflowError错误。