Java 在构造函数之外的方法中使用构造函数中的变量
如果我有这样一个构造函数:Java 在构造函数之外的方法中使用构造函数中的变量,java,methods,constructor,Java,Methods,Constructor,如果我有这样一个构造函数: public Constructor (int a, int b){ int c = a; int d = b; } int c; int d; public Constructor (int a, int b) { c = a; d = b; } 然后,我如何在与构造函数相同的类中的方法中使用变量c和d,因为尝试仅在方法中使用变量名称似乎不起作用?事实上,您的代码不会编
public Constructor (int a, int b){
int c = a;
int d = b;
}
int c;
int d;
public Constructor (int a, int b) {
c = a;
d = b;
}
然后,我如何在与构造函数相同的类中的方法中使用变量c和d,因为尝试仅在方法中使用变量名称似乎不起作用?事实上,您的代码不会编译-
int c=int a
无效
我想你的意思是:-intc=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);
}
}
您需要在构造函数之外将变量声明为类成员。换句话说,在构造函数之外声明c和d,如下所示:
public Constructor (int a, int b){
int c = a;
int d = b;
}
int c;
int d;
public Constructor (int a, int b) {
c = a;
d = b;
}
intc=inta代码>将不会编译,您需要intc=a
在修复我之前所说的内容后,您可以将它们作为参数传递给方法(从构造函数中),或者将值保存在实例属性中并在方法中使用它们。不确定为什么投票被否决,这对我来说似乎是一个有效的问题。不是吗?尝试修复语法错误并被回滚。确保下次编辑时保留它:)是的,我刚刚删除了第二个整数(在构造函数赋值的右侧)。现在看起来不错。在这种情况下,使用这个。c=a和c=a有什么区别?