栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

03方法-01什么是方法+方法的定义+方法的重载+命令行传参+可变参数+递归

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

03方法-01什么是方法+方法的定义+方法的重载+命令行传参+可变参数+递归

什么是方法

System.out.println()

​ 类 对象 方法

  • 方法是解决一类问题的步骤的有序组合

  • 方法包含于类或对象中

  • 方法在程序中被创建,在其他地方被引用

设计方法的时候,最好保持方法的原子性,就是一个方法只完成1个功能,这样利于我们后期的扩展

方法的命名原则:驼峰命名法

package com.kuang.method;

public class Demo1 {
    public static void main(String[] args) {
        System.out.println(add(1,2));
    }
    public static int add(int a,int b){
        return a+b;
    }
}
方法的定义

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

方法体

return 返回值;

}

  • 修饰符:定义了该方法的访问类型

课后拓展了解:值传递(JAVA) 和 引用传递

值传递(pass by value)是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。
引用传递(pass by reference)是指在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。
————————————————
(版权声明:本文为CSDN博主「Apple_Web」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/belongtocode/article/details/107713117)

方法的重载

重载就是在一个类中,有相同的函数名称,但形参不同的函数

package com.kuang.method;

public class Demo3 {
    public static void main(String[] args) {
        int sum = add(11,22,52);
        System.out.println(sum);
    }
    public static int add(int a,int b,int c){
        return a + b + c;
    }
    public static int add(int aa,int bb){
        return aa +bb;
    }
}
命令行传参

希望运行一个程序时候再传递给它消息,这要靠传递命令行参数给main()函数实现

  1. 寻找此案例文件位置,并执行cmd命令
  2. 执行 javac Demo04.java ,生成 Demo04.class 文件
  3. 执行许多 cd …/ 让其使用 java com.kuang.method.Demo04 this is apple 输入语句(利用包进行) 便可打印
package com.kuang.method;

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

在指定参数类型后加一个省略号

一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通参数必须在它之前声明。

package com.kuang.method;

public class Demo5 {
    public static void main(String[] args) {
        //调用可变参数的方法
        printMax(34,3,5,64,12);
        printMax(new double[]{12,2.2,55});
    }
    public static void printMax( double... numbers) {
        if(numbers.length == 0) {
            System.out.println("No argument 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);
    }
}
递归

包括两部分:

递归头:什么时候不调用自身方法。如果没有头,将陷入死循环

递归体:什么时候需要调用自身方法

利用栈的思想,数据太大一般不用,递归思想用得很少

package com.kuang.method;

public class Demo6 {
    public static void main(String[] args) {
        System.out.println(cj(3));
    }
    public static int cj(int a){
        if(a == 1){
            return 1;
        }else{
            return  a * cj(a - 1);
        }
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/602942.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号