10.4. Métodos que revelam o estado

Como os atributos foram declarados como private, não há forma de as classes cliente da classe Jogador conhecerem diretamente os valores dos objetos que criam.

Para os atributos cujos valores queremos poder revelar (neste caso todos), declaramos métodos que retornam o seu valor.

Não é obrigatório que os nomes dos métodos que revelam os valores dos atributos sejam iguais aos nomes que nós demos aos atributos, embora neste caso isso aconteça com os dois primeiros atributos.

A execução das instruções

do método main da classe ClienteDeJogador, tem como efeito a escrita, no standard output, das frases

Repare que os métodos de instância (não static), definidos atrás, retornam valores diferentes conforme o objeto alvo de uma específica invocação.

O objeto alvo da invocação é diferente nas invocações meuJogador.nome() e teuJogador.nome(), logo this refere-se a objetos diferentes de cada vez – na primeira invocação this refere o objeto cujo nome é Maria e na segunda invocação this refere o objeto cujo nome é Pedro.

A figura seguinte ilustra o estado da memória no fim da execução do método nome() aquando da invocação meuJogador.nome() na instrução System.out.println("O nome eh " + meuJogador.nome()); acima:

Repare como a variável this referencia o mesmo objeto que foi alvo da invocação do método.

A figura seguinte ilustra o estado da memória no fim da execução do método nome() aquando da invocação teuJogador.nome() na instrução System.out.println("O nome deste outro eh " + teuJogador.nome()); acima:

 

Volte a reparar no objeto referenciado por this desta vez. É o mesmo objeto referenciado pela variável teuJogador, exatamente aquele sobre o qual a invocação foi feita.

 


 

Anterior: 10.3. Construtores

Seguinte: 10.5. Métodos que alteram o estado