OOP-uri Concepts in Java

hopa concepte รฎn 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

  1. 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
  2. Limbaje de programare structurate: Are flux de control non-secvenศ›ial. Utilizarea funcศ›iilor permite reutilizarea codului.
  3. 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

  1. Depozit
  2. Retrage
  3. 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)

Programare nestructuratฤƒ

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.

Programare structuratฤƒ

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)
}
}

Programarea orientatฤƒ pe obiecte

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

Rezumaศ›i aceastฤƒ postare cu: