Ajuda com ARRAY

4 respostas
J

Gostaria de preencher o ARRAY nv1 com números de jogadores, por exemplo 2 jogadores, deveria preencher 3 "casas" com 1 ou 2.
O que está errado ?
Quando eu executo o imprimeCenario sai isso:
Casa@8542529 Casa@4c53ab04 Casa@900bac2 Casa@ee51b2c Casa@635aed57 Casa@66941db6

public class Jogo {
    private Casa[] nv1;

    public Jogo(int tamanho){
        this.nv1 = new Casa[tamanho];
        
        int quantJogador = tamanho/3;
        int sorteio = 0;
        
        nv1 = new Casa[tamanho];
        
        for(int i = 0; i < tamanho;i++){
            sorteio = 1 + (int)(Math.random() *quantJogador);
            nv1[i] = new Casa(sorteio, 1);          
        }      
             
    }
    
    public void imprimeCenario(){
        for(int i = 0; i < nv1.length; i++)
            System.out.print(nv1[i]+" ");
    }
}

4 Respostas

marcelocenerine

Olá,

Isso acontece pq vc está chamando o System.out.println direto na instância do objeto. Isso faz com que o método toString() do objeto seja invocado. Se sua classe Casa não sobrescreve esse método para imprimir as informações que você quer, ele vai chamar o toString() da classe Object que imprime o nome da classe + @ + hashcode.

J
marcelocenerine:
Olá,

Isso acontece pq vc está chamando o System.out.println direto na instância do objeto. Isso faz com que o método toString() do objeto seja invocado. Se sua classe Casa não sobrescreve esse método para imprimir as informações que você quer, ele vai chamar o toString() da classe Object que imprime o nome da classe + @ + hashcode.

public class Casa {
	private int id, nivel;
	
	public Casa(int id, int nivel) {
		this.id = id;
		this.nivel = nivel;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public int getNivel() {
		return nivel;
	}

	public void setNivel(int nivel) {
		this.nivel = nivel;
	}
	
}

Poderia me mostrar como seria, para no System sair um inteiro do random, e outro inteiro definido ?

jeffepalmares

cara se vc quer imprimir o valor do sorteio seu system tem q ta assim:

System.out.print(nv1[i].getId()+" ");

no seu vetor vc tem instancias do objeto Casa daí vc terá que chamar o get do atributo que vc tá querendo imprimir.

J

jeffepalmares:
cara se vc quer imprimir o valor do sorteio seu system tem q ta assim:

System.out.print(nv1[i].getId()+" ");

no seu vetor vc tem instancias do objeto Casa daí vc terá que chamar o get do atributo que vc tá querendo imprimir.

Pow vlw, coisa besta sempre esqueço que array é um objeto… Obrigado !

Criado 29 de novembro de 2011
Ultima resposta 29 de nov. de 2011
Respostas 4
Participantes 3