此关键字作为参考变量

时间:2015-07-10 17:10:15

标签: java this

是一个保存当前对象的引用ID的变量。 那么为什么它不能用作参考变量?

Temp t = new Temp();  //Temp be any class
t.show();            //show() be any method in Temp
this.show();        // error

3 个答案:

答案 0 :(得分:3)

如果您尝试从静态上下文中执行此操作,那么如果您所在的课程没有<%= @user_system.parts.each do |part| %> <li><%= part.name%> by by <%= part.parts_user_system%></li></li> <% end %> 方法,则只会出现错误。

show()保留当前对象的引用ID,因此它取决于您的位置,而您刚刚创建的对象。

答案 1 :(得分:0)

当前对象不是您最后提到的对象。以下是this用法的示例:

public class Temp {
    private int x = 3;

    public void show() {
        this.x = 4;
        this.show(); // same as show();
    }
}

答案 2 :(得分:0)

&#34; this&#34; java中的关键字是引用运行代码的对象。 最有用的是比较自身内部的对象。例如:

 public boolean equals(Object object) {
      return object == this;
 }

以下是另一段代码,可以帮助您理解:

 public class Test {

      public Test() {
      }

      public static void main(String... args) {
           Test test = new Test();//original test object
           Test test2 = new Test();
           test.equals(test);//returns true
           test.equals(test2);//returns false
      }

      public void equals(Test testParameter) {

           // in this particular case "this" refers to the 
           // original test object (defined in the main method)
           // as it is the only object calling this method.
           return testParameter == this; // "this" is the object that is calling the method
      }

 }