Arrays globais?

Dessa vez me pegaram de jeito.
Seguinte, teu um colega meu de faculdade que precisa de um help no Java. Ele tem que fazer um sisteminha de compra e venda, com cadastro de vendedores e produtos, cada um em uma classe.

Um dos trechos do trabalho é esse aqui:

Como é que eu faço pra uma matriz ser vista por todas as classes? Tipo, eu criar uma matriz com todos os fornecedores e ela poder ser manipulada na tela de cadastro de fornecedores (inclusão de registros) e popular uma combobox na tela de pedidos de compra?

Admito que não faço idéia de como se faz isso. Algém tem alguma dica?

Você deve criar uma classe de armaenamento (uma espécie de javabean) e definir um array como atributo. Apartir daí é só importar essa classe em todas as classe que você quiser.

Não esqueça de definir esse atributo como static.

Té mais.

kra…
vc não tem como simplesmente querer pegar a referência de um objeto que tah na heap…

Mas uma solução pra isso é simples…

Vc pode criar esse seu array na classe principal. Daí em diante, vc tem 2 opções:

  • Passa uma referência do array para a outra classe ;
  • Passa uma referência da própria classe (que tem o array) pra as outras classes;

Como vc vai fazer isso vai de vc…

vlw? Sucesso ae!

Cara, tranquilo!!!
No metodo main
public static void main
Vc vai declarar os objetos e os vetores de objetos!
Ai vc faz o programa normal!
Seria bom usar um Vector para nao ter que limitar o numero de objetos dentro do vetor!

Tenho essas sugestões:

public class Dados{
   public static Object[] vendedores = new Object[100];
   public static Object[] produtos = new Object[100];
}

onde você quiser acessar os dados você faz:

Dados.vendedores;
Dados.produtos;

ou um pouco mais sofisticado:

public class Dados{
   public Object[] vendedores = new Object[100];
   public Object[] produtos = new Object[100]
   private static Dados instancia;

   private Dados(){
   }

   public static Dados getInstance(){
      if(instancia==null){
         instancia = new Dados();
      }
      return instancia;
   }
}

onde você quiser acessar você faz:

Dados.getInstance().vendedores;
Dados.getInstance().produtos;

Eu ainda fico com idéia de criar esse array em uma classe separada… assim você pode ter métodos de inserção, edição, exclusão… como num DB…

O ideal seria usar uma das classes do pacote java.util , porém o trabalho pede que sejam um array e tem uns professores que são chatos e que não aceitam alterações. Sei lá…

Veja como você quer fazer…

Funcionou só usando o static mesmo dentro da classe :slight_smile:

Tive que alterar a estrutura do programa, me bati um pouco mas já está funcionando. Valeu galera.