首页 > 编程语言 > 详细

java基础课堂随记7

时间:2021-03-02 14:30:55      阅读:20      评论:0      收藏:0      [点我收藏+]

Java方法

  1. 何谓方法
  2. 方法的定义与调用
  3. 方法重载
  4. 命令行传参
  5. 可变参数
  6. 递归
技术分享图片
package Method;

public class Demo1 {
    public static void main(String[] args) {
   //     int sum = add(1,2);
    //    System.out.println(sum);

        test();
    }

    //加法
    public static int add(int a,int b){
        return a+b;
    }

    public static void test(){
        int i = 0;
        int sum = 0;

        while (i<100) {
            i++;
            sum = sum + i;
        }
        System.out.println(sum);
    }
}

方法可以定义在调用之后的地方,加上static方便调用。上面被注释掉的是a+b的一个方法,下面test是输出1-100和的结果

方法的定义

技术分享图片

方法调用:

技术分享图片
package Method;

public class Demo2 {
    public static void main(String[] args) {
        int max = max(10,20);
        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;

    }
}
`

输出20

方法的重载

技术分享图片
package Method;

public class Demo2 {
    public static void main(String[] args) {
        int max = max(10,20);
        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;

    }
}

使用同一个方法名的时候,调用时编译器会根据参数不同自己去匹配,所以可以多个方法用同一个名字,这就是方法的重载

右键点击文件,然后open in->explorer可以在文件夹中打开.java文件

然后在前面输入cmd+空格,在命令行中打开,cd../是回退路径指令

在包里编译的文件要退回到src文件夹才可以执行

package Method;

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

Microsoft Windows [版本 10.0.18363.1379]
(c) 2019 Microsoft Corporation。保留所有权利。

F:\notepad++\JavaSE\基础语法\src\Method>javac Demo3.java

F:\notepad++\JavaSE\基础语法\src\Method>java Demo3
错误: 找不到或无法加载主类 Demo3

F:\notepad++\JavaSE\基础语法\src\Method>cd../

F:\notepad++\JavaSE\基础语法\src>java Method.Demo3

F:\notepad++\JavaSE\基础语法\src>what is your name
‘what‘ 不是内部或外部命令,也不是可运行的程序
或批处理文件。

F:\notepad++\JavaSE\基础语法\src>java Method.Demo3 What is your name
args[0]:What
args[1]:is
args[2]:your
args[3]:name

F:\notepad++\JavaSE\基础语法\src>

可变参数

技术分享图片

alt+enter可以自动补全new Demo的对象

上图的代码可以实现遍历数组选出最大值的功能

package Method;

public class Demo4 {
    public static void main(String[] args) {
        Demo4 demo4 = new Demo4();
        demo4.test(1,2,3,4,5);
    }
    public void test(int x,int... i){
        System.out.println(i[0]);
        System.out.println(i[1]);
        System.out.println(i[2]);
        System.out.println(i[3]);
    }
}

输出

1
2
3
4

递归

技术分享图片

边界条件:让程序终止的地方

前阶段

返回阶段

java是使用栈机制的,基数太大的话就会溢出,所以一半的小计算可以用递归,但是太大的计算就要换别的算法来实现了,递归主要是注重这种思想。

package Method;

public class Demo6 {
    public static void main(String[] args) {
        System.out.println(f(5));
    }
    public static int f(int n){

        if (n==1){
            return 1;
        }else {
            return n*f(n-1);
        }
    }
}

这是阶乘的递归算法

java基础课堂随记7

原文:https://www.cnblogs.com/hjhstudycs/p/14468567.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!