java 如何调用另一个类
调用另一个类的方法
在Java中调用另一个类的方法需要确保目标类及其方法可见且可访问。以下是几种常见场景:
实例化目标类后调用 若目标类是非静态的,需先创建实例对象:
// TargetClass.java
public class TargetClass {
public void printMessage() {
System.out.println("Hello from TargetClass");
}
}
// MainClass.java
TargetClass obj = new TargetClass();
obj.printMessage();
调用静态方法 若目标方法是静态的,可直接通过类名调用:
// UtilityClass.java
public class UtilityClass {
public static void showInfo() {
System.out.println("Static method called");
}
}
// MainClass.java
UtilityClass.showInfo();
跨包调用类
当类位于不同包时,需导入目标类并使用适当的访问修饰符:
// com.example.utils.StringHelper.java
package com.example.utils;
public class StringHelper {
public static String capitalize(String str) {
return str.substring(0,1).toUpperCase() + str.substring(1);
}
}
// com.example.Main.java
package com.example;
import com.example.utils.StringHelper;
String result = StringHelper.capitalize("test");
继承情况下的调用
子类可以直接调用父类的非私有方法:
// ParentClass.java
public class ParentClass {
protected void parentMethod() {
System.out.println("Parent method");
}
}
// ChildClass.java
public class ChildClass extends ParentClass {
public void callParent() {
parentMethod(); // 直接调用继承的方法
}
}
通过接口调用实现类
定义接口并让目标类实现它:
// GreetingService.java
public interface GreetingService {
void greet();
}
// EnglishGreeting.java
public class EnglishGreeting implements GreetingService {
@Override
public void greet() {
System.out.println("Hello");
}
}
// Main.java
GreetingService service = new EnglishGreeting();
service.greet();
注意事项
- 访问控制:确保目标方法的修饰符(public/protected/private)允许当前类访问
- 类路径:跨包调用时检查类是否在正确路径下
- 循环依赖:避免类之间相互调用导致初始化问题







