Java学习第八天<什么是方法><方法的定义和调用><方法的重载><命令行传参><可变参数><递归详解>

什么是方法

System.out.println();

调用系统类里的标准输出对象(out)中的方法println

public class Demo01 {
    //main 方法
    public static void main(String[] args) {//public static修饰符  void返回值(不返回)
        //实际参数,实际调用传递给他的参数
        int sum = add(1, 2);//add(1,2) alt+回车
        System.out.println(sum);
        test();
    }
        //形式参数,用来定义
        public static int add(int a,int b){//int 返回值类型 add方法名 int a,int b形式参数(占位符)
            return a+b;
​
        }
​
        public static void test(){//方便调用加static
​
                    for (int i = 0; i <=10000; i++) {
                        if (i%5==0){
                            System.out.print(i+"\t");//输出不换行
                        }
                        if (i%(5*3)==0){//每行
                            System.out.println();//输出换行
                            //System.out.print("\n");
​
​
                    }
                }
            }
        }

方法的定义和调用

方法:修饰符 返回值类型 方法名(参数类型 参数名){

...

方法体

...

return 返回值;(void无返回值)

public class Demo02 {
    public static void main(String[] args) {
        int max = max(20, 10);//max(10,20) 方法返回一个值,方法调用通常被当做一个值;如果返回值是void,方法调用一定是一条语句
        System.out.println(max);
    }
    //比大小
    public static int max(int num1,int num2){
​
        int result=0;
        if (num1==num2){
            System.out.println("num1=num2");
            return 0;//终止方法
        }
        if (num1>num2){
            result=num1;
        }else {
            result=num2;
        }
​
        return result;
    }
}

Java都是值传递

方法的重载

在一个类中,有相同方法函数名,但参数(类型,个数)不同的函数

public class Demo02 {
    public static void main(String[] args) {
        int max = max(20, 10);//max(10,20) 方法返回一个值,方法调用通常被当做一个值;如果返回值是void,方法调用一定是一条语句
        System.out.println(max);
    }
    //比大小
    public static double max(double num1,double num2){
​
        double result=0;
        if (num1==num2){
            System.out.println("num1=num2");
            return 0;//终止方法
        }
        if (num1>num2){
            result=num1;
        }else {
            result=num2;
        }
​
        return result;
    }
    //比大小
    public static int max(int num1,int num2){
​
        int result=0;
        if (num1==num2){
            System.out.println("num1=num2");
            return 0;//终止方法
        }
        if (num1>num2){
            result=num1;
        }else {
            result=num2;
        }
​
        return result;
    }
}

命令行传参

public class Demo03 {
    public static void main(String[] args) {
​
        for (int i=0; i< args.length;i++){//args.length 数组长度
            System.out.println("args["+i+"]:"+args[i]);
        }
    }
}
  1. 右键Demo03 open in explorer

  2. 打开目录cmd

  3. 输入javac Demo03.java 生成class文件

  4. 输入cd../ 到src文件夹下 运行class文件要到包所在文件夹src

  5. 输入java com.method.Demo03

  6. 输入java com.method.Demo03 this is zhengtu

可变参数

参数类型后加省略号 (不规定传多少参数)

public class Demo04 {
    public static void main(String[] args) {
        Demo04 demo04 = new Demo04();//new Demo04();
        demo04.test(1,2,3);
        printMax(34,3,3,2,56.5);
        printMax(new double[]{1,2,3});
    }
    public void test(int...i){ //必须放最后
        System.out.println(i[0]);
    }
    //求最大值
    public static void printMax(double...numbers){
        if (numbers.length==0){
            System.out.println("NO arguement passed");
            return;
        }
        double result=numbers[0];
        //排序
        for (int i = 1; i < numbers.length; i++) {
            if (numbers[i]>result){
                result=numbers[i];
            }
        }
        System.out.println("The max value is"+result);
    }
}

递归详解

递归即方法自己调用自己,要有递归头和递归体,只适合小计算

public class Demo06 {
    public static void main(String[] args) {
        System.out.println(f(5));//5!
    }
​
    public  static  int f(int n){
        if(n==1){
            return 1;//递归头
        }else {
            return n*f(n-1);//n=2 2*f(1) 递归体
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值