Clasa de programare. Tipuri de clase în limbajele de programare

O clasă în programare este o grupare de date, câmpuri și funcții sau metode. Toate acestea se numesc variabile, metode sau funcții membre. Un program este construit dintr-un set de clase. Odată definite și implementate, elementele sale pot fi declarate similar cu variabilele de limbaj din tipurile primitive "int", "double" și "String".

O scurtă istorie a unui limbaj de programare

O scurtă istorie a unui limbaj de programare

SIMULA a fost primul limbaj obiect, folosit pentru a crea simulări. Alan Kay, pe atunci student la Universitatea din Utah, a apreciat limbajul pentru că putea fi folosit pentru calculator personal pentru a implementa aplicații orientate spre grafică. El a sugerat că un limbaj precum SIMULA ar oferi o modalitate bună pentru începători de a crea programe și și-a împărtășit viziunea cu Xerox Parc. La începutul anilor `70, o echipă condusă de Alan Kaye a creat primul PC numit Dynabook cu limbajul orientat pe obiecte Smalltalk, care există și astăzi, deși nu este utilizat pe scară largă în comerț.

Ideea programare orientată pe obiecte (OOP) a fost dezvoltat în anii 1970, iar la începutul anilor 1980 Bjorn Straustrup l-a integrat în limbajul C, care a devenit cunoscut sub numele de "C ++" - primul limbaj orientat pe obiecte (OLO) care a fost utilizat pe scară largă pe plan comercial.

La începutul anilor `90, un grup de la Sun, condus de James Gosling, a dezvoltat o versiune mai simplă de C ++ numită Java. Care ar trebui să fie limbajul pentru aplicațiile video la cerere. Acest proiect de programare Java de la zero nu a fost niciodată implementat. Grupul a fost nevoit să își reorienteze atenția asupra dezvoltării limbă pentru Aplicații Internet. A devenit din ce în ce mai popular odată cu dezvoltarea internetului, deși pătrunderea pe piață a fost mai degrabă redusă din cauza ineficienței sale percepute.

Modelarea orientată pe obiecte

Clasele și obiectele sunt două dintre cele câteva elemente cheie ale OOP. Ele sunt utilizate pentru modelarea comportamentului și încapsularea. În lumea reală se pot găsi multe obiecte individuale de același tip. De exemplu, există mii de biciclete de aceeași marcă și model. Fiecare a fost construit din același set și, prin urmare, conține componente egale de. În termeni OO, acest lucru înseamnă că o bicicletă este o instanță dintr-o clasă de obiecte cunoscute sub numele de biciclete. Este simplu. O clasă în limbajele de programare este un plan pentru crearea unor obiecte specifice. De exemplu, Bicicleta este o posibilă implementare.

Modelarea orientată pe obiecte

Puteți observa că clasa Bicycle nu conține "principal" metoda. Pentru că nu reprezintă o aplicație completă, ci doar un plan pentru biciclete. Responsabilitatea creării și utilizării de noi obiecte Bicycle aparține unei alte clase în programare. Iar demonstrația Bicycle Demo este cea care creează două obiecte Bicycle separate și apelează metodele acestora.

Bicicleta solicită metode

Rezultatul acestui test indică viteza finală și treapta de viteză pentru cele două biciclete.

Termeni de bază

O variabilă este un nume cu o valoare care poate fi schimbată pe parcursul programului. În funcție de informațiile conținute, acestea sunt clasificate în 2 sau mai multe tipuri, în funcție de limba utilizată. În general, există două tipuri de clasificări:

  1. Variabile de tipuri primitive. Ele sunt definite de o singură valoare - întreg, virgulă mobilă, simbol sau semn logic.
  2. Variabilele de referință sunt nume pentru informații mai complexe: array-uri sau obiecte dintr-o anumită clasă.

Cheia pentru OOP este de a preveni informațiile incorecte deoarece variabilele nu au fost inițializate corect. Pentru a defini în mod corespunzător obiectele, trebuie să folosiți metodele-constructor, care se declanșează automat de fiecare dată când se creează un obiect. Misiunea lor principală este de a rezerva memorie, de a realiza inițializarea variabilelor membre ale clasei în programare. Acestea nu au o valoare de returnare "void", iar numele lor este același cu numele grupului comun. Argumentul său implicit este obiectul care este creat.

