Obiect (programare)

Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 14 iunie 2016; verificările necesită 13 modificări .

Un obiect în programare  este o entitate din spațiul digital care are o stare și comportament, are câmpuri și metode . De regulă, atunci când se consideră obiecte, se subliniază că obiectele aparțin uneia sau mai multor clase care definesc comportamentul (sunt un model ) al unui obiect. Termenii „ instanță de clasă ” și „obiect” sunt folosiți interschimbabil [1] . Analogie: un obiect este ceea ce s-a făcut conform unui desen, o clasă este un desen.

Un obiect, împreună cu conceptul de clasă , este un concept important în abordarea orientată pe obiecte . Obiectele au proprietăți de moștenire , încapsulare și polimorfism [2] .

Termenul de obiect în software a fost introdus pentru prima dată în limbajul Simula și a fost folosit pentru a modela realitatea [1] .

Concepte înrudite

O  instanță a unei clase este o descriere a unui obiect specific din memorie. Clasa descrie câmpurile și metodele care vor fi disponibile pentru un obiect construit conform descrierii stabilite în clasă. Instanțele sunt folosite pentru a reprezenta (model) entități specifice în lumea reală. De exemplu, o instanță a unei clase de mașini de spălat poate fi mașina dvs. de spălat, care are următoarele proprietăți: compania producătoare Vyatka, numele modelului Vyatka-automatic , numărul de serie al produsului VYAT454647, capacitate 20 litri. Spre deosebire de un nume de clasă, un nume de instanță începe de obicei cu o literă mică.

Instanciarea este crearea unei instanțe a unei clase .  Spre deosebire de cuvântul „creație”, acesta se aplică nu unui obiect, ci unei clase. Adică, ei spun: (într-un mediu virtual) creați o instanță a unei clase sau, cu alte cuvinte, instanțiați o clasă . Șabloanele de creare folosesc instanțierea polimorfă .

Un obiect anonim este un  obiect care aparține unei clase, dar nu are un nume.

Inițializare ( inițializarea în limba engleză  ) - atribuirea valorilor inițiale câmpurilor obiectului.

Durata de viață a unui obiect  este timpul de la momentul în care obiectul este creat (construcție) până la distrugerea lui (distrugere).

Abordare practică

Cu excepția limbajelor orientate pe prototip precum Lua și JavaScript , unde conceptul de „clasă” nu este folosit deloc, în majoritatea limbajelor de programare orientate pe obiecte (cum ar fi Java , C++ sau C# ), obiectele sunt instanțe. a unei clase predefinite .

Obiectele din astfel de limbi sunt create folosind constructorul de clasă și distruse fie folosind destructorul de clasă (de exemplu, în C++ ), fie automat folosind colectorul de gunoi - de exemplu, în Java și C# (C# acceptă destructori, dar sunt numite de către colectorul de gunoi), sau folosind contorul intern de referințe pentru obiecte și mesaje ("dealloc" în Objective-C ). Un obiect este stocat ca date ale tuturor câmpurilor sale și referințe la tabelul de metode virtuale și RTTI din clasa sa. Clasa definește un set de funcții și informații de serviciu pentru construirea unui obiect, inclusiv cantitatea necesară de memorie pentru stocarea obiectului.

În Python , toate valorile sunt obiecte, chiar și clase. În această limbă, puteți construi o clasă, din care clasele vor fi instanțe. Astfel de clase sunt numite metaclase .

Exemplu de cod

Un exemplu de creare a unui obiect nou și de lucru cu acesta în limbajul de programare Java :

// Creați o instanță a clasei ArrayList numită list ArrayList list = new ArrayList (); // Adăugarea de instanțe ale clasei Integer la lista de obiecte din listă . adaugă ( întreg nou ( 1 )); lista . adaugă ( întreg nou ( 2 )); lista . adaugă ( numărul întreg nou ( 3 ));

Se presupune că clasa ArrayLista fost deja descrisă în codul programului și descrierea ei conține o definiție pentru constructorul clasei și metoda add.

Note

  1. 1 2 Grady Butch. Analiză și proiectare orientată pe obiecte cu exemple de aplicații C++, clase și obiecte . Consultat la 9 octombrie 2009. Arhivat din original la 1 decembrie 2009.
  2. Eroare la nota de subsol ? : Etichetă nevalidă <ref>; deffără text pentru note de subsol

Literatură

  • Grady Butch. Analiză și proiectare orientate pe obiecte cu exemple de aplicații în C++. - Binom, 1998. - ISBN 0-8053-5340-2 , ISBN 5-7989-0067-3 , ISBN 5-7940-0017-1 .