2015-07-10 2 views
0

это - это переменная, которая содержит ссылочный идентификатор текущего объекта. Почему он не может использоваться в качестве ссылочной переменной?это ключевое слово в качестве ссылочной переменной

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

Это ** привычки ** выброшена ошибка ** если ** вы не не в 'Temp' класса или вы находятся в классе «Temp», но в статическом контексте. – Codebender

ответ

3

Это только выдаст ошибку, если класс вы в не имеет show() метод или если вы пытаетесь сделать это из статического контекста.

this сохранить ссылочный идентификатор текущего объекта, так что он зависит от того, где вы находитесь, и не какие объекты вы только что создали.

+0

Что означает «текущий объект»? –

+0

@anmolsharma Подумайте об этом как о классе, в котором вы находитесь. – JackWhiteIII

0

Текущий объект - это не объект, который вы указали последним. Вот пример использования this:

public class Temp { 
    private int x = 3; 

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

«это» ключевое слово в 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 
     } 

} 
Смежные вопросы