别再死记硬背!Java 这些 "进阶基础",用例子讲得明明白白

31 阅读3分钟

Java 入门后,总感觉自己写的代码 "差点意思"?不是语法不会,而是没把这些「进阶偏基础」的知识点用透。今天挑 3 个高频又实用的点,用极简例子讲透,新手也能秒懂,写代码直接升维~

一、方法重载(Overload):同一个方法名,玩出不同花样

新手总觉得 "一个功能一个方法名",代码又长又乱。方法重载能让你用同一个方法名处理不同参数,代码整洁度直接拉满,也是面试高频考点。

✅ 示例代码

public class MethodOverloadDemo {
    // 基础版:计算两个整数的和
    public static int add(int a, int b) {
        return a + b;
    }

    // 重载1:支持三个整数求和(参数个数不同)
    public static int add(int a, int b, int c) {
        return a + b + c;
    }

    // 重载2:支持小数求和(参数类型不同)
    public static double add(double a, double b) {
        return a + b;
    }

    public static void main(String[] args) {
        System.out.println(add(1, 2));       // 输出3(调用第一个add)
        System.out.println(add(1, 2, 3));    // 输出6(调用第二个add)
        System.out.println(add(1.5, 2.5));  // 输出4.0(调用第三个add)
    }
}

核心要点:方法名必须相同,参数列表(个数 / 类型 / 顺序)必须不同,和返回值无关!

二、可变参数(Varargs):告别数组,参数想传多少传多少

以前传多个同类型参数,得先建数组,又麻烦又丑。可变参数...能直接接收任意个数的同类型参数,底层还是数组,但写法超简洁。

✅ 示例代码

public class VarargsDemo {
    // 可变参数写法:int... nums 等价于 int[] nums
    public static int sum(int... nums) {
        int total = 0;
        for (int num : nums) {
            total += num;
        }
        return total;
    }

    public static void main(String[] args) {
        System.out.println(sum(1, 2));      // 输出3(传2个参数)
        System.out.println(sum(1, 2, 3));   // 输出6(传3个参数)
        System.out.println(sum());          // 输出0(传0个参数)
    }
}

避坑提醒:一个方法只能有一个可变参数,且必须放在参数列表最后!

三、枚举(Enum):告别魔法值,代码更规范

新手喜欢用1/2/3"男"/"女"这种「魔法值」,代码可读性差还容易写错。枚举能把固定的常量集合封装起来,安全又易维护。

✅ 示例代码

// 定义枚举:固定的性别类型
enum Gender {
    MALE, FEMALE
}

// 定义枚举:带属性的季节(进阶用法)
enum Season {
    SPRING("春天", "春暖花开"),
    SUMMER("夏天", "烈日炎炎"),
    AUTUMN("秋天", "秋高气爽"),
    WINTER("冬天", "冰天雪地");

    // 枚举的属性
    private final String name;
    private final String desc;

    // 枚举的构造方法(必须私有)
    Season(String name, String desc) {
        this.name = name;
        this.desc = desc;
    }

    // 获取属性的方法
    public String getDesc() {
        return desc;
    }
}

public class EnumDemo {
    public static void main(String[] args) {
        // 基础用法:直接使用枚举常量
        Gender gender = Gender.MALE;
        System.out.println(gender); // 输出MALE

        // 进阶用法:使用带属性的枚举
        Season summer = Season.SUMMER;
        System.out.println(summer.getDesc()); // 输出烈日炎炎

        // 遍历枚举(实用技巧)
        for (Season season : Season.values()) {
            System.out.println(season + ":" + season.getDesc());
        }
    }
}

总结

  1. 方法重载核心是「同名不同参」,能简化方法调用,提升代码整洁度;
  2. 可变参数...本质是数组,使用时需注意位置和数量限制;
  3. 枚举替代魔法值,既能保证类型安全,又能提升代码可读性,是进阶基础的必学知识点。