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

如何让构造方法中定义的对象对类的其他方法可见?

解决方法:将局部变量改为类成员变量

当然可以实现!你当前的问题在于,calc1和calc2是构造方法中的局部变量,它们的作用域仅限于构造方法内部,所以其他方法根本看不到它们。要在保持构造方法初始化对象的前提下让其他方法访问,只需要把这两个变量提升为类的成员变量即可。

修改后的代码示例:

class Number {
    // 声明为类的成员变量,作用域覆盖整个类
    private Calculator calc1;
    private Calculator calc2;

    public Number(int num1, int num2) {
        // 在构造方法中初始化成员变量
        calc1 = new Calculator(num1);
        calc2 = new Calculator(num2);
    }

    public void displayNumber() {
        // 现在可以直接访问成员变量了
        System.out.println(calc1.result);
    }
}

关键说明:

  • 把calc1和calc2的声明移到类的内部、所有方法之外,成为类的成员变量,这样整个类的方法都能访问它们;
  • 保留在构造方法中对这两个变量的初始化逻辑,完全符合你“仍于构造方法中初始化对象”的要求;
  • 给成员变量加上private修饰符是良好的封装习惯,避免外部直接修改这些内部对象,如果后续需要外部访问,可以添加对应的getter方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:34:40