Imprimir valores de outra classe em um ArrayList

1. Imprimir valores de outra classe em um ArrayList

Tk Oliveira
IsaOliveira

(usa Ubuntu)

Enviado em 04/06/2017 - 21:46h

Boa noite, galera.

Estou fazendo um trabalho de faculdade e tenho uma classe Carro e Moto que herdam os atributos (nome, valor e hora) de Veículo e tenho uma classe Estacionamento com um ArrayList. Preciso adicionar veículos no ArrayList e depois imprimir os valores que estão nos atributos de cada veículo.

Ex: Veiculo 1: Nome Carro, Valor 50, Hora 3
Veiculo 2: Nome Moto, Valor 15, Hora 4

No meu código quando vou imprimir aparece alguns caracteres estranhos, se alguém pudesse me ajudar. Já procurei várias coisas na internet, mas nenhum delas deu certo.

Link do código: https://goo.gl/NocSwG

Desde já agradeço. =)





  


2. Re: Imprimir valores de outra classe em um ArrayList

hatachi
hatachi

(usa Debian)

Enviado em 05/06/2017 - 01:01h

Então, seu código tem alguns problemas...

Primeiramente os caracteres estranhos são pq vc está imprimindo na tela o objeto Carro que vc criou e adicionou no ArrayList.
Vc criou um Veiculo Veiculo veiculo = new Veiculo();. Em seguida, como a hora desse veiculo por default é 0, vc acessou o primeiro elemento do ArrayList e o imprimiu. listaVeiculo.get((int) veiculo.getHora()). Para exibir os dados desse objeto através desse maneira pesquise como sobrescrever o método toString().

Quando vc for imprimir a ordem dos veículos precisa colocar o i+1 entre parênteses, dessa forma será feito primeiro a adição e então a concatenação:

System.out.println("Veiculo " + (i+1)); 


Vc também não entendeu muito bem os conceitos de herança. Nas classes Carro e Moto, os atributos valor, nome e hora são herdados da classe Veículo. Vc não precisa declara-los novamente.
Sua classe Carro poderia ficar apenas com o método contrutor chamando os métodos set herdados da classe Veículo. Essa é uma maneira de alterar os estados dos objetos para o exemplo que você montou.


public Carro() {
setNome("Carro");
setHora(3);
setValor(50);
}


Em seguida na hora de vc exibir a hora do veículo, vc não está acessando os objetos e seus atributos devidamente.

System.out.println("Hora: " + listaVeiculo.get((int) veiculo.getHora())); 


Vc usa o método get do ArrayList para acessar uma posição (Veículo):

listaVeiculo.get(i) 


depois, vc acessa os atributos e métodos do objeto Veículo daquela posição com:

listaVeiculo.get(i).getHora() 


ficando assim:

System.out.println("Hora: " + listaVeiculo.get(i).getHora()); 


Dentro do for, vc pode declarar o tipo de i

for(int i = 0; condição; i++) { } 


Se quiser uma dica, busque estudar programação em casa com vídeo aulas e livros (tem bastante recomendações por ai), pq na faculdade programação é passado de forma muito superficial.
Bons estudos e continue praticando....






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts