一、方法:行为的抽象载体
class Calculator {
// 方法封装加法逻辑
public int add(int a, int b) {
return a + b;
}
}
二、方法重载:编译时多态
class Printer {
// 同名方法不同参数
void print(String text) {
System.out.println("String: " + text);
}
void print(int num) {
System.out.println("int: " + num);
}
}
// 使用:
new Printer().print(100); // 输出: int: 100
new Printer().print("Hello");// 输出: String: Hello
三、方法重写:运行时多态
class Animal {
void speak() {
System.out.println("Animal sound");
}
}
class Cat extends Animal {
@Override // 注解确保正确重写
void speak() {
System.out.println("Meow!");
}
}
// 使用:
Animal myCat = new Cat();
myCat.speak(); // 输出: Meow! (动态绑定)
四、参数传递机制
public class ParamTest {
void modifyValue(int num) {
num = 100; // 不影响原始值(值传递)
}
void modifyObject(StringBuilder sb) {
sb.append(" World"); // 修改引用指向对象
sb = new StringBuilder(); // 新引用不影响原对象
}
}
五、可变参数实战
class Logger {
// 动态接收任意数量参数
static void log(String format, Object... args) {
System.out.printf(format, args);
}
}
// 使用:
Logger.log("%s 得分:%d%n", "小明", 95);
// 输出: 小明 得分:95
关键洞察:Java方法通过字节码指令invokevirtual(实例方法)、invokestatic(静态方法)实现调用。JVM在调用时根据对象实际类型确定目标方法(虚方法表机制),这是多态的技术基石。
方法不仅是代码复用单元,更是面向对象设计中消息传递的载体。掌握方法特性,方能写出灵活、可扩展的Java代码,真正释放OOP威力。

被折叠的 条评论
为什么被折叠?



