Ajudem... Classes

Ha um erro na ArrayList que eu nao sei o pork que esta a me aparecer… Me ajudem a descobrir.


public class Paises {
    private int id_pais;
    private String nomePais;
    private String equipa;
    private int id_atleta;
    private int quanti_medalha;

    public Paises(int id_pais, String nomePais, String equipa, int id_atleta, int quanti_medalha) {
        this.id_pais = id_pais;
        this.nomePais = nomePais;
        this.equipa = equipa;
        this.id_atleta = id_atleta;
        this.quanti_medalha = quanti_medalha;
    }

    public void setEquipa(String equipa) {
        this.equipa = equipa;
    }
    public void setQuanti_medalha(int quanti_medalha) {
        this.quanti_medalha = quanti_medalha;
    }

    public void setId_atleta(int id_atleta) {
        this.id_atleta = id_atleta;
    }

    public void setId_pais(int id_pais) {
        this.id_pais = id_pais;
    }

    public void setNomePais(String nomePais) {
        this.nomePais = nomePais;
    }

    public String getEquipa() {
        return equipa;
    }

    public int getQuanti_medalha() {
        return quanti_medalha;
    }

    public int getId_atleta() {
        return id_atleta;
    }

    public int getId_pais() {
        return id_pais;
    }

    public String getNomePais() {
        return nomePais;
    }

    @Override
    public String toString() {
        return "Paises{" + "id_pais=" + id_pais + ", nomePais=" + nomePais + ", equipa=" + equipa + ", id_atleta=" + id_atleta + ", quanti_medalha=" + quanti_medalha + '}';
    }
    
}

package Jogos;

import java.util.ArrayList;


public class Jogos{

    public static void main(String[] args) {

   ArrayList<Paises> lista_paises = new ArrayList<Paises>();  
       Paises p=new Paises();
       p.setId_pais(1);
       p.setNomePais("Portugal");
       p.setId_atleta(000001);
       p.setEquipa(null);
       p.setQuanti_medalha(1);
       
       Paises p=new Paises();
       p.setId_pais(1);
       p.setNomePais("Angola");
       p.setId_atleta(000002);
       p.setEquipa(null);
       p.setQuanti_medalha(3);
       
       Paises p=new Paises();
       p.setId_pais(1);
       p.setNomePais("São Tomé");
       p.setId_atleta(000003);
       p.setEquipa(null);
       p.setQuanti_medalha(10);
       
       Paises p=new Paises();
       p.setId_pais(1);
       p.setNomePais("Brasil");
       p.setId_atleta(000004);
       p.setEquipa(null);
       p.setQuanti_medalha(1);
       
       Paises p=new Paises();
       p.setId_pais(1);
       p.setNomePais("Espanha");
       p.setId_atleta(000001);
       p.setEquipa(null);
       p.setQuanti_medalha(5);
       
       Paises p=new Paises();
       p.setId_pais(1);
       p.setNomePais("Cabo Verde");
       p.setId_atleta(000005);
       p.setEquipa(null);
       p.setQuanti_medalha(4);
       
       Paises p=new Paises();
       p.setId_pais(1);
       p.setNomePais("Timor Leste");
       p.setId_atleta(000006);
       p.setEquipa(null);
       p.setQuanti_medalha(0);
       
       Paises p=new Paises();
       p.setId_pais(1);
       p.setNomePais("Camerões");
       p.setId_atleta(000007);
       p.setEquipa(null);
       p.setQuanti_medalha(1);
       
       Paises p=new Paises();
       p.setId_pais(1);
       p.setNomePais("Perú");
       p.setId_atleta(00004);
       p.setEquipa(null);
       p.setQuanti_medalha(1);
       
       Paises p=new Paises();
       p.setId_pais(1);
       p.setNomePais("EUA");
       p.setId_atleta(000034);
       p.setEquipa(null);
       p.setQuanti_medalha(2);
       
       System.out.println("id:" + lista_paises.size());
       
    } 
  }

Que erro? Poste aí a stacktrace

e vai uma dica, crie tópicos com títulos descritivos. “Problema com ArrayList” seria muito mais descritivo do que o título que você escolheu.

Tem um erro na arralist… nao sei pork?

que erro?

A única coisa que eu percebi é que você está instanciando a variavel p várias vezes sempre perdendo o valor anterior, e não está adicionando nada à sua lista.

Acho que o erro está na sua declaração de Paises p;

vc faz isto: Paises p=new Paises();

porém não tem um construtor default na classe Paises, gere um construtor sem parametros.

segundo seu arrayList vai imprimir 0 pois vc nunca adiciona os paises dentro, ex: listapasises.add(p1), listapasises.add(p2) etc…

terceiro a variavel que referencia um Pais ‘p’ esta repitida para todos, isto nem compila, o bom é que cada referência deve ser unica neste contexto.

Hum… ya tou a ver… e como é que eu crio um construtor default na calsse Paises?

na classe Paises:

public Paises() {
}

Mas eu acho que ja fiz isso… na classe paises


public Paises(int id_pais, String nomePais, String equipa, int id_atleta, int quanti_medalha) {   
        this.id_pais = id_pais;   
        this.nomePais = nomePais;   
        this.equipa = equipa;   
        this.id_atleta = id_atleta;   
        this.quanti_medalha = quanti_medalha;  

cara, aconselho estudar Java, desde quando isto é um construtor default ? bye

otniel quando você não declara o construtor padrão é assumido como padrão um construtor vazio. Na sua classe você sobrescreveu construtor padrão, logo quando esta classe é instanciada vai exigir que seja atribuido todos os parametros discriminados no cosntrutor.

Para solucionar o seu problema voce precisa adicionar um construtor vazio na classe Pais como o aix mencionou.

Abraço e bons estudos!

Obrigado ai pessoal…