如何调用java
调用 Java 方法
在 Java 中调用方法需要明确方法的类型(静态或实例)、所属类以及参数。以下是具体实现方式:
静态方法调用 通过类名直接调用静态方法,无需创建对象实例:
ClassName.staticMethodName(arguments);
实例方法调用 需要先创建对象实例,再通过对象调用方法:
ClassName object = new ClassName();
object.instanceMethodName(arguments);
构造方法调用
使用 new 关键字调用构造方法创建对象:
ClassName object = new ClassName(arguments);
跨类调用方法
在不同类中调用方法需遵循访问控制规则:
同一包内调用 直接通过对象或类名调用(若方法可见):
// 在ClassA中调用ClassB的方法
ClassB objB = new ClassB();
objB.methodName();
不同包调用
需导入目标类且方法具有public权限:
import packageName.ClassB;
public class ClassA {
public void callMethod() {
ClassB objB = new ClassB();
objB.publicMethod();
}
}
方法参数传递
Java 支持值传递(基本类型)和引用传递(对象类型):
基本类型参数 传递的是值的副本:
void modify(int num) {
num = 10; // 不影响原始值
}
对象类型参数 传递对象引用,可修改对象状态:
void modifyList(List<String> list) {
list.add("newItem"); // 影响原始对象
}
递归调用
方法内部调用自身需设置终止条件:
int factorial(int n) {
if (n == 1) return 1;
return n * factorial(n - 1);
}
方法重载(Overload)
同一类中允许同名方法存在,需参数列表不同:
void print(int num) { System.out.println(num); }
void print(String text) { System.out.println(text); }
方法覆盖(Override)
子类重写父类方法需满足:
- 方法名和参数列表相同
- 返回类型协变或相同
- 访问权限不能更严格
class Parent { protected void show() { System.out.println("Parent"); } }
class Child extends Parent { @Override public void show() { System.out.println("Child"); } }
### 可变参数方法
使用省略号声明可变参数:
```java
void printAll(String... items) {
for (String item : items) {
System.out.println(item);
}
}
Lambda 表达式调用
函数式接口可通过 Lambda 实现:
Runnable task = () -> System.out.println("Running");
new Thread(task).start();
反射调用方法
通过反射动态调用方法:
Method method = cls.getDeclaredMethod("methodName", parameterTypes);
method.invoke(object, args);
注意事项
- 静态方法不能直接调用实例成员
- 方法调用链过长可能降低可读性
- 递归需注意栈溢出风险
- 方法参数数量建议不超过7个(代码整洁原则)







