返回

Java 类和方法:超越基础知识

后端

在 Java 的对象导向世界中,类和方法是不可或缺的构建块。它们赋予了编程语言灵活性和可复用性。在本章中,我们将深入研究类和方法的更高级概念,探索重载、参数传递和递归。然后,我们将重新审视类的访问控制、static 和 Java 的 String 类。

重载:一石多鸟

重载允许为同一类定义多个具有相同名称但参数列表不同的方法。这提供了代码重用和灵活性的强大工具。例如,我们可以定义一个名为 calculateArea() 的方法来计算不同形状的面积。

class Shape {
    public double calculateArea(int length, int width) {
        return length * width;
    }

    public double calculateArea(double radius) {
        return Math.PI * radius * radius;
    }
}

参数传递:在函数间传递数据

参数传递是将数据从调用方法传递到被调用方法的过程。Java 支持按值传递,其中对参数的任何修改都不会影响调用方。例如,如果我们调用一个交换两个整数的方法,调用方中的原始值将保持不变。

public void swap(int a, int b) {
    int temp = a;
    a = b;
    b = temp;
}

递归:函数自调用

递归是一种函数自调用的技术,它可以解决复杂问题。当一个函数直接或间接地调用自身时,就会发生递归。例如,我们可以使用递归来计算阶乘:

public int factorial(int n) {
    if (n == 0) {
        return 1;
    } else {
        return n * factorial(n - 1);
    }
}

访问控制:保护数据

访问控制在类中非常重要,因为它决定了类成员对外部世界的可见性。Java 提供了四个访问修饰符:public、protected、default 和 private。public 成员对所有类可见,而 private 成员只对声明它们的类可见。

public class MyClass {
    public String publicField;
    private int privateField;
}

static 共享资源

static 关键字用于声明类级别的成员,它们在类的所有实例之间共享。static 成员在内存中只存储一次,提高了效率。例如,我们可以使用 static 变量来计数类的实例数。

public class MyClass {
    private static int instanceCount = 0;

    public MyClass() {
        instanceCount++;
    }

    public static int getInstanceCount() {
        return instanceCount;
    }
}

String 类:Java 的文本引擎

String 类是 Java 中一个至关重要的内置类,它表示不可变的字符串。它提供了丰富的文本操作方法,例如连接、分割和搜索。String 是 Java 应用程序中广泛使用的类。

String greeting = "Hello";
String world = "World";
String message = greeting + " " + world;