OOP-uri Concepts in Java
Ce este OOPS?
Sistem de programare orientatฤ pe obiecte (OOP) este un concept de programare care funcศioneazฤ pe principiile abstracศiei, รฎncapsulฤrii, moศtenirii ศi polimorfismului. Permite utilizatorilor sฤ creeze obiecte pe care le doresc ศi sฤ creeze metode pentru a gestiona acele obiecte. Conceptul de bazฤ al POO este de a crea obiecte, de a le reutiliza pe tot parcursul programului ศi de a manipula aceste obiecte pentru a obศine rezultate.
OOP, care รฎnseamnฤ โProgramare orientatฤ pe obiecteโ, este un concept cunoscut ศi utilizat pe scarฤ largฤ รฎn limbajele de programare moderne precum Java.
OOP-uri Concepts in Java cu Exemple
Urmฤtoarele sunt concepte generale OOP รฎn Java:
1) Clasa
clasฤ este unul dintre conceptele de bazฤ ale POO, care este un grup de entitฤศi similare. Este doar o componentฤ logicฤ ศi nu o entitate fizicฤ. Sฤ รฎnศelegem acesta dintre OOP-uri Concepts de exemplu, dacฤ aศi avea o clasฤ numitฤ โMaศini scumpeโ, ar putea avea obiecte precum Mercedes, BMW, Toyota, etc. Proprietฤศile sale (date) pot fi preศul sau viteza acestor maศini. รn timp ce metodele pot fi efectuate cu aceste maศini sunt conducerea, marศarierul, frรขnarea etc.
2) Obiect
Un obiect poate fi definit ca o instanศฤ a unei clase ศi pot exista mai multe instanศe ale unei clase รฎntr-un program. Un obiect este unul dintre Java Concepte OOP care conศine atรขt datele, cรขt ศi funcศia, care opereazฤ pe date. De exemplu โ scaun, bicicletฤ, marker, pix, masฤ, maศinฤ etc.
3) Moศtenirea
Moลtenire este una dintre cele de bazฤ Concepts de POO รฎn care un obiect dobรขndeศte proprietฤศile ศi comportamentele obiectului pฤrinte. Se creeazฤ o relaศie pฤrinte-copil รฎntre douฤ clase. Oferฤ un mecanism robust ศi natural pentru organizarea ศi structura oricฤrui software.
4) Polimorfism
polimorfismul se referฤ la unul dintre conceptele OOP din Java care este capacitatea unei variabile, obiect sau funcศie de a lua mai multe forme. De exemplu, รฎn englezฤ, verbul alerga are un alt sens dacฤ รฎl folosiศi cu un laptop, o cursฤ pe jos ศi afaceri. Aici, รฎnศelegem sensul lui alerga pe baza celorlalte cuvinte folosite รฎmpreunฤ cu acesta. Acelaศi lucru este valabil ศi pentru polimorfism.
5) Abstracศia
abstracศiune este unul dintre OOP Concepts in Java care este un act de reprezentare a trฤsฤturilor esenศiale fฤrฤ a include detalii de fundal. Este o tehnicฤ de creare a unui nou tip de date care este potrivit pentru o anumitฤ aplicaศie. Sฤ รฎnศelegem acesta dintre OOP-uri Concepts de exemplu, รฎn timp ce conduceศi o maศinฤ, nu trebuie sฤ vฤ preocupaศi de funcศionarea sa internฤ. Aici trebuie doar sฤ vฤ preocupaศi de pฤrศi precum volanul, vitezele, acceleraศia etc.
6) รncapsulare
รฎncapsularea este una dintre cele mai bune Java Conceptele OOP de รฎmpachetare a datelor ศi a codului. รn acest concept de POO, variabilele unei clase sunt รฎntotdeauna ascunse de alte clase. Acesta poate fi accesat numai folosind metodele clasei lor curente. De exemplu โ รฎn ศcoalฤ, un elev nu poate exista fฤrฤ clasฤ.
7) Asociere
Asocierea este o relaศie รฎntre douฤ obiecte. Este unul dintre OOP Concepts in Java care defineลte diversitatea dintre obiecte. รn acest concept OOP, toate obiectele au ciclul lor de viaศฤ separat ศi nu existฤ niciun proprietar. De exemplu, mulศi studenศi se pot asocia cu un profesor, รฎn timp ce un elev se poate asocia ศi cu mai mulศi profesori.
8) Agregarea
รn aceastฤ tehnicฤ, toate obiectele au ciclul lor de viaศฤ separat. Cu toate acestea, existฤ o proprietate astfel รฎncรขt obiectul copil nu poate aparศine altui obiect pฤrinte. De exemplu, luaศi รฎn considerare departamentul de clasฤ/obiecte ศi profesorul. Aici, un singur profesor nu poate aparศine mai multor departamente, dar chiar dacฤ ศtergem departamentul, obiectul profesor nu va fi niciodatฤ distrus.
9) Compoziศie
Compoziศia este o formฤ specializatฤ de agregare. Se mai numeศte ศi relaศie โde moarteโ. Obiectele copil nu au ciclul lor de viaศฤ, aศa cฤ atunci cรขnd obiectul pฤrinte ศterge, tot obiectul copil se va ศterge automat. Pentru asta, sฤ luฤm un exemplu de casฤ ศi camere. Orice casฤ poate avea mai multe camere. O camerฤ nu poate deveni parte a douฤ case diferite. Deci, dacฤ ศtergeศi ศi camera casei va fi ศtearsฤ.
Avantajele OOP (Sistem de programare orientat pe obiecte):
- OOP-uri Concepts in Java oferฤ uศor de รฎnศeles ศi o structurฤ modularฤ clarฤ pentru programe.
- Obiectele create pentru programe orientate pe obiecte pot fi reutilizate รฎn alte programe. Astfel, se economiseศte costuri semnificative de dezvoltare.
- Programele mari sunt dificil de scris, dar dacฤ echipa de dezvoltare ศi proiectare urmeazฤ conceptele OOPS, atunci pot proiecta mai bine cu defecte minime.
- รmbunฤtฤศeศte modularitatea programului, deoarece fiecare obiect existฤ independent.
Compararea OOPS cu alte stiluri de programare cu ajutorul unui Exemplu
Sฤ รฎnศelegem cu un exemplu cum Java OOP-uri Concepts sunt diferite de alte abordฤri de programare.
Limbaje de programare pot fi clasificate รฎn 3 tipuri primare
- Limbaje de programare nestructurate: Cel mai primitiv dintre toate limbajele de programare care are un flux de control secvenศial. Code se repetฤ pe tot parcursul programului
- Limbaje de programare structurate: Are flux de control non-secvenศial. Utilizarea funcศiilor permite reutilizarea codului.
- Limbaje de programare orientate pe obiecte: Combinฤ datele ศi acศiunile รฎmpreunฤ.
Clic aici dacฤ videoclipul nu este accesibil
Sฤ รฎnศelegem aceste 3 tipuri cu un exemplu.
Sฤ presupunem cฤ doriศi sฤ creaศi un software bancar cu funcศii precum
- Depozit
- Retrage
- Aratฤ echilibrul
Limbaje de programare nestructurate
Cel mai vechi dintre toate limbajele de programare a fost limbajul de programare nestructurat. Un cod foarte elementar al aplicaศiei bancare รฎn limbajul de programare nestructurat va avea douฤ variabile ale unui numฤr de cont ศi altul pentru soldul contului
int account_number=20; int account_balance=100;
Sฤ presupunem cฤ se face un depozit de 100 de dolari.
account_balance=account_balance+100
Apoi, trebuie sฤ afiศaศi soldul contului.
printf(โAccount Number=%d,account_number) printf(โAccount Balance=%d,account_balance)
Acum este retrasฤ suma de 50 de dolari.
account_balance=account_balance-50
Din nou, trebuie sฤ afiศaศi soldul contului.
printf(โAccount Number=%d,account_number) printf(โAccount Balance=%d,account_balance)
Pentru orice operaศiune ulterioarฤ de depunere sau retragere โ veศi repeta aceleaศi rรขnduri din nou ศi din nou.
Programare structuratฤ
Odatฤ cu apariศia programฤrii structurate, linii repetate ale codului au fost introduse รฎn structuri precum funcศii sau metode. Ori de cรขte ori este nevoie, se efectueazฤ un simplu apel la funcศie.
Programarea orientatฤ pe obiecte
รn programul nostru, avem de-a face cu date sau efectuฤm operaศiuni specifice asupra datelor. De fapt, a avea date ศi a efectua anumite operaศii pe acele date este o caracteristicฤ de bazฤ รฎn orice program software. Experศii รฎn programare software s-au gรขndit sฤ combine datele ศi Operaศiuni. Prin urmare, naศterea programฤrii orientate pe obiecte, care este denumitฤ รฎn mod obiศnuit OOPS. Acelaศi cod รฎn limbajele de programare orientatฤ pe obiecte va avea aceleaศi date ศi anumite acศiuni efectuate asupra datelor respective.
Class Account{
int account_number;
int account_balance;
public void showdata(){
system.out.println(โAccount Numberโ+account_number)
System.out.println(โAccount Balanceโ+ account_balance)
}
}
Prin combinarea datelor ศi acศiunii, vom obศine multe avantaje faศฤ de programarea structuralฤ ศi anume,
- abstracศiune
- รฎncapsularea
- Moลtenire
- polimorfismul
Acestea sunt discutate mai รฎn detaliu รฎn tutorialele urmฤtoare




