Java – Quando o “this” é obrigatório

Muitas vezes pensamos no objeto this como opcional, ou seja, meramente documentacional, mas saiba que em determinadas ocasiões ele é obrigatório, veja o exemplo:

01: class Point2D {
02:   private int x, y;
03:   public Point2D(int x, int y) {
04:     x = x;
05:   }
06:   public String toString() {
07:     return "[" + x + ", " + y + "]";
08:   }
09:   public static void main(String []args) {
10:     Point2D point = new Point2D(10, 20);
11:     System.out.println(point);
12:   }
13: }

Qual o resultado deste código:

  1. point
  2. Point
  3. [0, 0]
  4. [10, 0]
  5. [10, 20]

Se marcou a opção 4 errou pois a resposta correta é a opção 3. O motivo está na linha 04 no qual obrigatoriamente é necessário o uso do objeto this para referirmo-nos a variável x da classe. Então a próxima vez que criar um método set tome o máximo de cuidado e insira o this.