Java方法(函数)学习

1.何谓方法

  • 方法是语句的集合,他们在一起执行一个功能

    • 方法是解决一类问题的步骤的有序组合
    • 方法包含于类或对象中
    • 方法在程序中被创建,在其他地方引用
  • 设计原则

    一个方法只完成一个功能

public class Demo01 {
    public static void main(String[] args) {
        int sum = add(1, 2);
        System.out.println(sum);
    }
    public static int add(int a,int b){
        return a+b;
    }
}

2.方法的定义及调用

2.1方法的定义

  • 方法头

    • **修饰符:**可选内容,告诉编译器如何调用这个方法。定义了该方法的访问类型

    • **返回值类型:**方法可能会有返回值。returnValueType是方法返回值的数据类型。有些时候方法无返回值时。数据类型为void。

    • **方法名:**方法的名称

    • 参数类型

      • **形式参数:**用来定义方法时的值
      • **实参:**实际调用时,传递给方法的值
  • **方法体:**实现方法的语句块

====================================================================

public class Demo01 {
    public static void main(String[] args) {
        int sum = add(1, 2);//1,2为实参
        System.out.println(sum);
    }
    //修饰符  返回值类型  方法名  形式参数
    public static int add(int a,int b){
        return a+b;//返回语句
    }
}

3.方法的重载

  1. 方法名称必须相同

  2. 参数列表不同(个数不同/类型不同)

  3. 返回值可以不同,但仅仅返回类型不同不可以构成方法重载

4.命令行传参

希望运行时,再给程序传递消息

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

在这里插入图片描述

5.可变参数(不定参数)

  • jdk1.5之后,Java支持传递同类型的可变参数给一个方法。

注:

  • 声明中,在指定参数类型后加一个省略号(…)
  • 一个方法只能指定一个可变参数,它必须是方法的最后一个参数
public class Demo03 {
    public static void main(String[] args) {
        new Demo03().printMax(13,56.2,12,34);
    }

    public void printMax(double ...numbers){
        if(numbers.length == 0) {
            System.out.println("No Valid Information!");
            return;
        }
        
        double max = 0;
        for (int i = 0; i < numbers.length; i++) {
            if(numbers[i] > max) {
                max = numbers[i];
            }
        }
        System.out.println("Max :" + max);
    }
}

6.递归

自己调用自己。将一个大型复杂的问题转换为一个与原问题相似的规模较小的问题来解决。大大减少的代码量

  • 递归结构包括两个部分
    1. **递归头:**什么时候不调用自身
    2. **递归体:**什么时候调用自身
public class Demo04 {
    public static void main(String[] args) {
        System.out.println(new Demo04().fnc(5));
    }
    //阶乘用递归算法实现
    public int fnc(int x){
        if(x == 1){//递归头
            return 1;
        } else{//递归体
            return x*fnc(x-1);
        }
    }
}

  • 安利良心Up主,超棒!

狂神说Java

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值