Instancia global

3 respostas
A

Olá eu preciso criar uma instancia de uma classe que possa ser vista por outras duas classes, como posso fazer isso em Java?
Vou ilustrar o que estou fazendo, eu tenho a classe Livros que armazena um Array de livros e eu preciso que esses livros sejam vistos pelas Classes: Administrador e Usuário, mas os mesmos livros, como posso fazer isso?

Obrigado ai gente!

3 Respostas

eliangela

Eu sei que isso não é o mérito da questão, mas não seria uma classe Biblioteca que possui um array de livos?

Mas para resolver seu problema, vc deve criar um atributo List<Livro> estático:

public class Livro {

    private String isbn;
    private String autor;

    public String getAutor() {
        return autor;
    }

    public void setAutor(String autor) {
        this.autor = autor;
    }

    public String getIsbn() {
        return isbn;
    }

    public void setIsbn(String isbn) {
        this.isbn = isbn;
    }
}
import java.util.LinkedList;
import java.util.List;

public class Biblioteca {

    private static List&lt;Livro&gt; livros = new LinkedList&lt;Livro&gt;();

    public List&lt;Livro&gt; getLivros() {
        return livros;
    }

    public void setLivros(List&lt;Livro&gt; livros) {
        Biblioteca.livros = livros;
    }

    public void addLivro(Livro livro) {
        Biblioteca.livros.add(livro);
    }
}

espero ter ajudado

eliangela

atributos com o modificador static são inicializados junto com a máquina virtual e assim permanecem até que a máquina virtual seja finalizada.
Ou seja, o atributo static não tem seu valor reinicializado cada vez que é criada uma nova instância. Isso quer dizer que o atributo pertence à classe, e não à instância.

Atributo estático:
int i = Integer.MAX_VALUE;

Atributo não estático:

Classe suaInstanciaDaClasse = new Classe();

Object o = suaInstanciaDaClasse.seuAtributo;

Vale lembrar que não é aconselhável usar atributos públicos, mas somente privados (private) e alterá-los somente através de métodos.

Espero ter ajudado

pvrsouza

Realmente uma boa solução, já que a Biblioteca e, consequentemente, os Livros sempre serão os mesmos.

Criado 10 de março de 2010
Ultima resposta 10 de mar. de 2010
Respostas 3
Participantes 3