跟着狂神学Java:方法Method

一、什么是方法?

  1. 引入:

    System.out.printlin():是指调用System类中的out对象 的printlin()方法

  2. 方法的命名规则:首字母小写的驼峰命名法

  3. Java方法是语句的集合,它们在一起执行一个功能。方法包含于类或对象中,方法在程序中被创建,在其他地方被引用。

  4. 设计方法的原则:方法的本意是功能块,设计方法时,最好保持方法的原子性——一个方法只完成一个功能,这样有利于我们后期扩展。

二、方法的定义和调用

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

                方法体

                return 返回值;

        }

  • 实际参数参(调用方法时)&形式参数(定义方法时)

  • 值传递(Java)&引用传递

package com.shao.Method;

public class Demo01 {
    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;
    }


    private static void test() {
        for (int i = 1; i < 10; i++) {//快捷键100.for+Enter
            for (int j = 1; j <=i; j++) {
                int result = i*j;
                System.out.print(j+"*"+i+"="+result+"\t");
            }
            System.out.println('\n');
        }

    }
}
package com.shao.Method;

public class Demo02 {
    public static void main(String[] args) {
        int max = max(10,10);
        System.out.println(max);
    }

    //比较大小方法
    private static int max(int num1, int num2) {
        if(num1 == num2){
            System.out.println("num1==num2");
            return 0; //返回值,同时终止方法
        }else if(num1 > num2){
            return num1;
        }else{
            return num2;
        }
    }
}

三、方法的重载

即在一个类中,有相同的函数名称,但是形参不同。

方法重载的规则:

  1. 方法的名称必须相同

  2. 参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)

  3. 方法的返回值类型可以相同也可以不同(但注意,仅仅返回值类型不同不足以成为方法的重载,会报错!)

      实现原理:

              方法名称相同时,编译器会根据调用的参数列表去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错。

package com.shao.Method;

public class Demo03 {public static void main(String[] args) {
    int max = max(10,10);
    System.out.println(max);
}

    //比较大小方法
    private static int max(int num1, int num2) {
        if(num1 == num2){
            System.out.println("num1==num2");
            return 0; //返回值,同时终止方法
        }else if(num1 > num2){
            return num1;
        }else{
            return num2;
        }
    }
    //比较大小方法
    private static float max(float num1, float num2) {
        if(num1 == num2){
            System.out.println("num1==num2");
            return 0; //返回值,同时终止方法
        }else if(num1 > num2){
            return num1;
        }else{
            return num2;
        }
    }
    //比较大小方法
    private static void max(int num1, int num2, int num3) {
    }
}

四、可变参数

  • JDK1.5开始,Java支持传递同类型的可变参数给一个方法

  • 在方法声明中,在指定参数类型后加一个省略号(...)

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

    package com.shao.Method;
    
    public class Demo05 {
        public static void main(String[] args) {
            int max = max(4,5,2);
            System.out.println(max);
        }
        //比较大小方法
        private static int max(int num1, int... num2) {
            if(num1 == num2[0]){
                System.out.println("num1==num2");
                return 0; //返回值,同时终止方法
            }else if(num1 > num2[0]){
                return num1;
            }else{
                return num2[0];
            }
        }
    }
    

五、递归思想

递归结构包括两个部分:

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

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

Java使用栈机制,会先将main()和调用的各方法先压入栈中,所以如果层数比较深的时候,不适合用递归的算法编写程序!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Caleb Shao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值