Deu branco em mim! criação de objetos estaticos

2 respostas
arthurminarini

pessoal é o seguinte deixa eu perguntar uma coisa pq deu um branco em mim aqui heheh.
veja esse codigo

public class TPessoaDAO extends GenericHibernateDAO<TPessoa, ChaveCompostaTPessoa> {

    private static TPartesDAO dao = null;

    public TMovRelacDAO() {
        dao = new TPartesDAO();
    }

quando eu dou um new em um objeto statico ele cria outro ou mantem o da classe mesmo?

2 Respostas

pablosaraiva

Ele cria um novo.

Acontece que tudo o que for static não pertence ao objeto e sim à classe.

Ou seja, se você tem um atributo estático, ele é compartilhado por todos os objetos, por fazer parte da classe e não de uma instância.

WendersonLP

Um exemplo bem simples de objetos estático segue:

public class Test {

     private static int countObjects = 0;

     public Test() {
         countObjects++;
     }

     public void displayMessage() {
          System.out.println("This is the " + countObjects + " object created.");
     }

     public static void main(String[] args) {
           Test test1 = new Test();
           Test test2 = new Test();
           Test test3 = new Test();
           Test test4 = new Test();

           test1.displayMessage();
           test2.displayMessage();
           test3.displayMessage();
           test4.displayMessage();
     }
}

Teste isso aí!

Criado 10 de dezembro de 2009
Ultima resposta 10 de dez. de 2009
Respostas 2
Participantes 3