Pois é se isso for uma afirmação, creio que o livro pode estar equivocado, pq vc usando “.” seria juntamente com o “this”, ou um objeto que nao seja o corrente. Mas dessa forma que vc mostrou funciona tb.
[quote=TiagoTC]No livro da Kathy Sierra, está escrito a seguinte frase:
“Members accessed without the dot operator (.) must belong to the same class.”
Mas, veja o seguinte código:
class A{int x = 0;}
class B extends A{int y = x;}
Aqui eu estou acessando o ‘x’ sem o operador ‘.’, sendo que ele está definido na outra class (A). Isso não fura a afirmação dada pelo livro?
Obrigado.[/quote]
O java aceita que chame sem o ponto por causa do sombreamento. o que a a Kathy está lhe dizendo é que isso é uma má prática.
O uso do ponto serve para driblar o sombreamento, então sempre que chamar por algo fora da classe deve usar o ponto junto com this ou super.
Esse codigo assima funciona, mas está pessimanente construido.