当'this‘运算符用于引用当前对象中的变量时,该变量是否包含在构造函数中?例如..。
public class Mechanics {
public Mechanics() {
int x = 1;
}
public int returnX(){
return this.x;
{
}当创建对象时调用构造函数时,“this”运算符将在构造函数中返回x,还是只返回外部的变量?
谢谢
发布于 2014-07-10 05:12:10
您的代码无效,无法编译。构造函数中定义的x只对构造函数是局部的。它不是Mechanics类的字段。为了能够在其他地方使用x,您需要将其声明为类的字段:
public class Mechanics {
private int x;
public Mechanics() {
this.x = 1; //initialize x in the constructor
}
public int returnX() {
return this.x;
}
}这也很好,因为使用您期望的行为,在类的任何成员方法(包括构造函数)中声明的任何局部变量都会变成所属类的字段。这是无政府状态的秘诀。
发布于 2014-07-10 05:15:07
变量x的作用域仅限于构造函数。
如果你想在returnX中访问x,你可以这样做:
public class Mechanics {
private int x;
public Mechanics() {
this.x =1;
}
public int returnX(){
return this.x;
}
}发布于 2014-07-10 05:15:57
X是构造器内部的局部变量,在构造器完成它的工作后它就不存在了。您的代码将无法编译。
" this“只是对这个类的object的引用。是否有可能在其他方法中获取某些局部变量的值?不,不管你怎么尝试。你需要class字段,它对所有的方法都是可见的。
https://stackoverflow.com/questions/24663864
复制相似问题