Programarea orientată pe obiecte (OOP) - abordare pentru a crea programe bazate pe utilizarea de clase și obiecte, care interacționează unele cu altele.
Clasa (clasa Java) descrie un dispozitiv și comportamentul obiectelor. Aparatul este descris de un set de caracteristici (proprietăți) și comportament - printr-un set de obiecte accesibile operațiunilor (metode). Clasele pot fi create pe baza deja disponibile prin adăugarea sau proprietăți și metode imperative.
Clasele sunt șabloane pentru obiecte care sunt în construcție. Obiecte - aceste elemente de program, care au un set similar de caracteristici și comportament (de exemplu, elementele construite pe baza unei clase). Fiecare obiect are o stare, este determinată de valoarea tuturor proprietăților sale. Într-un program pot exista mai multe clase și obiecte din clase diferite pot interacționa unul cu celălalt (prin metode).
Moștenirea este o parte integrantă a Java. La utilizarea moștenire este luat în considerare faptul că o nouă clasă care moștenește proprietățile (părinte) clasa de bază are toate proprietățile deținute de către mamă. Codul utilizează operandului se extinde. urmat de numele clasei de bază. Acest lucru deschide accesul la toate domeniile și metodele clasei de bază.
Folosind moștenire, puteți crea o „clasă java“ comun, care definește caracteristicile comune la un set de elemente conexe. Puteți moșteni apoi de la ea și pentru a crea clase suplimentare, care definesc caracteristici suplimentare unice pentru a le.
Clasa de șef derivat în Java numit super-superclasa. clasa moștenind se numește o subclasă. Astfel, subclasa - o versiune specializată a clasei super-care moștenește toate proprietățile superclasa, și adaugă propriile sale elemente unice.
Luați în considerare exemplul descrierea java studentului class'a student care are un nume, prenume, vârstă, și numărul de grup. elevii de clasa va crea un utilizator super-pe baza clasei de utilizare, care a definit deja numele, prenumele și data nașterii:
Acum, creați un student clasă separată, moștenește proprietățile de super-clasa. Când moștenesc o clasă, trebuie să suprascrie, de asemenea, constructorii de clasă părinte:
Prelungește arată cuvinte cheie pe care le moștenim de la clasa de utilizare.
Super cheie
Constructorul clasei Student numim constructorul clasei părinte prin intermediul super-operatorului. trecerea tuturor parametrilor necesari. În Java, super cuvinte cheie se referă la superclasa, adică, clasă, care este derivat din clasa curentă. Super Cuvântul cheie poate fi folosit pentru a apela constructorul superclasei și să se refere la un membru al superclasei, membrul ascuns al unei subclase.
Luați în considerare modul în care moștenirea este din punctul de vedere al creării unui obiect:
În primul rând se deschide clasa Student constructor, atunci constructorul superclasei de utilizator și apoi efectuează operațiunile rămase în Student constructor. Această secvență de operații este destul de logic, și vă permite să creați mai multe obiecte complexe, într-o mai simplu.
În superclasa poate fi de mai multe versiuni ale designerilor supraaglomerate, astfel încât să puteți apela super metoda (), cu parametri diferiți. Programul se va efectua constructorul care se potrivește cu argumentele specificate.
A doua formă de super-cheie acționează ca cuvântul cheie acest lucru. Numai în acest caz, ne referim întotdeauna la superclasa subclasa în care este utilizat. Forma generală este după cum urmează:
Aici, termenul poate fi o metodă sau o instanță variabilă. O astfel de formă este adecvată, în cazurile în numele membrilor membrului subclasei ascunde de superclasa cu aceleași nume.
Ca urmare, ar trebui să vedem consola:
Metode prioritari, Suprascriere
Dacă numele clasei ierarhie și metoda de subclasă de tip semnătură coincide cu metoda atributelor superclasei, metoda subclasa suprascrie metoda superclasa. Atunci când înlocuită prin metoda numită din diviziunea lui, el se va referi întotdeauna la versiunea acestei metode, o anumită subclasă. O versiune a metodei de superclasa va fi ascuns.
Dacă aveți nevoie de acces la o versiune a metodelor de suprascrisă definite într-un superclasă, trebuie să utilizați super cuvinte cheie.
A nu se confunda cu supraîncărcare imperative. Imperative metoda se efectuează numai în cazul în care numele și semnăturile celor două metode sunt tipuri identice. În caz contrar, cele două metode sunt pur și simplu supraîncărcate.
În Java SE5 a apărut Adnotare @ Suprascriere;. Dacă doriți să înlocuiți metoda, utilizați @ Suprascriere, iar compilatorul va emite un mesaj de eroare în cazul în care în loc de redefinire a făcut accidental de suprasarcină.
În Java, puteți moșteni dintr-o singură clasă.
În informatică, încapsulare (lat. En capsula) este un pachet de date și / sau funcții într-o singură entitate.
Baza de încapsulare este o clasă Java. Încapsularea înseamnă că câmpurile obiect nu sunt disponibile clienților săi direct - acestea sunt ascunse de acces direct din exterior. Încapsularea protejează datele obiectului de accesul neautorizat, permițând obiectului pentru a controla accesul la datele lor.
modificatorii de acces
Atunci când este utilizat modificatorii de acces din clasa de aici. Modificatorii de acces pot fi luate în considerare atât din punctul de încapsulare și de moștenire. Dacă se consideră din perspectiva încapsulare, modificatorii de acces vă permit să restricționeze accesul neautorizat la membrii unei clase în afara.
Pentru toate clasele de acest pachet
Deschideți membrii clasei alcătuiesc funcționalitatea externă, care este disponibil pentru alte clase. Închis (privat), de obicei, a declarat independent de membri funcționale externe, precum și metode ajutătoare, care sunt doar detaliile de implementare și Nonuniversality în mod inerent. Vă mulțumim pentru a ascunde punerea în aplicare a clasei, puteți schimba logica internă a unei clase separat, fără a schimba codul celorlalte componente ale sistemului.
Este recomandabil să se utilizeze accesul la proprietățile clasei prin metodele sale (principiul claselor de fasole, „POJO“), care vă permite să validați valori de câmp ca un apel direct la proprietățile este extrem de dificil de a urmări, astfel încât acestea să poată fi atribuite valori incorecte în timpul rulării programului. Acest principiu se referă la gestionarea datelor încapsulat și vă permite să schimbați rapid modul de stocare. În cazul în care datele vor fi stocate în memorie nu, în fișiere sau baze de date, va trebui să modificați un număr de metode dintr-o clasă, și să nu introducă această funcționalitate în toate părțile sistemului.
Codul de program este scris principiu încapsulare folosind este mai ușor de depanare. Pentru a ști la ce moment de timp, și care a schimbat proprietatea unui obiect de interes pentru noi, este suficient pentru a adăuga de ieșire de depanare în metoda a obiectului, prin care accesul la proprietate al obiectului. Cu acces direct la proprietățile obiectelor de programator ar trebui să adăugați de depanare în toate părțile din cod care utilizează un obiect de interes pentru noi.
Exemplu de descriere simplă de robot
Metodele kituri sunt utilizate în exemplul ilustrat, robotul începe cu set și get. Această pereche de metode este adesea numit un setter / getter. Aceste metode sunt folosite pentru a accesa câmpurile obiectului. Aici Nume câmp metoda se încheie începe cu o literă de capital.
În metodele stabilite valoarea pe care trece prin parametrul oficial în interiorul procedurii. Codul de procedură, vom atribui valoarea obiectului / clasa folosind cuvântul cheie acest lucru.
Utilizarea acestui cuvânt cheie este necesară, deoarece numele parametrului oficial coincide cu numele unui obiect variabil. Dacă numele ar fi diferit, nu am putut ispolzavat acest lucru.
Evident, necesitatea de a scrie un cod care pentru modelul de imagine este consistentă prin toate primitivele să fie afișat pe ecran, și apel metoda tragere fiecare dintre ele.
O persoană necunoscută cu polimorfismul este de natură să creeze mai multe matrici: o matrice separată pentru fiecare tip de primitivelor și scrie cod care enumără elementele secvențial din fiecare matrice și fiecare apel metoda elementului extragere. Rezultatul va fi similar cu următorul cod:
Folosind polimorfism, puteți simplifica foarte mult punerea în aplicare a acestei funcționalități. Mai întâi de toate, de a crea clasa generală mamă Forma pentru toate clasele noastre.
După aceea, vom crea diferite clase-succesori: Piata apoi (pătrat), Linie (Line), Sircle (cerc) și Triangle (triunghi):
Moștenitorii au anulat metoda de tragere. Rezultatul a fost o ierarhie de clasă, care este prezentată în figură.

