Relacionamento

Boa noite, eu tenho esse metodo aqui e no “for” tento fazer a chamada de peca por peca mas quando ele e rodado o resultado é a localização de memoria do getPecas().Como eu faço para fazer a chamada de peca por peca?

public static void imprimirReparos(ArrayList consertos){

System.out.println("AUTOMECÂNICA DO MANOEL");
System.out.println("========================================");
System.out.println("PEÇAS UTILIZADAS: ");
System.out.println("========================================");
for (Conserto c : consertos) {
    System.out.println(c.getPecas()); 
}
System.out.println("========================================");
System.out.println("");
System.out.println("=== -PREÇO DO SERVIÇO- ===");
System.out.println("Valor do Reparo: " + c.maoDeObra());

}

Olá Cleyton.
Tente modificar o parâmetro do método para receber:
Arraylist<Conserto> consertos
, ao invés de apenas:
ArrayList consertos.

Não dar certo aparece erro em uma linha se eu faço essa troca

Poste o erro, se for possível.
Ou poste o código completo da classe Conserto.

import java.util.ArrayList;
public class Conserto
{
    
    private ArrayList<Peca> pecas;
    private Veiculo veiculo;
    
    public Conserto(ArrayList<Peca> pecas, Veiculo veiculo) {
        this.pecas = pecas;
        this.veiculo = veiculo;
        pecas = new ArrayList<>();
    }
    
    public Conserto(){
        pecas = new ArrayList<>();
    }
    
    public ArrayList<Peca> getPecas() {
        return pecas;
    }

    public void addPecas(Peca peca) {
        this.pecas.add(peca);
    }

    public Veiculo getVeiculo() {
        return veiculo;
    }

    public void setVeiculo(Veiculo veiculo) {
        this.veiculo = veiculo;
    }
    
    public double precoPeca(ArrayList<Peca>pecas){
    double total = 0;
    
    for (Peca peca : pecas) {
       total += peca.getPreco();
    }
    
    return total;
    }
    
    public double maoDeObra(){
        return 1.3777*nPecasUsadas(pecas)*precoPeca(pecas);
    }
        
    public int nPecasUsadas(ArrayList<Peca> pecas){
        int cont = 0;
        for (Peca peca : pecas) {
            cont++;
        }
            return cont;
    }    
}

Conseguir fazer aqui cara Brigadão pela a atenção :smile:

Ficou assim:

public static void imprimirReparos(ArrayList<Conserto> consertos){
    
    System.out.println("AUTOMECÂNICA DO MANOEL");
    System.out.println("========================================");
    System.out.println("PEÇAS UTILIZADAS: ");
    System.out.println("========================================");
    for (Conserto c : consertos) {
        imprimirPecas(c.getPecas());
    }
    System.out.println("========================================");
    System.out.println("");
    System.out.println("=== -PREÇO DO SERVIÇO- ===");
    System.out.println("Valor do Reparo: " + c.maoDeObra());
}

public static void imprimirPecas(ArrayList<Peca> pecas){
       for(Peca peca: pecas){
            System.out.println(peca.getId() + ") Nome: " + peca.getNome() 
                    + " Preço: " + peca.getPreco());
        }
    }