Differenza tra oggetto e istanza

Oggetto vs Istanza

Object Oriented Programming (OOP) è uno dei paradigmi di programmazione più popolari. In OOP, l'attenzione si concentra sul pensare al problema da risolvere in termini di elementi del mondo reale e rappresentando il problema in termini di oggetti e del loro comportamento. Molti linguaggi di programmazione che supportano aspetti chiave di OOP (chiamati linguaggi OOP) hanno la classe come strumento di programmazione principale. Si chiamano class-based. Le classi sono una rappresentazione astratta di oggetti del mondo reale. Le classi hanno proprietà chiamate attributi. Gli attributi sono implementati come variabili globali e di istanza. I metodi nelle classi rappresentano o definiscono il comportamento di queste classi. I metodi e gli attributi delle classi sono chiamati membri della classe. In termini molto semplici, una classe è un modello o un modello per uno specifico oggetto di vita reale. Quindi, un oggetto è il blocco (i) di memoria utilizzato per memorizzare le informazioni necessarie secondo questo modello. L'istanza è un blocco di memoria che rimanda a un oggetto.

Cos'è un oggetto?

Gli oggetti sono i risultati dell'istanziazione di una classe. L'istanziazione è il processo di prendere il progetto e definire ogni attributo e comportamento in modo tale che l'oggetto risultante rappresenti effettivamente un oggetto di vita reale. L'oggetto è un blocco dedicato e continuo di memoria allocata per memorizzare informazioni come variabili, metodi o funzioni, ecc. L'oggetto viene creato con l'uso di un nuovo operatore, nel linguaggio di programmazione Java. Ad esempio, se esiste una classe denominata Car, è possibile utilizzare quanto segue per creare un oggetto della classe Car.

nuova auto();

Qui, un nuovo oggetto Car viene creato dal nuovo operatore e viene restituito un riferimento all'oggetto. Il nuovo operatore insieme al costruttore della classe Car viene utilizzato per creare il nuovo oggetto. La durata della vita dell'oggetto inizia dalla chiamata al suo costruttore fino al momento in cui viene distrutta. Una volta che un oggetto non viene riferito, verrà rimosso / distrutto dal garbage collector.

Cos'è un'istanza?

L'istanza è un blocco di memoria, che contiene il riferimento a un oggetto. In altre parole, Instance manterrà l'indirizzo del blocco di memoria iniziale in cui è archiviato l'oggetto. In realtà, il nome dell'istanza può essere utilizzato per accedere all'inizio dell'area di memoria dell'oggetto. Gli offset dalla memoria iniziale vengono calcolati dal motore runtime in modo che possiamo andare dove sono memorizzati i singoli dati o riferimenti al metodo. Seguendo il codice Java snipped può essere usato per creare un'istanza di un oggetto Car.

Car myCar = new Car ();

Come accennato in precedenza, il nuovo operatore crea l'oggetto Car e restituisce il riferimento ad esso. Questo riferimento è memorizzato nella variabile di tipo Car myCar. Quindi, myCar è l'istanza dell'oggetto Car creato.

Qual è la differenza tra un oggetto e un'istanza?

L'oggetto è un blocco contiguo di memoria che memorizza l'informazione effettiva che distingue questo oggetto da altri oggetti, mentre un'istanza è un riferimento a un oggetto. È un blocco di memoria, che indica l'indirizzo fisso di dove è memorizzato l'oggetto. Due istanze possono fare riferimento allo stesso oggetto. Le durate di vita di un oggetto e un'istanza non sono correlate. Pertanto un'istanza potrebbe essere nullo. Una volta rimosse tutte le istanze che puntano a un oggetto, l'oggetto verrà distrutto.