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....