Clase și obiecte în Python

Python se referă la un OO limbaje de programare, Astfel, spre deosebire de una orientată pe proceduri, în care accentul este pus pe funcții, aceasta este bazată pe obiecte. Un obiect este un set de date și de funcții care acționează asupra lui. O clasă este o schiță pentru un obiect. Vă puteți gândi la o clasă ca la o schiță (prototip) la domiciliu. Acesta conține toate detaliile despre podele, uși, ferestre și alte construcții. Pe baza acestor descrieri, construiește o casă, care este un obiect.

Clase și obiecte în Python

Un obiect este pur și simplu un set de date și metode (funcții) care acționează asupra acestor date. O clasă este o schiță pentru un obiect. Vă puteți gândi la o clasă ca la o schiță (prototip) a unei case. Acesta conține toate detaliile despre podele, uși, ferestre și alte construcții. Pe baza acestor descrieri, se construiește o casă, care este un obiect.

Deoarece mai multe case pot fi făcute din descriere, este posibil să se creeze mai multe obiecte dintr-un singur grup. Se mai numește și instanță. Ceea ce se obține este? Acest proces demonstrează conceptul de instanță de clasă și crearea acesteia. La fel cum definițiile funcțiilor încep cu cuvântul cheie "def", Python definește un grup cu "class". Prima linie se numește "docstring" și are o scurtă descriere a clasei.

Clasa creează un nou fișier local namespace, care definește toate atributele sale, acestea pot fi date sau funcții. De asemenea, are un caracter special, care începe cu o dublă subliniere (__). De exemplu, "__doc__" oferă șirul de documente al acestei clase în programare.

Odată ce este definit, se creează un nou obiect cu același nume. Vă permite să accesați diverse atribute, precum și să creați noi obiecte din clasa respectivă.

Obiecte noi din această clasă

Cuvânt cheie "clasa"

Python este un limbaj excelent care suportă OOP, este folosit pentru a configura o clasă. Oferă mai multe avantaje față de alte limbaje, cum ar fi Java, C ++ sau R. Este un limbaj dinamic cu tipuri de date de nivel înalt, astfel încât dezvoltarea este mult mai rapidă decât în Java sau C ++. Programatorul nu trebuie să declare tipurile de variabile și argumente. De asemenea, face mai ușor pentru începători să înțeleagă și să învețe Python, codul său este mai ușor de citit și mai intuitiv.

Pentru a defini o clasă în Python, puteți utiliza cuvântul cheie "class" urmat de un nume și de două puncte. În interiorul metodei sale "__init__" trebuie să fie definită cu "def". Este un inițializator care poate fi utilizat ulterior pentru a crea obiecte, trebuie să fie întotdeauna prezent. Este similar cu un constructor Java.

Este necesar un singur argument "self" care se referă la obiectul însuși. În interiorul metodei, se folosește cuvântul cheie "pass" și se aplică indentarea corespunzătoare. "Self" în Python este echivalent cu "this" în C ++ sau clase în Java. În acest caz, există în mare parte un "Dog" gol, dar nu există încă un obiect. O clasă are specificații precise, precum un plan sau un șablon. Acestea stabilesc contractul de clasă.

Împărțirea unei reprezentări

Clasa poate fi împărțită în două părți:

  1. Antetul clasei care constă în cuvântul cheie "clasa" și numele care îi este atribuit. În limbajele de programare, numele sunt cunoscute și sub numele de identificatori.
  2. Corpul, care constă într-o pereche de console ondulate de deschidere/închidere cu elemente între ele.

Iată șablonul pentru codul sursă al clasei:

clasa

{

...

}

Atunci când o clasă este scrisă, aceasta este înlocuită cu un nume. Corpul este format din unul sau din mai multe elemente, un șir de caractere înseamnă un număr oarecare de părți precedente. În special, cuvântul-cheie "clasa" trebuie să înceapă cu prima coloană a rândului, urmată de restul informațiilor din antet - un identificator în cel mai simplu caz.

Parantezele deschise delimitează antetul și inițiază corpul clasei. Unii programatori preferă să o plaseze la sfârșitul liniei, dar majoritatea o preferă pe o linie separată. O paranteză curly cuprinde corpul clasei. Este o practică obișnuită să se plaseze o paranteză de închidere într-o coloană separat.

