Jogador
completa
xpublic class Jogador {
private String nome;
private int pontuacao;
private int maximoJogada;
/**
* Inicializa os atributos de uma nova instancia
* @param nomeJog O nome do novo jogador
* @requires nomeJog != null.
*/
public Jogador (String nomeJog) {
this.nome = nomeJog;
this.pontuacao = 0;
this.maximoJogada = 0;
}
/**
* Inicializa os atributos de uma nova instancia
* @param nomeJog O nome do novo jogador
* @param pontos A pontuacao do novo jogador
* @param max O numero maximo de pontos ganho numa soh jogada
* @requires nomeJog != null && pontos >= 0 && max >= 0 && pontos >= max
*/
public Jogador (String nomeJog, int pontos, int max) {
this.nome = nomeJog;
this.pontuacao = pontos;
this.maximoJogada = max;
}
/**
* O nome deste jogador
*/
public String nome () {
return this.nome;
}
/**
* A pontuacao deste jogador
*/
public int pontuacao () {
return this.pontuacao;
}
/**
* O numero maximo de pontos que este jogador ganhou numa
* soh jogada
*/
public int maximoNumaJogada () {
return this.maximoJogada;
}
/**
* Registar uma nova pontuacao para este jogador
* @param pontos Os pontos a acumular ah pontuacao deste jogador
* @requires pontos >= 0
*/
public void registarPontos (int pontos) {
this.pontuacao += pontos;
if (pontos > this.maximoJogada) {
this.maximoJogada = pontos;
}
}
/**
* Representacao textual deste jogador
*/
public String toString () {
StringBuilder sb = new StringBuilder();
sb.append("Nome: " + this.nome);
sb.append(" Pontuacao: " + this.pontuacao);
sb.append(" Maximo numa jogada: " + this.maximoJogada);
return sb.toString();
}
/**
* Este jogador eh igual a outro?
* @param outro O outro jogador
* @return true se os atributos deste jogador sao iguais aos do outro
* @requires outro != null.
*/
public boolean igualJogador (Jogador outro) {
boolean iguais = this.nome().equals(outro.nome()) &&
this.pontuacao() == outro.pontuacao() &&
this.maximoNumaJogada() == outro.maximoNumaJogada();
return iguais;
}
/**
* Uma copia deste jogador
* @return Um novo jogador que eh uma copia deste jogador
*/
public Jogador copia () {
return new Jogador(this.nome, this.pontuacao, this.maximoJogada);
}
}
Anterior: 10.8. Agora SIM! – Imprimir, duplicar e comparar objetos
Seguinte: 11. Um novo tipo de dados, cliente de Jogador