Objeto vs Instância
A Programação Orientada a Objetos (OOP) é um dos paradigmas de programação mais populares. Na 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 suportam aspectos principais do OOP (chamadas linguagens OOP) têm a classe como a principal ferramenta de programação. Eles são chamados baseados em classe. Classes são uma representação abstrata de objetos do mundo real. 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 das classes são chamados de membros da classe. Em termos muito simples, uma classe é um modelo ou modelo para um objeto específico da vida real. Portanto, um objeto é o (s) bloco (s) de memória usado para armazenar as informações necessárias de acordo com este modelo. Instância é um bloco de memória que refere um objeto.
O que é um objeto?
Objetos são o resultado de instanciar uma classe. A instanciação é o processo de pegar o blueprint e definir cada atributo e comportamento para que o objeto resultante realmente represente um objeto da vida real. O objeto é um bloco de memória dedicado e contínuo alocado para armazenar informações como variáveis, métodos ou funções, etc. O objeto é criado com o uso de um novo operador, na linguagem de programação Java. Por exemplo, se houver uma classe chamada Car, o seguinte poderá ser usado para criar um objeto da classe Car.
carro novo();
Aqui, um objeto Carro é criado pelo novo operador e uma referência ao objeto é retornada. O novo operador, juntamente com o construtor da classe Car, é usado para criar o novo objeto. A vida útil do objeto começa na chamada para o construtor até o momento em que é destruído. Depois que um objeto não for 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, a Instância manterá o endereço do bloco de memória inicial em que 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 as referências de método estão armazenados. O código Java a seguir capturado pode ser usado para criar uma instância de um objeto Car.
Carro myCar = Carro novo ();
Como mencionado acima, o novo operador cria o objeto Car e retorna a referência a ele. Esta referência é armazenada na variável do tipo de carro myCar. Então, myCar é a instância do objeto Car criado.
Qual é a diferença entre um objeto e uma instância?
Objeto é um bloco de memória contíguo que armazena as informações reais que distinguem esse 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 fixo de onde o objeto está armazenado. Duas instâncias podem se referir ao mesmo objeto. A vida útil de um objeto e uma instância não está relacionada. 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.