A Proximidade do Mundo
Vivemos em um mundo globalmente acessível, um mundo onde uma pessoa que vive em um lado da Terra é apenas um e-mail, mensagem instantânea ou telefonema de alguém do outro lado da Terra. Se queremos notícias sobre algo que acontece em qualquer lugar do mundo, bastam alguns cliques em um navegador da web. Muitos de nós crescemos com isso, então é uma segunda natureza. Mas como tudo isso funciona? E quanto disso realmente entendemos? Sabemos que há uma série de tecnologias envolvidas. Alguns, como computadores pessoais e telefones celulares, estão bem na nossa frente. O resto da tecnologia está nos bastidores, cuidando de seus negócios silenciosamente. Um deles é Java.
O que é Java?
Java é uma linguagem de programação de computador que existe em bilhões de dispositivos em todo o mundo e é suportada por milhões de desenvolvedores. Mas seu início foi mais humilde. Criado em 1991 pela Sun Microsystems, era originalmente chamado de OAK e era para tarefas de programação de propósito geral. Como resultado, ele se tornou parte de coisas como telefones celulares e tablets. Infelizmente, quando não foi tão bem-sucedido quanto o previsto, foi modificado em 1999 para aproveitar as vantagens da Internet. Ele acabou sendo comprado pela Oracle em 2009, onde continua até hoje.
O que é um objeto em Java?
Um objeto em Java é a manifestação física de uma classe. Ele ocupa memória e possui membros de dados aos quais podem ser atribuídos valores. Se você pensar sobre isso, vemos muitos relacionamentos classe-objeto no mundo real. Por exemplo, considere o projeto de uma casa. Isso é o equivalente a uma classe, um modelo que descreve como uma casa desse tipo seria construída. Um objeto é toda casa construída de acordo com o projeto. Da perspectiva de Java, uma classe é representada pelas declarações de classe que vemos no código. Um objeto é qualquer variável que pode ser declarada com o tipo de classe especificado.
O que é uma instância em Java?
Uma instância em Java é muito parecida com um objeto. É uma manifestação física, ocupa memória e possui membros de dados aos quais podem ser atribuídos valores. O exemplo do blueprint também se aplica. O projeto é o equivalente a uma classe, um modelo que descreve como a casa deve ser construída. Uma instância é uma casa particular construída de acordo com o projeto. Da perspectiva da linguagem Java, uma instância é qualquer variável que pode ser declarada com o tipo de classe especificado e valores específicos atribuídos aos membros de dados.
Como esses dois diferem?
Com base nas explicações das duas seções anteriores, seria fácil pensar que objetos e instâncias são as mesmas coisas. E, na verdade, eles são freqüentemente usados de forma intercambiável. Mas tome cuidado com isso! A diferença é sutil. Um objeto representa TODAS as representações físicas que podem existir de uma classe, ou seja, o conjunto de representações. Uma instância é uma representação física particular. Por exemplo, considere a analogia da casa vista de cima. Um objeto seria toda casa vermelha, azul, verde, cinza ou qualquer outra cor que possa ser construída a partir do projeto. Uma instância seria uma casa vermelha específica.
Resumo da lição
Para recapitular, Java é uma linguagem de programação de computador que existe em muitos dispositivos e é suportada por muitos desenvolvedores. Um objeto é a manifestação física de uma classe que ocupa memória e possui membros de dados. Uma instância também é a manifestação física de uma classe que ocupa memória e possui membros de dados. A diferença entre os dois é que um objeto representa um conjunto de instâncias, enquanto uma instância é uma certa representação específica.