Opa pessoal, comecei a ter aulas de java nesse semestre e ainda tô capengando, preciso de uma ajudinha.
Não consigo rodar esse programa.
O objetivo é mostrar o nome no vetor[0] e latir.
lgi2020, sua maneira tá rodando mas o nome vem um monte de letras e numeros, talvez relacionado com a posição da memória. Da próxima posto o codigo na tag, nem sabia que existia isso
paulovloghan, dessa forma continua dando erro de NullPointerException.
Andre_Fonseca
Tenta assim
publicstaticvoidmain(Stringargs[]){// cria um vetor de dogsDog[]dogs=newDog[3];// cria objetos dogDogdog1=newDog();dog1.name="Asterix";Dogdog2=newDog();dog2.name="Toto";Dogdog3=newDog();dog3.name="Jim";// atribui para os elementos do vetor os objetos criadosdogs[0]=dog1;dogs[1]=dog2;dogs[2]=dog3;for(inti=0;i<dogs.length;i++){System.out.print("o cachorro:"+dogs[i].name+" faz");dogs[i].bark();System.out.println();}}
>
lgi2020
hmoleman:
lgi2020, sua maneira tá rodando mas o nome vem um monte de letras e numeros, talvez relacionado com a posição da memória. Da próxima posto o codigo na tag, nem sabia que existia isso
paulovloghan, dessa forma continua dando erro de NullPointerException.
Desculpa, fiz com pressa e nem reparei nas últimas linhas.
O que acontece é que a linha a seguir chama o método toString() da sua classe:
System.out.println(vetor[0]);
Como você não sobrescreveu este método, ele imprime este “monte de letras e números”.
Substitua esta linha por
System.out.println(vetor[0].name);
para imprimir o nome do Dog na posição 0 do vetor.
H
hmoleman
Primeiramente obrigado à todos, o programa rodou tranquilo. São formas diferentes de resolver o mesmo problema.
Como vc comentariam essas linhas:
vetor[0] = new Dog();
vetor[1] = new Dog();
vetor[2] = new Dog();
não tô entendendo muito bem essas referencias.
G
Gustavo_Jucoski
hmoleman:
Primeiramente obrigado à todos, o programa rodou tranquilo. São formas diferentes de resolver o mesmo problema.
Como vc comentariam essas linhas:
vetor[0] = new Dog();
vetor[1] = new Dog();
vetor[2] = new Dog();
não tô entendendo muito bem essas referencias.
Você criou um array do tipo Dog, mas não instanciou objetos para o mesmo. Por isso antes estava dando NullPointerException.
Ai no que você mostrou acima você está instanciando os objetos, depois de fazer isso você pode usar vetor[0].nome = “texto” sem problemas.