Java 类和方法:超越基础知识
2023-09-30 21:35:54
在 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;