java如何调用另一个类的方法
调用另一个类的方法
在Java中,调用另一个类的方法需要遵循面向对象的基本原则。以下是几种常见的调用方式:
实例方法调用
通过创建目标类的实例对象,然后使用对象名加.运算符调用方法。
// 定义目标类
public class TargetClass {
public void printMessage() {
System.out.println("Hello from TargetClass");
}
}
// 调用类
public class MainClass {
public static void main(String[] args) {
TargetClass target = new TargetClass(); // 创建实例
target.printMessage(); // 调用实例方法
}
}
静态方法调用
如果目标方法为static修饰的静态方法,可以直接通过类名调用,无需实例化。

public class TargetClass {
public static void printStaticMessage() {
System.out.println("Static method called");
}
}
public class MainClass {
public static void main(String[] args) {
TargetClass.printStaticMessage(); // 直接通过类名调用
}
}
通过继承调用
若当前类继承自目标类,可以直接调用父类的非私有方法。
public class ParentClass {
public void parentMethod() {
System.out.println("Parent method");
}
}
public class ChildClass extends ParentClass {
public void callParentMethod() {
parentMethod(); // 直接调用继承的方法
}
}
通过接口或抽象类
实现接口或继承抽象类后,需重写方法并通过实例调用。

public interface MyInterface {
void interfaceMethod();
}
public class ImplementationClass implements MyInterface {
@Override
public void interfaceMethod() {
System.out.println("Implemented method");
}
}
public class MainClass {
public static void main(String[] args) {
MyInterface obj = new ImplementationClass();
obj.interfaceMethod(); // 通过接口引用调用
}
}
方法可见性注意事项
确保目标方法的访问修饰符允许跨类调用:
public: 任意类可访问。protected: 同包或子类可访问。- 默认(无修饰符): 仅同包可访问。
private: 仅本类可访问。
反射调用(高级用法)
通过反射机制动态调用方法,适用于运行时才确定类或方法名的场景。
import java.lang.reflect.Method;
public class ReflectionExample {
public static void main(String[] args) throws Exception {
Class<?> targetClass = Class.forName("TargetClass");
Object instance = targetClass.newInstance();
Method method = targetClass.getMethod("printMessage");
method.invoke(instance); // 反射调用
}
}






