You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建实例变量以调用另一个类中的非静态方法?

解决Java中创建实例变量调用其他类非静态方法的问题

你的代码存在几个关键问题,先逐个说明:

  • Java是大小写敏感语言,类名是V,实例化时却写了v,这会导致编译错误,必须保持类名大小写一致。
  • input变量未定义,调用方法时需要传入具体的整数值,或者通过args获取命令行输入。
  • 静态方法call_Print_V中直接调用非静态方法print_V(n)是不允许的,静态方法无法直接访问类的非静态成员,必须先创建类的实例再调用。

修正后的完整代码:

class V {
    void print_V(int number) {
        String v = "v";
        System.out.print("Letter" + v.repeat(number));
    }

    void print_V() {
        System.out.print("v");
    }

    // 修正静态方法,先实例化V再调用非静态方法
    public static void call_Print_V(int n) {
        V vInstance = new V();
        vInstance.print_V(n);
    }
}

class Main {
    public static void main(String[] args) {
        // 1. 创建V类的实例变量
        V vInstance = new V();
        
        // 2. 通过实例变量调用带参数的非静态方法
        vInstance.print_V(5);
        
        // 可选:调用无参非静态方法
        // vInstance.print_V();
        
        // 可选:调用V类的静态方法(直接用类名调用)
        // V.call_Print_V(3);
    }
}

核心逻辑总结:

要调用其他类的非静态方法,必须遵循两个步骤:

  1. 创建目标类的实例对象:使用类名 实例变量名 = new 类名();的格式,比如V vInstance = new V();,这里的vInstance就是你需要的实例变量。
  2. 通过实例变量调用非静态方法:使用实例变量名.方法名(参数);的格式,比如vInstance.print_V(5);,即可成功调用目标类的非静态方法。

内容的提问来源于stack exchange,提问作者Jen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 16:01:11