【问题标题】:using a variable in constructor in a method outside of constructor在构造函数之外的方法中使用构造函数中的变量
【发布时间】:2012-11-10 02:41:15
【问题描述】:

如果我有这样的构造函数:

    public Constructor (int a, int b){

        int c =  a;
        int d =  b; 
    }

然后我如何在与构造函数相同的类中的方法中使用变量 c 和 d,因为尝试仅在方法中使用变量名称似乎不起作用?

【问题讨论】:

  • int c = int a; 不会编译,你需要int c = a;
  • 在修复我之前所说的之后,您可以将它们作为参数传递给您的方法(从您的构造函数中)或将值保存在实例属性中并在方法中使用它们。
  • 不知道为什么这被否决了,对我来说似乎是一个有效的问题。
  • 不是sscce

标签: java methods constructor


【解决方案1】:

实际上您的代码不会编译 - int c = int a 无效。

我假设您的意思是:-int c = a;

我怎样才能在同一个类的方法中使用变量 c 和 d 作为构造函数

您不能,因为您已将它们声明为局部变量,其范围在构造函数结束执行时结束。

您应该将它们声明为实例变量。

public class MyClass {
    int c;
    int d;

    public MyClass(int a, int b){

        this.c = a;
        this.d = b; 
    }

    public void print() {
        System.out.println(c + " : " + d);
    }
}

【讨论】:

  • 尝试修复语法错误并被回滚。确保下次编辑时保留它:)
  • 是的,我刚刚删除了第二个整数(在构造函数中赋值的右侧)。现在看起来不错。
  • 在这种情况下使用 this.c = a 和 c = a 有什么区别?
【解决方案2】:

您需要在构造函数之外将变量声明为类成员。换句话说,像这样在构造函数之外声明 c 和 d:

int c;
int d;

public Constructor (int a, int b) {

        c = a;
        d = b; 
}

【讨论】:

    猜你喜欢
    • 2021-03-18
    • 2018-02-20
    • 2023-04-02
    • 1970-01-01
    • 2016-09-27
    • 2012-06-30
    • 2016-07-16
    • 2021-01-08
    • 2012-06-30
    相关资源
    最近更新 更多