2.结构 3.语法Java方法的目的:模块化、复用性、应用简单
public satatic int add(int a,int b,int c){
int sum = a+b+c;
return sum;
}
4.常见语法错误有
- public :访问控制符
- static : 静态//!!!
- int /double/void:放大的返回类型
- add:方法的名称
- int a,int b:参数列表
- 大括号:作用域
- 方法中不能其那套其他方法
- 方法设计中有返回类型,方法体中没有返回!!!(注意)
- 作用域-大括号
- void不用返回,用void就要再方法里打印好,用int/double等才要在main里面打印出来
形参就是形式参数
6方法-重载(overload) 6.1 概念(int a ,int b); //a,b为方法的形参–形式上二点参数可以任意名称
int x = add(4,6)//4和6为方法的实参,a=4,b=6
6.2 方法重载的目的如果同一个class中包含了两个或者两个以上方法名相同但方法参数的个数、顺序或类型不同的方法,则称为方法的重载,也可称方法被重载了。
类中复用方法的名称,避免大量额方法名称命名
例如:
public static int add(int a) {// 重载只和参数类型、数量、顺序有关
return a;
}
public static int add(int a, int b) {
return a + b;
}
public static double add(double a, double b) {
return a + b;
}
public static int add(double a, int b) {
return (int) (a + b);
}
6.3 方法重载的必要条件
- 在同一个类中
- method名称完全相同
- method的参数类型或者数量不同
7.2 不定参数定义当大量重载方法时,影响程序的阅读使用。
不顶参数的本质是传入数组,但允许调用者随意传入参数个数,使用更灵活
public void func(类型 …形参名称){
//编译器在运行是将传入实参,转换为数组执行
}
public static void main(String[] args) {
func(1,2,4,2,3,4,121,213);//用法:()中可以写任意数量数字
}
public static void func(int ... a ){
for(int i=0;i < a.length;i++){
System.out.print(a[i] + "t");
}
}
8 方法-常见案例
8.1 定义一个方法完成年份是否闰年的判定
public static boolean isLeap(int year){//返回值是boolean注意!!!
if(year % 400 == 0 || year % 4 == 0 && year % 100 != 0){
return true;
}
return false;
}
8.1 定义一个方法完成判定n是否为素数
public static boolean isPrimer(int n){
for(int i =2; i<=Math.sqrt(n);i++){//math.squrt(n)就是根号下n的意思
if(n % i ==0) return false;
}
return true;
}
9 方法-递归
9.1概念
9.2 递归的执行流程递归算法(recursion algorithm):在计算机科学中指一种通过重复将问题分解为同类的子问题而解决的方法。
- 1找出递归的中止条件
- 2找出解决递归的通项公式
案例1 累乘
public static int f(int n){
if(n==1) return 1; //递归终止条件
return n * f(n-1); //一般表达式
}
案例2 斐波拉且数列
public static void fib01(int n) {
int n1 = 1;
int n2 = 1;
for(int i= 3;i<=n;i++) {//int i = 3,意思是从第三项开始; i++,不是n++!!!!看清楚
int x = n1+n2;
System.out.print(x+"t");
n1=n2;
n2=x;
}
}
public static int fib02(int n) {
if (n == 1 || n == 2) {//斐波拉契数列的第一项和第二项都是1
return 1;
}
return f(n - 1) + f(n - 2);
}