Acum verifica oportunitatea uimitoare de polimorfism:
următoarele linii apar în consolă:
Astfel, fiecare clasă derivată se numește o metodă de egalitate, în loc de a apela metoda extragere a formei superclasei.
Polimorfismul - a teoriei tipurilor, potrivit căruia numele (de exemplu, variabile) pot desemna diferite obiecte, dar cu o clasă părinte comună. Prin urmare, orice obiect, desemnat numele polimorf poate deține o modalitate de a răspunde la un set comun de operațiuni.
Metoda de suprasarcină, supraîncărcare
În programarea procedurală, de asemenea, există conceptul de polimorfism, care diferă de mecanismul de luat în considerare în OOP. polimorfism procedural sugerează posibilitatea de a crea proceduri sau funcții multiple cu același nume, dar cu un număr diferit sau tipurile de parametrii transmiși. Aceste funcții sunt numite cu același nume supraîncărcat, iar fenomenul - o suprasarcină (suprasarcină). Funcția există Supraîncărcarea în OOP se numește metoda supraîncărcării. Un exemplu de utilizare a metodei supraîncărcării în limbajul Java poate servi ca PrintWriter clasă. care este folosit în special pentru a afișa mesaje de pe consola. Această clasă are multe metode println, care diferă în tipurile și / sau numărul de parametri de intrare. Aici sunt doar câteva dintre ele: