Foro de elhacker.net

Programación => Java => Mensaje iniciado por: manuhendrix en 29 Agosto 2012, 23:57 pm



Título: Ayuda Con error en programa
Publicado por: manuhendrix en 29 Agosto 2012, 23:57 pm
Hola, es la primera vez que publico en el foro asi que no estoy seguro si es en esta sección donde se publica o si lo que les voy a preguntar va contra las reglas, si no cumplo algo borren el tema, no hay problema.
Mi duda es esta. Estoy empezando a programar en Java, y tengo que hacer un Cubilete de Dados. El cubilete tiene que almacenar los dados y tirarlos. Cree dos clases, una clase Dado cuyo codigo es:

public class Dado {
    private int caras;
    private int valor;

    public Dado(int caras){

        this.caras = caras;

    }

    public int tirarDado(){

        valor = (int)((Math.random()*(caras-1)+1));
        return valor;

    }
}


y aca la clase Cubilete que hice usando ArrayList:


import java.util.ArrayList;

public class Cubilete {
          private ArrayList<Dado> dados = new ArrayList<Dado>();


    public Cubilete (int cantDeDados, int cantDeCaras) {

        for(int i = 0; i<cantDeDados;i++){
            dados.add(new Dado(cantDeCaras));
            }
    }

    public void cantidadDados(){

        int cantDados = dados.size();

        System.out.println(cantDados);
    }

    public void tirarDados(){
        for (int i = 0; i < dados.size(); i++) {
            System.out.println(dados.get(i));
        }
    }
}

Este programa compila, pero cuando compila me devuelve esto

Dado@21b6d
Dado@56a499
Dado@506411

la cantidad de veces como dados que le ponga al Arraylist. Queria saber porque sucede esto, y si se puede solucionar :) gracias!


Título: Re: Ayuda Con error en programa
Publicado por: xmbeat en 30 Agosto 2012, 03:37 am
Lo que pasa es que necesitas sobrescribir el metodo toString() o llamar al metodo  tiraDado()
System.out.println(dados.get(i).tiraDado());


Título: Re: Ayuda Con error en programa
Publicado por: manuhendrix en 31 Agosto 2012, 02:34 am
Ya lo solucione, lo que hice fue esto

for(Dado dado: dados) {
                int valorDado = dado.tirarDado();
                ValorDado2 = valorDado;
            }
              return ValorDado2;

saludos