方法(java)

一、什么是方法?

方法是一个代码块,类似于c语言中的“函数”。

方法存在的意义:

  1. 是能够模块化的组织代码(当代码规模比较复杂的时候)。
  2. 做到代码能被重复使用,一份代码可以在多个位置使用。
  3. 让代码更简洁更容易理解。
  4. 直接调用已有的方法,不用重复造轮子。

二、方法的定义

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

// 方法调用
返回值变量 = 方法名称(实参...)

示例:

class Test {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        // 方法的调用
        int ret = add(a, b);
        System.out.println("ret = " + ret);
    }
    // 方法的定义
    public static int add(int x, int y) {
       return x + y;
    }
}
// 执行结果
ret = 30

注意:

  1. 定义方法时,可以没有参数;如果有参数的话,那么则要指定其类型。
  2. 定义方法时,可以没有返回值,此时,返回值类型应写成void。
  3. 方法的定义必须在类中,代码书写在调用位置的上方或者下方,均可。
  4. java不同于c语言,没有“函数调用”这一概念

三、 方法的重载

我们先看一个程序示例:

class Test {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int ret = add(a, b);
        System.out.println("ret = " + ret);
        double a2 = 10.5;
        double b2 = 20.5;
        double ret2 = add(a2, b2);
        System.out.println("ret2 = " + ret2);
    }
    public static int add(int x, int y) {
        return x + y;
    }
}
// 编译出错
Test.java:13: 错误: 不兼容的类型: 从double转换到int可能会有损失
double ret2 = add(a2, b2);

由于参数类型不匹配,所以不能直接使用现有的add方法。

这个问题,可以使用方法的重载加以解决,具体如下:

class Test {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int ret = add(a, b);
        System.out.println("ret = " + ret);
        
        double a2 = 10.5;
        double b2 = 20.5;
        double ret2 = add(a2, b2);
        System.out.println("ret2 = " + ret2);
        
        double a3 = 10.5;
        double b3 = 10.5;
        double c3 = 20.5;
        double ret3 = add(a3, b3, c3);
        System.out.println("ret3 = " + ret3);
        
        public static int add(int x, int y) {
            return x + y;
        }
        public static double add(double x, double y) {
            return x + y;
        }
        public static double add(double x, double y, double z) {
            return x + y + z;
        }
        
    }
}

方法的名字都叫 add.
但是有的 add 是计算 int 相加, 有的是 double 相加; 有的计算两个数字相加, 有的是计算三个数字相加.
同一个方法名字, 提供不同版本的实现, 称为 方法重载

重载的规则

  1. 方法名相同。
  2. 方法的参数不同(参数的个数 or 参数的类型)。
  3. 方法的返回值类型不影响重载,可以相同也可以不相同。
  4. 所有方法都处于同一类中。

版权声明:本文为weixin_61253613原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。