Você está na página 1de 3

Pergunta/Tarefa:

Os dados so pequenos poliedros gravados com determinadas instrues. O


dado mais clssico o cubo (seis faces), gravado com nmeros de um a seis.
Para este exerccio voc dever criar uma classe Dado para representar um dado
e que nos permitir rol-lo e tirar valores que variaro de 1 a 6, ou seja, um
dado de seis lados. A classe dever conter os seguintes campos de dados e
mtodos:
a) Um campo de dados constante privado do tipo int que define quantas faces o
dado possui. O valor desta constante dever ser 6.
b) Um campo de dados privado do tipo int chamado valorFace que guardar o
valor atual da face do dado.
c) Um construtor sem argumentos que cria um novo objeto da classe Dado e
define o valor da varivel valorFace como 1.
d) Mtodos get() e set() para a varivel privada valorFace. O mtodo set() deve
garantir que o valor fornecido como argumento esteja dentro da faixa esperada.
Se o valor for invlido, exiba uma mensagem "Valor invlido para a face do
dado".
e) Um mtodo rolar() que vai "rolar" o dado e guardar o resultado na varivel
valorFace. O valor sorteado dever estar na faixa de 1 at a quantidade de faces
do dado.
f) Um mtodo chamado getQuantidadeFaces() que retorna um int representando
a quantidade de faces do dado.
Crie um mtodo main() para testar a classe Dado. Sua sada dever ser algo
parecido com:

Resposta/Soluo:
Veja a resoluo comentada deste exerccio usando Java console:
Dado.java:

package estudos;
public class Dado{
private final int FACES = 6; // quantidade de faces
private int valorFace; // valor atual da face virada para cima
// construtor padro que define o valor inicial da face como 1
public Dado(){
valorFace = 1;
}
// permite rolar o dado
public void rolar(){
this.valorFace = (int)(Math.random() * FACES) + 1;
}
// permite obter o valor da face do dado
public int getValorFace(){
return valorFace;
}
// permite definir o valor da face do dado
// CUIDADO. Este valor dever estar entre 1 e o nmero mximo de faces
public void setValorFace(int valorFace){
if((valorFace > 0) && (valorFace <= FACES)){
this.valorFace = valorFace;
}
else{
System.out.println("Valor invlido para a face do dado");
}
}

// retorna a quantidade de faces do dado


public int getQuantidadeFaces(){
return this.FACES;
}

Veja agora o mtodo main() que nos permite testar a funcionalidade da classe
Dado:
package estudos;
public class Estudos {
public static void main(String[] args) {
// vamos criar um novo objeto da classe Dado
Dado d = new Dado();
// vamos rolar o dado e obter o valor tirado
System.out.println("Primeira rodada");
d.rolar();
System.out.println("Valor tirado: " + d.getValorFace());
// vamos rolar o dado mais uma vez
System.out.println("Segunda rodada");
d.rolar();

System.out.println("Valor tirado: " + d.getValorFace());


// vamos tentar definir um valor invlido para a face de um
// dado de seis faces
d.setValorFace(7);
}

Você também pode gostar