Java方法

前言

本人的技术笔记会优先发布在个人站点longyxblg.cn

方法的概念和使用

在编程中,某段功能的代码可能频繁使用到,如果在每个位置都重新实现一遍,会:

  • 使程序变得繁琐

  • 开发效率低下,做了大量重复性的工作

  • 不利于维护,需要改动时,所有用到该段代码的位置都需要修改

  • 不利于复用

因此,在 Java 编程中,我可以将频繁使用的代码封装成方法,类似于 C 语言中的函数,需要时直接拿来链接(即方法名–方法的入口地址)使用即可,避免了一遍一遍的累赘。

使用方法有以下好处:

  • 模块化的组织代码

  • 一份代码可以在多个位置使用

  • 让代码更好理解更简单

  • 直接调用现有方法开发, 不必重复造轮子

方法的定义

语法格式

修饰符 返回值类型 方法名称([参数类型 形参 ...]){
方法体代码;
[return 返回值];
}

比如此时,要定义一个方法来判断一个整数的奇偶性

    public static boolean IsOdd(int num){
//        判断 num 是不是奇数
        if(num % 2 != 0)
        {
            return true;
        }
        else
        {
            return  false;
        }
    }
        int a = 10;
        if(IsOdd(a))
        {
            System.out.println("变量 a 是奇数");
        }
        else
        {
            System.out.println("变量 a 是偶数");
        }

在这里插入图片描述

  • 修饰符:现在直接使用public static 固定搭配,更多的修饰符会在后面介绍

  • 返回值类型:如果方法有返回值,返回值类型必须要与返回的实体类型一致,如果没有返回值,必须写成void

  • 方法名字:采用小驼峰命名

  • 参数列表:如果方法没有参数,()中什么都不写,如果有参数,需指定参数类型,多个参数之间使用逗号隔开

  • 方法体:方法内部要执行的语句

  • 在java当中,方法必须写在类当中

  • 在java当中,方法不能嵌套定义

  • 在java当中,没有方法声明一说

方法调用的执行过程

调用方法—>传递参数—>找到方法地址—>执行被调方法的方法体—>被调方法结束返回—>回到主调方法继续往下执行

  • 定义方法的时候, 不会执行方法的代码. 只有调用的时候才会执行

  • 一个方法可以被多次调用

实参和形参的关系

类似于 C 语言中的传值调用,形参只是实参的一份临时拷贝,形参的改变不会影响实参的值。

 public static void Swap(int x , int y){
//        测试能不能交换实参的值
        x = x ^ y;
        y = x ^ y;
        x = x ^ y;
    }
        int a = 10;
        int b = 20;
        Swap(a,b);
        System.out.println(a);
        System.out.println(b);

在这里插入图片描述

调试查看到在函数中形参确实是成功交换了值

在这里插入图片描述

实参并没有交换

由于 Java 中是没有指针这一概念的,具体要怎么实现将放到类与对象中说明。

方法重载

在自然语言中,一个词语如果有多重含义,那么就说该词语被重载了,具体代表什么含义需要结合具体的场景。

在Java中,如果多个方法的名字相同,参数列表不同,则称该几种方法被重载了。

注意,构成重载的条件:

  • 方法的名字必须相同

  • 参数列表必须不同

  • 与返回值类型无关

在这里插入图片描述

    public static double add(double x,double y){
        // 方法的重载
        return x + y;
    }

    public static int add(int x, int y ,int z){
        // 方法的重载
        return  x + y + z;
    }

     public static int add(int x,int y){
        // 方法的重载
        return x + y;
    }
        int num1 = 10;
        int num2 = 20;
        int num3 = 30;
        double num4 = 5.0;
        double num5 = 10.0;
        System.out.println(add(num1,num2));
        System.out.println(add(num1,num2,num3));
        System.out.println(add(num4,num5));

在这里插入图片描述

编译器在编译代码时,会对实参类型进行推演,根据推演的结果来确定调用哪个方法。

递归

有时候遇到的问题直接并不好解决,但是发现将原问题拆分成其子问题之后,子问题与原问题有相同的解法,等子问题解决之后,原问题就迎刃而解了。这种思想称为递归。

递归的概念

一个方法在执行过程中调用自身, 就称为 “递归”。递归有一个递推公式,还有一个终止条件。每一次递归都更接近这个终止条件。

递归的使用

    public static void Reverse(int num){
//        逆序打印一个数字
        if(num > 0)
        {
            System.out.print(num % 10);
            Reverse(num / 10);
        }
    }

    public static int Factorial(int n){
        // 递归求 n 的阶乘
        if(n != 1)
        {
            return n * Factorial(n - 1);
        }
        return 1;
    }
        System.out.println(Factorial(5));
        Reverse(1234);

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值