“这个”java的询问点

时间:2011-03-22 19:45:17

标签: java this

这里的娱乐性Android开发人员,我猜的是一个简单的查询。

我想知道“这个”在java / Android中究竟是什么意思。偶尔你会把它看作某些方法的固有部分,但我很好奇它究竟是指什么。谢谢!

4 个答案:

答案 0 :(得分:5)

从我的观点这个是:

  • 五十个Java关键字之一
  • 特殊(例如只读)对当前对象的引用

您可以在四种不同的环境中使用它:

  1. 指向当前对象的字段方法(此。)
  2. 指向当前的对象本身(例如Object object = this;)
  3. 在另一个构造函数(this())
  4. 中调用构造函数
  5. (限定为此)指向(非静态)内部类中的外部对象(例如OuterClassName.this.OuterClassField)
  6. 为了更好地理解你需要一些例子:

    class Box {
       // Implementing Box(double width = 1, double length = 1, double height = 1):
       Box(double width, double length, double height) {         
          this.width = width; // width is local parameter
          this.length = length; // this.length is object's field
          this.height = height;
       }
       Box(double width, double length) {
          // no statements here allowed
          this(width, length, 1);
          // you can call at most one constructor (recursion not allowed)
       }
       Box(double width) {
          this(width, 1, 1);
       }
       Box() {
          this(1, 1, 1);
          System.out.println("I am default constructor");
       }
       public double getWidth() {
           return this.width; // explicit way (width means the same)
           // return Box.this.width; // full-explicit way
       }
       public void showWidth() {
           System.out.println(this.getWidth());
       }
       public void showWidthAlternate() {
           Box box = this; // the same as explicitly Box box = Box.this;
           // this = box; // can't touch me (read-only reference)
           System.out.println(box.width);
       }
       private double width, length, height;
    }
    

    更多信息:

答案 1 :(得分:4)

答案 2 :(得分:1)

这是指当前对象

主要在字段被遮蔽时使用

例如:

class Example {

int x;

public void setSomething(int x) {
 this.x = x;
}

}

this.x引用Example类中的x实例,而不是传递给方法的x。

如果您想了解更多信息,我编辑了添加链接:

this keyword

答案 3 :(得分:0)

它指的是调用该方法的类的实例。

例如,如果你有:

Cow buddy;
...
buddy.moo();

如果“moo()”方法在其定义中使用“this”,则它将引用Cow“buddy”。