toString
na classe Jogo
Voltemos de novo à classe Jogo
.
Tal como fizemos para a classe Jogador
, vamos construir o método toString
para a classe Jogo
, para permitir aos clientes desta classe obter uma representação textual de um jogo. Este método é útil durante o desenvolvimento da classe pois dá-nos uma forma de conhecermos o estado de um dado objeto do tipo Jogo
em formato String
, o qual poderemos, por exemplo, imprimir no standard output.
x/**
* Representacao textual deste jogo.
*/
public String toString () {
StringBuilder sb = new StringBuilder();
sb.append("Objetivo do jogo: " + this.objetivo + " pontos" + "\n");
sb.append("Numero de jogadores: " + this.quantosEmJogo + "\n");
for (int i = 0 ; i < this.quantosEmJogo ; i++){
sb.append(this.jogadores[i].toString() + "\n");
}
return sb.toString();
}
Note a forma como obtemos a representação dos vários jogadores registados no jogo – invocamos sobre cada um deles o seu próprio método toString
, definido na classe Jogador
.
Se acrescentarmos a seguinte instrução no método main
da classe ClienteDeJogo
:
xxxxxxxxxx
System.out.println(meuJogo.toString());
ela terá como efeito a escrita das seguintes linhas no standard output:
xxxxxxxxxx
Objetivo do jogo: 30 pontos
Numero de jogadores: 2
Nome: Maria Pontuacao: 30 Maximo numa jogada: 10
Nome: Pedro Pontuacao: 18 Maximo numa jogada: 8
Repare que as duas últimas linhas são exatemente o que se obtém ao invocar o método toString
da classe Jogador
sobre cada um dos jogadores do jogo.
Anterior: 11.5. Atributos e métodos de classe (static)
Seguinte: 11.7. Fim de jogo, vencedores e outros métodos