O colecție de elemente

Conținutul corpului clasei constă într-o colecție de elemente. Membrii din variabilele numite câmpuri și părțile pe care le face, notate prin metode, cunoscute și sub numele de proceduri.

Conținutul corpului trebuie să fie indentat cu cel puțin două coloane. Mulți programatori le fac câte patru coloane pentru a ușura citirea codului sursă. Numărul nu contează, dar trebuie să se potrivească cu orice sumă selectată.

Mai există o altă regulă de urmat: identificatorii de clasă trebuie să înceapă cu majusculă, la fel ca fiecare cuvânt nou din cadrul acesteia.

Clasele sunt formate din elemente. Membrii sunt fie câmpuri, fie metode. Fiecare software trebuie să aibă o metodă specială numită "main". Dacă combinați codul sursă, veți obține un șablon pentru o aplicație minimă.

Acesta este standardul de-facto, în care numele încep cu majusculă, precum și cuvintele suplimentare din el. De exemplu: myClass se potrivește, dar myClass și myclass nu se potrivesc. Identificatorul clasei trebuie să fie, de asemenea, numele fișierului în care este introdus codul sursă. Acesta trebuie să aibă o extensie ".java".

Cuvinte cheie

Cuvintele cheie ale claselor în Java sunt cuvinte rezervate, ca și elementele de bază ale limbajului. Nu le puteți folosi pentru numele obiectelor pe care le creați. Cum ar fi identificatorii de clasă, de câmp și de metodă. Compilatorul va recunoaște aceste cuvinte și le va trata ca fiind speciale.

Cuvinte cheie

Atunci când se execută o aplicație Java, comanda "java" este utilizată pentru a rula JVM și se specifică fișierul de clasă pentru execuția acesteia. Procesul începe cu o metodă specifică, pe care utilizatorul o definește ca fiind metoda "principală" a aplicației. Această convenție este o tradiție a programării Java de la zero, moștenită de la " C ".

Codul sursă "main" () arată întotdeauna cam așa:

public static void main (String[ ] identificator)

{

...

}

Cheia "public" și "static" ca modificatori speciali pentru a găsi "main" au fost găsite și sunt disponibile. Identificatorul poate fi orice, dar într-o mare măsură - standardul utilizează numele "arg", care este o abreviere a argumentelor.

Constructorul clasei Java

"Clasa" poate fi înțeles ca un prototip care guvernează variabilele și metodele comune unui anumit tip de instanță, definește tot ceea ce caracterizează și poate crea una sau mai multe instanțe ale lui. Define variabile și metode comune instanțelor de acest tip create de clasă, dar apoi fiecare va avea propriile valori: șablon, culoare și rețetă.

În Java, mai întâi trebuie să creați o clasă înainte de a putea crea instanțe de clase. Obiectul devine o instanță a clasei. Acesta conține atribute și metode, iar atunci când îl creați, trebuie să specificați tipurile, metodele, funcțiile și numele atributelor, precum și tipul de date, numele și alți parametri pe care îi utilizează.

Structura de bază arată în felul următor.

Structura de bază a clasei în Java

JavaScript este creat cu numele de clasă "MyClass", care are un total de trei atribute, toate private: "String", "int" și "float".

Variabila limită

Clasele de stocare C sunt utilizate pentru a descrie funcțiile variabilelor. Acestea includ în principal domeniul de aplicare, vizibilitatea și durata de viață, care ajută la urmărirea existenței unei anumite variabile în timpul execuției.

