首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用这个运算符在构造函数中获取变量?

问使用这个运算符在构造函数中获取变量?
EN

Stack Overflow用户
提问于 2014-07-10 05:09:56
回答 3查看 54关注 0票数 0

当'this‘运算符用于引用当前对象中的变量时,该变量是否包含在构造函数中?例如..。

代码语言:javascript
复制
public class Mechanics {

    public Mechanics() {
      int x = 1;

    }

   public int returnX(){
    return this.x;
 {

}

当创建对象时调用构造函数时,“this”运算符将在构造函数中返回x,还是只返回外部的变量?

谢谢

EN

回答 3

Stack Overflow用户

发布于 2014-07-10 05:12:10

您的代码无效,无法编译。构造函数中定义的x只对构造函数是局部的。它不是Mechanics类的字段。为了能够在其他地方使用x,您需要将其声明为类的字段:

代码语言:javascript
复制
public class Mechanics {

    private int x;

    public Mechanics() {
        this.x = 1; //initialize x in the constructor

    }         

    public int returnX() {
        return this.x;
    }
}

这也很好,因为使用您期望的行为,在类的任何成员方法(包括构造函数)中声明的任何局部变量都会变成所属类的字段。这是无政府状态的秘诀。

票数 3
EN

Stack Overflow用户

发布于 2014-07-10 05:15:07

变量x的作用域仅限于构造函数。

如果你想在returnX中访问x,你可以这样做:

代码语言:javascript
复制
public class Mechanics {

     private int x;

    public Mechanics() {
       this.x =1;

    }

   public int returnX(){
    return this.x;
 }

}
票数 0
EN

Stack Overflow用户

发布于 2014-07-10 05:15:57

X是构造器内部的局部变量,在构造器完成它的工作后它就不存在了。您的代码将无法编译。

" this“只是对这个类的object的引用。是否有可能在其他方法中获取某些局部变量的值?不,不管你怎么尝试。你需要class字段,它对所有的方法都是可见的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24663864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档