Objeto vs instância
A Programação Orientada a Objetos (OOP) é um dos paradigmas de programação mais populares. Em OOP, o foco é pensar sobre o problema a ser resolvido em termos de elementos do mundo real e representar o problema em termos de objetos e seu comportamento. Muitas linguagens de programação que oferecem suporte aos principais aspectos de OOP (chamadas de linguagens OOP) têm a classe como a principal ferramenta de programação. Eles são chamados de baseados em classe. As classes são uma representação abstrata de objetos do mundo real. As classes têm propriedades chamadas atributos. Os atributos são implementados como variáveis globais e de instância. Os métodos nas classes representam ou definem o comportamento dessas classes. Métodos e atributos de classes são chamados de membros da classe. Em termos muito simples, uma classe é um projeto ou modelo para um objeto específico da vida real. Então,um objeto é o (s) bloco (s) de memória usado (s) para armazenar as informações necessárias de acordo com este plano. Instância é um bloco de memória que se refere a um objeto.
O que é um objeto?
Objetos são resultados da instanciação de uma classe. Instanciação é o processo de pegar o projeto e definir cada atributo e comportamento de forma que o objeto resultante realmente represente um objeto da vida real. Objeto é um bloco dedicado e contínuo de memória alocado para armazenar informações como variáveis, métodos ou funções, etc. O objeto é criado com o uso de novo operador, na linguagem de programação Java. Por exemplo, se houver uma classe chamada Car, o seguinte pode ser usado para criar um objeto da classe Car.
carro novo();
Aqui, um objeto Car é criado pelo novo operador e uma referência ao objeto é retornada. O novo operador junto com o construtor da classe Car é usado para criar o novo objeto. A vida útil do objeto começa desde a chamada ao seu construtor até o momento em que é destruído. Uma vez que um objeto não é referido, ele será removido / destruído pelo coletor de lixo.
O que é uma instância?
Instância é um bloco de memória, que contém a referência a um objeto. Em outras palavras, Instance manterá o endereço do bloco de memória inicial onde o objeto está armazenado. Na verdade, o nome da instância pode ser usado para acessar o início da área de memória do objeto. Os deslocamentos da memória inicial são calculados pelo mecanismo de tempo de execução para que possamos ir para onde os dados individuais ou referências de método são armazenados. O seguinte código Java cortado pode ser usado para criar uma instância de um objeto Car.
Carro meuCarro = carro novo ();
Conforme mencionado acima, o novo operador cria o objeto Car e retorna a referência a ele. Esta referência é armazenada na variável de tipo Car myCar. Portanto, myCar é a instância do objeto Car criado.
Qual é a diferença entre um objeto e uma instância?
Objeto é um bloco contíguo de memória que armazena as informações reais que distinguem este objeto de outros objetos, enquanto uma instância é uma referência a um objeto. É um bloco de memória, que aponta para o endereço inicial de onde o objeto está armazenado. Duas instâncias podem se referir ao mesmo objeto. A duração da vida de um objeto e uma instância não estão relacionadas. Portanto, uma instância pode ser nula. Depois que todas as instâncias que apontam para um objeto forem removidas, o objeto será destruído.