Limbajul C utilizează 4 clase de stocare. Și anume:

  1. Auto - setat în mod implicit pentru toate variabilele declarate în cadrul unei funcții sau al unui bloc de clase în C. În consecință, cuvântul cheie "auto" este rar folosit la scrierea programelor C. Variabilele automatizate pot fi accesate numai în interiorul blocului/funcției în care au fost declarate, nu în afara acestuia, ceea ce definește domeniul de aplicare al acestora. Bineînțeles, acestea pot fi accesate dacă sunt aninate în cadrul blocului/funcției părinte în care a fost declarată variabila automată. Cu toate acestea, ele pot fi accesate și în afara domeniului lor de aplicare, indicând o locație foarte precisă în memorie unde sunt.
  2. Extern, atunci când variabila este definită în altă parte decât acolo unde este utilizată. De obicei, într-un bloc se atribuie o valoare, care poate fi suprascrisă în alt bloc. Astfel, "extern" nu este nimic altceva decât o variabilă globală inițializată cu o valoare validă acolo unde este declarată pentru a fi utilizată în altă parte.
  3. Static, utilizat pentru a declara variabile statice, care sunt utilizate în mod obișnuit atunci când se scriu clase în C. Acestea tind să își păstreze valoarea chiar și după ce ies din domeniul de aplicare. Astfel, putem spune că ele sunt inițializate o singură dată și există până la terminarea programului; nu li se alocă memorie nouă, deoarece nu sunt redeclarate, iar domeniul lor de aplicare depinde de funcția pentru care au fost definite. Variabilele statice globale pot fi accesate oriunde în program. În mod implicit, compilatorul le atribuie valoarea 0.
  4. Register, declară variabilele care au aceeași funcționalitate ca și cele automate. Singura diferență este că compilatorul încearcă să le stocheze în microprocesor dacă accesul este liber. Acest lucru îl face mult mai rapid de utilizat decât în memorie în timpul execuției. În cazul în care nu este disponibil un registru liber, acestea sunt stocate numai în memorie. De obicei, cele câteva variabile care trebuie accesate foarte des într-un program sunt declarate cu cuvântul cheie "register", ceea ce îmbunătățește timpul de execuție al programului.

Sintaxă: clasa de stocare var_data_tip nume_variabilă.

Sintaxă: clasa de stocare

Secretele programării

Următoarele orientări nu sunt exhaustive și au scopul de a asigura utilizarea corectă a modelelor de proiectare ale programării orientate pe obiecte:

  1. Evitați clasele omnibus în Python.
  2. Aplicați denumiri semnificative.
  3. Atunci când dezvoltă o clasă sau refactorește codul existent, dezvoltatorul trebuie să faceți o listă toate sarcinile și să găsească un nume.
  4. Atunci când se aplică OOP, este mult mai ușor să vii cu nume semnificative, deoarece modelul de proiectare în sine definește adesea tipul de responsabilitate.
  5. Numele clasei trebuie să înceapă cu o literă majusculă. În cazul în care numele este un cuvânt compus sau mai multe cuvinte, prima literă a fiecărui cuvânt trebuie să fie majusculă. Exemplu: clasa Study, clasa StudyTonight etc.
  6. Clasele conțin date membre și funcții membre. Iar accesul la aceste elemente și variabile depinde de specificatorii de la.
  7. Conceptul de membri ai clasei. Ce înseamnă acest lucru? O clasă în C++ este ca o structură în C. Singura diferență este că utilizează în mod implicit controlul accesului privat, iar structura este publică.
  8. Toate funcțiile OOPS se învârt în jurul claselor în C - moștenire, încapsulare, abstractizare și altele.
  9. Obiectele conțin copii individuale ale datelor membrilor.
  10. Puteți crea atâtea obiecte câte obiecte aveți nevoie.

Obiectul are variabile individuale. Ele sunt inițializate folosind funcții speciale ale clasei numite constructori. Și ori de câte ori acesta părăsește domeniul de aplicare, o altă funcție specială, numită Destructor, este apelată pentru a elibera memoria rezervată de obiect. C+ nu are un colector automat de gunoi ca JAVA, ci Destructorul îndeplinește această sarcină.

Fiecare obiect are variabile diferite

Articolul este scris într-un limbaj simplu despre clasele din programare. Sper că acest material a fost clar pentru dumneavoastră. Cunoașterea regulilor limbajelor orientate pe obiecte este o cerință de bază pentru dezvoltarea cu succes a aplicațiilor. O arhitectură bună înseamnă bani economisiți pentru instruire, întreținere, testare, patch-uri, extindere și scalare a codului sursă. Necesită mai mult timp și îngrijire pentru dezvoltarea inițială, dar se întoarce rapid investiția cu mare interes. Este inevitabil ca chiar și cele mai bine proiectate arhitecturi să necesite ajustări temporare și refactorizare.

Articole pe această temă