方法

方法

方法的定义

方法的调用

方法-比大小和空方法

/* 方法——具体规则看截图
java方法是语句的结合,它们在一起执行一个功能——设计原则-一个方法完成一个功能,main方法保持简介使用调用
修饰符如public static 返回类型 命名-遵守驼峰原则开小后大(参数-有变参和定参){方法体;返回return;}
public static int add(int a,int b){return a+b;}
调用int sum = add(1,2);
1、解决一类问题有序步骤的组合
2、方法包含于类或者对象中
3、方法在程序中被创建,在其他地方被引用
 */
/*方法的重载
一个类里面相同的方法但采用了不同的参数类型,比大小的整数和小数类型——编译器会匹配调用
 */

//比大小
//Java都是值传递
package b;

public class a1 {
    public static void main(String[] args) {
        int max = max(10,10);
        System.out.println(max);
    }
    public static int max(int num1,int num2){
        int result = 0;
        if(num1==num2){
            System.out.println("sum1=sum2");
            return 0;//终止方法
        }
        if(num1>num2){
            result = num1;
        }else{
            result = num2;
        }
        return result;
    }

}

//写个空白函数的定义和调用
/*
public static void main(String[] args) {
        test();
    }
    public static void test(){
        int oddSum = 0;
        int evenSum = 0;
        for (int i = 0; i <= 100; i++) {
            if (i % 2 != 0) {
                oddSum = oddSum + i;
            } else {
                evenSum = evenSum + i;
            }
        }
        System.out.println("奇数的和:"+oddSum);
        System.out.println("偶数的和:"+evenSum);
    }
 */

命令行传参

/*命令行传参-扩展内容-没听懂
有时想要运行一个程序时再给它传参,通过main()函数实现
 */
package b;

public class a2 {
    public static void main(String[] args) {
        //args.length 数组长度
        for (int i = 0; i < args.length ; i++) {
            System.out.println("args["+i+"]"+args[i]);
        }
    }
}

可变传参

/*可变传参-可传递同类型多个参数
方法声明中,在指定参数类型后加一个省略号(double...numbers)
--一个方法中只能指定一个可变参数,且必须是方法的最后一个参数,其他普通参数必须在它之前声明
 */

//判断别人所传数组的最大值
package b;

public class a3 {
    public static void main(String[] args) {
        //调用可变参数的方法,两种传递方式
        printMax(34,3,3,2,56.5);  //传递一些参数
        printMax(new double[]{5,2,7});  //传递了一些数组
    }
    public static void printMax(double...numbers){
        if(numbers.length==0){
            System.out.println("No argument passed");
            return;//没有给我传递参数
        }
        double result = numbers[0];
        //排序算法
        for (int i = 0; i < numbers.length; i++) {
            if(numbers[i]>result){
                result = numbers[i];
            }
        }
        System.out.println("The max value is"+result);
    }
}

递归-A方法自己调用自己

/*递归-A方法自己调用自己
1、代码前面有个绿色箭头就表示自己调用自己
2、递归包含递归头-什么时候不调用自身方法,没有头会陷入死循环 and 递归体-什么时候需要调用自身方法
3、适用于基数比较小的计算,能不用就不用
 */
//阶乘-main计算f(5)会调用f(4)-前阶段这样依次调用到f(1)-边界才会有结果-返回阶段
package b;

public class a4 {
    public static void main(String[] args) {
        System.out.println(f(5));//当输入f()括号中输入时前面自动跳出n:
    }
    public static int f(int n){
        if(n==1){
            return 1;
        }else{
            return n*f(n-1);//理解-n*f(n:n-1)若n=2即2*f(1)
        }
    }
}

posted @ 2024-07-11 19:24  37201  阅读(10)  评论(0)    收藏  举报