[JAVA] Vectors

pdrnvs

Power Member
O meu problema é, tendo uma class, quero criar um objecto e guardar-lo num vector, para futuramente adicionar mais objectos ao vector.
Como é que ponho o objecto no vector?

Class:
Código:
import javax.swing.JOptionPane;

public class Cliente {
    protected String nome;
    protected int idade;

    public Cliente(){
        nome=JOptionPane.showInputDialog("Nome?");
        idade=Integer.parseInt(JOptionPane.showInputDialog("Idade?"));
    }
    
    public String getNome(){
        return nome;
    }
    public int getIdade(){
        return idade;
    }
    
}
Programa:
Código:
import java.util.Vector;

public class Programa{
  public static void main(String[] args){
    
      Vector<Object> vector = new Vector<Object>();
       
      Cliente ObjectoCliente=new Cliente();
      
      
      System.out.println(ObjectoCliente.getNome());
      System.out.println(ObjectoCliente.getIdade());

      vector.add(ObjectoCliente); //É assim??
      
      vector.elementAt(0);
  }
}
 
Sim, por exemplo. No entanto, se os objectos forem sempre do tipo Cliente, podes declarar o vector como Vector<Cliente>.

Já agora, não mistures código de interface com o código das tuas classes de domínio.
 
So mais uma duvida,

Se eu tiver o superclass Jogador, e como subclass Cliente e Funcionario, como é que eu consigo ler os valores que estao na subclass Cliente apartir de um vector?

Tipo isto,

System.out.println((Cliente) vector.elementAt(0).nome);

Como é que vou buscar os elementos da subclass?


Obrigado
 
Última edição:
Supondo que cada uma das subclasses tem definido ou tem acesso ao método getNome() (não se deve aceder directamente às variáveis de instância de uma classe), basta fazer vector.elementAt(0).getNome().
 
Mas se eu usar
vector.elementAt(0).getNome();
nao consigo, tem de ser
((Cliente) vector.elementAt(0)).getNome();
ou
((Funcionario) vector.elementAt(0)).getNome();

Nao existe outra forma?
Obrigado
 
Código:
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Vector<Jogador> v = new Vector<Jogador>();
        v.add(new Cliente("Pedro"));
        v.add(new Funcionario("Joao"));
        for (Jogador d : v)
            System.out.println(d.getNome());
        }
    }
Assim funciona. Que erro é que te dá?
 
Back
Topo