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) 递归体
        }
    }
}

?

什么是方法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]);        }    }}右键Demo03 open in explorer

打开目录cmd
输入javac Demo03.java 生成class文件
输入cd../ 到src文件夹下 运行class文件要到包所在文件夹src
输入java com.method.Demo03
输入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) 递归体        }    }}————————————————版权声明:本文为CSDN博主「syd2820」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/syd2820/article/details/122710748

相关