Olá, eu estou tendo uma dúvida em relação a um exercício que estou fazendo, o principal problema é o array que não está deixando eu pegar um atributo específico do objeto dentro dele. Já tentei várias formas mas só consegui obter sucesso com o toString(), e eu queria saber o por que que só com o toString() funciona e os gets dos atributos não? Muito obrigado a quem responder, segue os códigos:
Classe Principal:
package desafioestacionamento;
import java.util.ArrayList;
public class DesafioEstacionamento {
public static void main(String[] args) {
Estacionamento est = new Estacionamento("Seu Zé");
Carro car = new Carro("Gabriel","Vermelho","GRAEF",200);
Carro car2 = new Carro("Amanda","Rosa","AMAN23",600);
est.estacionarCarro(car);
est.estacionarCarro(car2);
est.infoEst();
}
}
Classe Carro:
package desafioestacionamento;
public class Carro {
private String cor, placa;
private int veloMax;
private String dono;
public Carro(String dono,String cor,String placa,int veloMax){
this.setCor(cor);
this.setPlaca(placa);
this.setVeloMax(veloMax);
this.setDono(dono);
}
public void info(){
System.out.println("Placa: "+this.getPlaca());
System.out.println("Cor: "+this.getCor());
System.out.println("Velocidade Máxima: "+this.getVeloMax());
}
public String getCor() {
return cor;
}
public void setCor(String cor) {
this.cor = cor;
}
public String getPlaca() {
return placa;
}
public void setPlaca(String placa) {
this.placa = placa;
}
public int getVeloMax() {
return veloMax;
}
public void setVeloMax(int veloMax) {
this.veloMax = veloMax;
}
public String getDono() {
return dono;
}
public void setDono(String dono) {
this.dono = dono;
}
@Override
public String toString() {
return "Carro{" + "cor=" + cor + ", placa=" + placa + ", veloMax=" + veloMax + ", dono=" + dono + '}';
}
}
Classe Estacionamento:
package desafioestacionamento;
import java.util.ArrayList;
public class Estacionamento{
private String nome;
private Carro car;
private ArrayList listaEst;
public Estacionamento(String nome){
ArrayList <Carro> a = new ArrayList<>();
this.setNome(nome);
this.setListaEst(a);
}
public void estacionarCarro(Carro carro){
this.getListaEst().add(carro);
System.out.println("Carro da placa "+carro.getPlaca()+" adicionado com sucesso!");
}
public void infoEst(){
System.out.println("----Estacionamento "+this.getNome()+"----");
for(int i=0;i<this.getListaEst().size();i++){
System.out.println("Carro do(a) "+this.getListaEst().get(i).toString());
}
}
public Carro getCar() {
return car;
}
public void setCar(Carro car) {
this.car = car;
}
public ArrayList getListaEst() {
return listaEst;
}
public void setListaEst(ArrayList listaEst) {
this.listaEst = listaEst;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
Método que eu queria imprimir o atributo específico:
public void infoEst(){
System.out.println("----Estacionamento "+this.getNome()+"----");
for(int i=0;i<this.getListaEst().size();i++){
System.out.println("Carro do(a) "+this.getListaEst().get(i).toString());
}
}
É isso… Me desculpem se ta meio errado os códigos, é porque eu não consegui mexer muito bem na ferramenta do site kk. Agradeço desde ja.