Arrays globais?

6 respostas
R

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?

6 Respostas

F

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.

T

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!

A

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!

J

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;
F

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…

R

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.

Criado 20 de julho de 2005
Ultima resposta 21 de jul. de 2005
Respostas 6
Participantes 5