Dificuldade de copilar exercicio

8 respostas
charles.eduardo

Estava estudando a apostila CS-14: Algoritmos e Estruturas de Dados com Java
no capitulo sobre lista tinha como exemplo duas classes a: Aluno e Vetor
Para fazermos os teste seriam criadas outras classes testes para cada metodo, seguindo o script da apostila
crie a classe TesteAdicionaNoFim que possui o metodo main, tudo sem erro até entao.
Qndo rodei a classe teste (estava usando netbeans) deu uma mensagem concluido c/ sucesso,porem a saida, nao foi como esperado,
apareceu o nome do pacote em que estavam as classes citadas acima com alguns caracteres diferentes.

Alguem poderia me auxiliar nessa?
Obrigado

8 Respostas

nel

Boa tarde.

Sem o código fica muito compicado de ajudarmos você nesse caso. Poste o seu código ok? Não esqueça de usar as tags "[code]" para postar seu código.

Abraços.

charles.eduardo

[quote=nel]Boa tarde.

Sem o código fica muito compicado de ajudarmos você nesse caso. Poste o seu código ok? Não esqueça de usar as tags “[code”]" para postar seu código.
Abraços.

Obrigado…

public class Aluno { private String nome; public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String toString() { return this.nome; } public boolean equals(Object o) { Aluno outro = (Aluno)o; return this.nome.equals(outro.nome); } }

obs.: a classe vetor original tem mais metodos porem para facilitar a visualizaçao coloquei somente do primeiro metodo testado…

public class Vetor { private Aluno[] alunos = new Aluno[100]; public void adiciona(Aluno aluno) { for (int i = 0; i < this.alunos.length; i++) { if (this.alunos[i] == null) { this.alunos[i] = aluno; break; } } } }

public class TesteAdicionaNoFim { public static void main(String[] args) { Aluno a1 = new Aluno(); Aluno a2 = new Aluno(); a1.setNome("Rafael"); a2.setNome("Paulo"); Vetor lista = new Vetor(); lista.adiciona(a1); lista.adiciona(a2); System.out.println(lista); } }

nel

Você está mandando imprimir o valor da sua variavél de instancia, por isso a saída indesejavél.
Mas lógico, o que você gostaria de imprimir?

Abraços.

charles.eduardo

nel:
Você está mandando imprimir o valor da sua variavél de instancia, por isso a saída indesejavél.
Mas lógico, o que você gostaria de imprimir?

Abraços.

Conforme o exemplo da pedido na apostila, seria imprimir Rafael Paulo.

Este é o codigo da apostila

nel

Ficou um pouco confuso, não seria lista.outroMétodo() dentro do System.out.println() ?

HI7M4N

Bom, Sou meio novato em Java mas, pelo que eu entendi do seu código é isso mesmo que o nel disse, lista é só uma instância. O correto seria lista.outroMétodo() ou Lista.aluno[a posição no vetor] dentro do System.out.println().

Ta meio confuso mesmo esse código, posta ele completo pra gente ter uma idéia melhor.

G
System.out.println(lista);

Você está tentando imprimir a instância lista, que é um tipo Vetor.

E o que acontece ? Ele chama implicitamente o método toString() do Vetor.
Ou seja, você precisa programar esse método pra fazer o que você deseja( no caso,
para imprimir a saída dos elementos( ex: Rafael e Paulo ).

Então, você precisa sobreescrever esse método lá na tua classe Vetor, para mostrar
todos os elementos dessa lista.

Algo como :

.
.       // isso na classe Vetor..
.
public String toString()       
{
 StringBuilder builder = new StringBuilder();
		builder.append( "[" );
		
		for( int i = 0; i < totalDeObjetos - 1; i++ )      // totalDeObjetos ou alguma variavel/metodo que vc use para saber qtos elementos possue
		{
			builder.append( this.objetos[i] );           // aqui ele adiciona todos os elementos até o penúltimo, na StringBuilder
			builder.append( ", " );
		}
		
		builder.append( objetos[ totalDeObjetos - 1] );  // adiciona o ultimo elemento
		builder.append( "]" );
		
		return builder.toString();         // e retorna o StringBuilder como uma String
}

Acredito que isso resolva o problema. :slight_smile:
Espero ter ajudado,
Falou’s

charles.eduardo

Obrigado por aqueles que responderam, tentarem ao inves de testar apenas o metodo, concluir todo o codigo p/ ver se ira rodar!!!
valeu!!!

Criado 20 de novembro de 2009
Ultima resposta 21 de nov. de 2009
Respostas 8
Participantes 4