{"id":22946,"date":"2023-12-21T02:30:53","date_gmt":"2023-12-20T13:30:53","guid":{"rendered":"https:\/\/goit.global\/?post_type=articles&#038;p=22946"},"modified":"2024-02-13T03:44:50","modified_gmt":"2024-02-12T14:44:50","slug":"ce-este-programarea-orientata-pe-obiecte-principii-avantaje-si-dezavantaje","status":"publish","type":"articles","link":"https:\/\/dev.goit.global\/ro\/articles\/ce-este-programarea-orientata-pe-obiecte-principii-avantaje-si-dezavantaje\/","title":{"rendered":"Ce este programarea orientat\u0103 pe obiecte: principii, avantaje \u0219i dezavantaje"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Exist\u0103 diferite abord\u0103ri ale dezvolt\u0103rii software. Una dintre cele mai populare \u0219i mai eficiente este programarea orientat\u0103 pe obiecte (OOP). Cu ajutorul acesteia se pot crea, extinde \u0219i \u00eentre\u021bine proiecte destul de complexe. Dac\u0103 dore\u0219ti s\u0103 devii <\/span><span style=\"font-weight: 400;\">dezvoltator (Python<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">Java<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">Frontend sau Fullstack<\/span><span style=\"font-weight: 400;\">), \u00een\u021belegerea bazei OOP este unul dintre pa\u0219ii principali pe calea spre succes.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Ast\u0103zi vom explica ce este programarea orientat\u0103 pe obiecte, care este scopul \u0219i care sunt principiile ei. De asemenea, vom vorbi despre avantaje \u0219i dezavantaje. Dar, mai \u00eent\u00e2i, s\u0103 analiz\u0103m predecesorul s\u0103u.<\/span><\/p>\n<p><a href=\"https:\/\/m.goit.global\/ro\/?amp%3Butm_medium=mainsite&#038;amp%3Butm_campaign=button\" target=\"_blank\" rel=\"noopener\"><picture id=\"gb-banner-8mwtbkaoxvm\" class=\"gb-banner\" data-gb-banner=\"true\"><source srcset=\"https:\/\/web-dev-goit.s3.eu-north-1.amazonaws.com\/app\/uploads\/2023\/10\/13033134\/1280-HTML-CSS-RO.png\" media=\"(min-width:1280px)\" \/><source srcset=\"https:\/\/web-dev-goit.s3.eu-north-1.amazonaws.com\/app\/uploads\/2023\/10\/13033141\/1024-HTML-CSS-RO.png\" media=\"(min-width:1024px)\" \/><source srcset=\"https:\/\/web-dev-goit.s3.eu-north-1.amazonaws.com\/app\/uploads\/2023\/10\/13033138\/768-HTML-CSS-RO.png\" media=\"(min-width:768px)\" \/><source srcset=\"https:\/\/web-dev-goit.s3.eu-north-1.amazonaws.com\/app\/uploads\/2023\/10\/13033136\/480-HTML-CSS-RO.png\" media=\"(min-width:480px)\" \/><img decoding=\"async\" class=\"aligncenter gb-banner-image\" src=\"https:\/\/web-dev-goit.s3.eu-north-1.amazonaws.com\/app\/uploads\/2023\/10\/13033136\/480-HTML-CSS-RO.png\" alt=\"Banner GoIT\" \/><\/picture><\/a><\/p>\n<h2>Ce este programarea procedural\u0103 \u0219i care sunt dezavantajele acesteia<\/h2>\n<p><span style=\"font-weight: 400;\">\u00cenainte de apari\u021bia OOP, abordarea dominant\u0103 a dezvolt\u0103rii era programarea procedural\u0103. Potrivit acestei abord\u0103ri, programul este \u00eemp\u0103r\u021bit \u00eentr-un set de func\u021bii \u0219i se execut\u0103 succesiv, execut\u00e2nd instruc\u021biunile \u00een ordine strict\u0103. Acest lucru este potrivit pentru scrierea unor aplica\u021bii mici sau a scripturilor care efectueaz\u0103 ac\u021biuni simple, cum ar fi citirea \u0219i scrierea datelor, sortarea etc.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Dac\u0103 este vorba de software complex, pot ap\u0103rea probleme. \u00cen primul r\u00e2nd, leg\u0103turile dintre func\u021biile individuale nu sunt \u00eentotdeauna evidente. \u00cen al doilea r\u00e2nd, programarea procedural\u0103 nu dispune de mecanisme de reutilizare a codului. Fiecare func\u021bie \u00ee\u0219i \u00eendepline\u0219te propria sarcin\u0103 unic\u0103 \u0219i nu exist\u0103 nicio modalitate de a o utiliza \u00een alte p\u0103r\u021bi ale software-ului. Acest lucru face dificil\u0103 dezvoltarea, \u00eentre\u021binerea \u0219i extinderea software-ului pe m\u0103sur\u0103 ce cerin\u021bele se schimb\u0103. OOP nu are astfel de dezavantaje \u0219i permite efectuarea modific\u0103rilor unui obiect, care este element cheie al programului.<\/span><\/p>\n<h2>Ce este programarea orientat\u0103 pe obiecte?<\/h2>\n<p><span style=\"font-weight: 400;\">OOP \u2013 abordarea dezvolt\u0103rii de software axat\u0103 pe obiecte nu pe func\u021bii. Adic\u0103, programul este \u00eemp\u0103r\u021bit \u00eentr-un set de obiecte care interac\u021bioneaz\u0103 \u00eentre ele.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Structura OOP este alc\u0103tuit\u0103 din obiecte, clase, atribute \u0219i metode.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Obiecte \u2013 instan\u021be ale unor clase care reprezint\u0103 entit\u0103\u021bi reale sau abstracte.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Clase \u2013 \u0219abloane pentru crearea obiectelor care definesc atributele \u0219i metodele acestora.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Atribute \u2013 date despre obiect care stocheaz\u0103 starea acestuia.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Metode \u2013 func\u021bii care pot schimba starea obiectului sau pot efectua anumite ac\u021biuni.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Un exemplu pentru a \u00een\u021belege structura program\u0103rii orientat\u0103 obiectual:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Clasa: tester<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Obiect: tester Anton<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Atribute: salariu \u0219i responsabilit\u0103\u021bi<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Metode: <\/span><span style=\"font-weight: 400;\">testare software\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Dup\u0103 cum se poate observa, atributele \u0219i metodele sunt propriet\u0103\u021bi ale obiectului. Aceast\u0103 abordare permite simplificarea dezvolt\u0103rii de software complex \u0219i scrierea unui cod bine structurat, cu care este pl\u0103cut s\u0103 lucrezi.<\/span><\/p>\n<p><a href=\"https:\/\/m.goit.global\/ro\/?amp%3Butm_medium=mainsite&#038;amp%3Butm_campaign=button\" target=\"_blank\" rel=\"noopener\"><picture id=\"gb-banner-twdvpc5l0l\" class=\"gb-banner\" data-gb-banner=\"true\"><source srcset=\"https:\/\/web-dev-goit.s3.eu-north-1.amazonaws.com\/app\/uploads\/2023\/10\/13033134\/1280-HTML-CSS-RO.png\" media=\"(min-width:1280px)\" \/><source srcset=\"https:\/\/web-dev-goit.s3.eu-north-1.amazonaws.com\/app\/uploads\/2023\/10\/13033141\/1024-HTML-CSS-RO.png\" media=\"(min-width:1024px)\" \/><source srcset=\"https:\/\/web-dev-goit.s3.eu-north-1.amazonaws.com\/app\/uploads\/2023\/10\/13033138\/768-HTML-CSS-RO.png\" media=\"(min-width:768px)\" \/><source srcset=\"https:\/\/web-dev-goit.s3.eu-north-1.amazonaws.com\/app\/uploads\/2023\/10\/13033136\/480-HTML-CSS-RO.png\" media=\"(min-width:480px)\" \/><img decoding=\"async\" class=\"aligncenter gb-banner-image\" src=\"https:\/\/web-dev-goit.s3.eu-north-1.amazonaws.com\/app\/uploads\/2023\/10\/13033136\/480-HTML-CSS-RO.png\" alt=\"Banner GoIT\" \/><\/picture><\/a><\/p>\n<h2>Principiile program\u0103rii orientate pe obiecte<\/h2>\n<p><span style=\"font-weight: 400;\">OOP se bazeaz\u0103 pe patru principii principale: \u00eencapsulare, mo\u0219tenire, polimorfism \u0219i abstractizare. S\u0103 analiz\u0103m mai \u00eendeaproape pe fiecare dintre ele.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\u00cencapsularea. \u00cencapsulare. Datele \u0219i metodele aferente sunt stocate \u00een interiorul obiectului. Acest lucru permite ascunderea implement\u0103rii sale interne \u0219i furnizarea doar a interfe\u021bei necesare pentru interac\u021biune. Astfel, dezvoltatorii pot crea aplica\u021bii de \u00eencredere \u0219i securizate, \u00eempiedic\u00e2nd accesul neautorizat. <\/span><span style=\"font-weight: 400;\">Securitatea cibernetic\u0103<\/span><span style=\"font-weight: 400;\"> este foarte important\u0103 \u00een prezent.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Mo\u0219tenirea. Mo\u0219tenirea. \u00cen OOP se pot crea clase noi pe baza celor existente. Noua clas\u0103 se nume\u0219te clas\u0103 derivat\u0103, iar clasa existent\u0103 se nume\u0219te clas\u0103 de baz\u0103. \u00cen timpul mo\u0219tenirii, clasa derivat\u0103 prime\u0219te toate atributele \u0219i metodele clasei de baz\u0103 \u0219i \u00ee\u0219i poate ad\u0103uga propriile atribute \u0219i metode. Mo\u0219tenirea face posibil\u0103 reutilizarea codului \u0219i crearea ierarhiilor de clase \u00abde la public la privat\u00bb pentru a implementa scheme complexe. Acest lucru spore\u0219te eficien\u021ba dezvolt\u0103rii \u0219i ofer\u0103 o organizare mai logic\u0103 a codului. Nu este nevoie s\u0103 scrii din nou acelea\u0219i propriet\u0103\u021bi pentru diferite obiecte, este suficient ca acestea s\u0103 le mo\u0219teneasc\u0103 dintr-o clas\u0103 de baz\u0103.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Polimorfism. Obiecte din clase diferite pot avea acelea\u0219i metode, dar implementate \u00een moduri diferite. Programul lucreaz\u0103 cu toate obiectele folosind interfa\u021b\u0103 comun\u0103, motiv pentru care codul devine mai flexibil \u0219i universal.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Abstractizare. \u00cen loc s\u0103 se descrie \u00een detaliu fiecare parte a sistemului, abstractizarea se concentreaz\u0103 pe lucrurile cele mai importante. Aceasta permite dezvoltatorilor s\u0103 ascund\u0103 complexitatea implement\u0103rii \u0219i s\u0103 se concentreze asupra aspectelor cheie ale obiectului.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">OOP pare s\u0103 fie abordarea perfect\u0103. Dar este \u00eentr-adev\u0103r a\u0219a? Cite\u0219te mai departe pentru a afla r\u0103spunsul.<\/span><\/p>\n<h2>Avantajele \u0219i dezavantajele program\u0103rii orientate pe obiecte<\/h2>\n<p><span style=\"font-weight: 400;\">Avantajele program\u0103rii orientate obiectual sunt unul dintre motivele pentru care aceasta este utilizat\u0103 pe scar\u0103 larg\u0103 \u00een diverse domenii de dezvoltare. Iat\u0103 c\u00e2teva dintre ele:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Modularitatea \u0219i reutilizarea codului. OOP permite \u00eemp\u0103r\u021birea unui program \u00een p\u0103r\u021bi mici \u0219i u\u0219or de \u00een\u021beles, care sunt responsabile pentru anumite func\u021bionalit\u0103\u021bi. Modulele, clasele \u0219i obiectele pot fi refolosite, iar aceasta simplific\u0103 dezvoltarea, depanarea \u0219i \u00eentre\u021binerea software.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Flexibilitate \u0219i scalabilitate. OOP face software-ul mai flexibil \u0219i mai extensibil, permi\u021b\u00e2nd ad\u0103ugarea noilor clase \u0219i metode f\u0103r\u0103 a rescrie \u00eentregul cod. Acest lucru face posibil\u0103 adaptarea software la cerin\u021bele care se modific\u0103 \u00eencontinuu.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\u00centre\u021binere u\u0219oar\u0103. Fiecare obiect are propria func\u021bionalitate \u0219i date, ceea ce u\u0219ureaz\u0103 c\u0103utarea \u0219i corectarea erorilor. Codul devine clar, astfel \u00eenc\u00e2t <\/span><a href=\"https:\/\/goit.global\/ua\/blog\/hto-taki-testuvalnyky-v-it\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">teste<\/span><\/a><span style=\"font-weight: 400;\">r<\/span><a href=\"https:\/\/goit.global\/ua\/blog\/hto-taki-testuvalnyky-v-it\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">ilor <\/span><\/a><span style=\"font-weight: 400;\">\u0219i programatorilor le este mai u\u0219or s\u0103 lucreze cu el.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Securitate. Software cu cod \u00eencapsulat este mai greu de spart.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Performan\u021b\u0103 \u00eembun\u0103t\u0103\u021bit\u0103. Dezvoltatorii scriu cod optimizat \u0219i eficient, ceea ce poate duce la cre\u0219terea performan\u021bei.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Integrare u\u0219oar\u0103. OOP permite integrarea rapid\u0103 a diferitelor componente ale aplica\u021biei prin crearea obiectelor care interac\u021bioneaz\u0103 \u00eentre ele. Acest lucru simplific\u0103 dezvoltarea sistemelor complexe.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">\u00cen ciuda numeroaselor avantaje, programarea orientat\u0103 pe obiecte are unele dezavantaje care trebuie luate \u00een considerare atunci c\u00e2nd se dezvolt\u0103 software:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Mai dificil de \u00eenv\u0103\u021bat \u00een compara\u021bie cu programarea procedural\u0103. Va fi nevoie de timp \u0219i efort pentru a \u00een\u021belege pe deplin conceptele OOP \u0219i pentru a le aplica \u00een practic\u0103.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Posibilitatea de duplicare \u0219i redundan\u021b\u0103 a codului. Dac\u0103 clasele \u0219i obiectele sunt proiectate incorect, poate ap\u0103rea o situa\u021bie \u00een care aceea\u0219i func\u021bionalitate este implementat\u0103 \u00een mai multe p\u0103r\u021bi ale codului, ceea ce duce la redundan\u021b\u0103 \u0219i la complexitatea \u00eentre\u021binerii.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Supra\u00eenc\u0103rcarea memoriei \u0219i a proces\u0103rii datelor. Clasele \u0219i obiectele consum\u0103 mai mult\u0103 memorie dec\u00e2t structurile de date procedurale simple, deoarece con\u021bin informa\u021bii suplimentare, cum ar fi metode \u0219i propriet\u0103\u021bi.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">OOP poate fi util\u0103 pentru majoritatea proiectelor. Dar dezvoltatorii trebuie s\u0103 ia \u00een considerare to\u021bi factorii c\u00e2nd aleg o paradigm\u0103 de programare pentru a asigura performan\u021ba ideal\u0103 a solu\u021biilor sale.<\/span><\/p>\n<h2>Exemple de utilizare a principiilor OOP<\/h2>\n<p><span style=\"font-weight: 400;\">Principiile program\u0103rii orientate obiectual sunt utilizate pe scar\u0103 larg\u0103 \u00een diverse domenii de dezvoltare. Iat\u0103 c\u00e2teva exemple din via\u021ba real\u0103:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Dezvoltarea web.<\/span><span style=\"font-weight: 400;\"> Clasele, obiectele, mo\u0219tenirea \u0219i polimorfismul permit crearea de diferite tipuri de utilizatori, produse, comenzi \u0219i alte entit\u0103\u021bi pe baza \u0219abloanelor comune. Acest lucru este util, de exemplu, atunci c\u00e2nd se creeaz\u0103 re\u021bele sociale sau magazine online.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Dezvoltarea jocurilor. Pentru a ad\u0103uga personaje, precum \u0219i obiecte, lumi \u0219i alte elemente cu caracteristici comune.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Medicina. OOP este utilizat pentru a dezvolta sisteme de informa\u021bii medicale care stocheaz\u0103 \u0219i proceseaz\u0103 date. Clasele \u0219i obiectele reprezint\u0103 pacien\u021bii, medicii, medicamentele etc. \u00cencapsularea asigur\u0103 stocarea \u0219i accesul sigur la acestea.<\/span><\/p>\n<h2>Ce limbaje de programare accept\u0103 OOP<\/h2>\n<p><span style=\"font-weight: 400;\">Exist\u0103 multe limbaje de programare care accept\u0103 aceast\u0103 paradigm\u0103. Iat\u0103 c\u00e2teva exemple populare:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Java<\/span><span style=\"font-weight: 400;\"> utilizeaz\u0103 clase \u0219i obiecte pentru a organiza codul.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">C++ ofer\u0103 toate caracteristicile de baz\u0103 OOP.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Python<\/span><span style=\"font-weight: 400;\"> \u2013 limbaj de nivel \u00eenalt, potrivit at\u00e2t pentru programarea procedural\u0103, c\u00e2t \u0219i pentru programarea orientat\u0103 pe obiecte.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">C# se utilizeaz\u0103 pe scar\u0103 larg\u0103 pentru dezvoltarea aplica\u021biilor pe platforma .NET \u0219i suport\u0103, de asemenea, OOP.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Ruby \u2013 limbaj dinamic, interpretat, care utilizeaz\u0103 \u00een mod activ principiile program\u0103rii orientate pe obiecte.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">PHP are toate instrumentele necesare pentru a crea clase, obiecte, mo\u0219tenire, \u00eencapsulare \u0219i polimorfism.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Majoritatea limbajelor de programare moderne accept\u0103 OOP, deoarece aceasta este o abordare comun\u0103 \u0219i eficient\u0103 pentru scrierea codului. De asemenea, trebuie de \u00een\u021beles c\u0103 programarea orientat\u0103 pe obiecte nu este \u00eentotdeauna cea mai bun\u0103 op\u021biune pentru dezvoltare \u0219i trebuie de luat \u00een considerare specifica\u021biile cerin\u021belor \u0219i sarcinilor. <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">Dac\u0103 dore\u0219ti s\u0103 devii programator, dar \u00eenc\u0103 nu \u021bi-ai ales o profesie, \u00eenscrie-te la <\/span><span style=\"font-weight: 400;\">unul dintre maratoanele gratuite<\/span><span style=\"font-weight: 400;\"> GoIT. \u00cencearc\u0103-te ca <\/span><span style=\"font-weight: 400;\">dezvoltator Python<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">programator Java<\/span><span style=\"font-weight: 400;\"> sau <\/span><span style=\"font-weight: 400;\">tester<\/span><span style=\"font-weight: 400;\">. Afl\u0103 mai multe despre aceste profesii, creeaz\u0103-\u021bi primele proiecte \u0219i testeaz\u0103-\u021bi abilit\u0103\u021bile. Poate c\u0103 \u00ee\u021bi va pl\u0103cea una dintre ele.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Iar dac\u0103 te-ai hot\u0103r\u00e2t deja, te a\u0219tept\u0103m la <\/span><span style=\"font-weight: 400;\">cursurile noastre online<\/span><span style=\"font-weight: 400;\">. Treci la ac\u021biune \u0219i nu mai am\u00e2na via\u021ba pe m\u00e2ine!<\/span><\/p>\n<p><a href=\"https:\/\/m.goit.global\/ro\/?amp%3Butm_medium=mainsite&#038;amp%3Butm_campaign=button\" target=\"_blank\" rel=\"noopener\"><picture id=\"gb-banner-2aawhzcuoff\" class=\"gb-banner\" data-gb-banner=\"true\"><source srcset=\"https:\/\/web-dev-goit.s3.eu-north-1.amazonaws.com\/app\/uploads\/2023\/10\/13033134\/1280-HTML-CSS-RO.png\" media=\"(min-width:1280px)\" \/><source srcset=\"https:\/\/web-dev-goit.s3.eu-north-1.amazonaws.com\/app\/uploads\/2023\/10\/13033141\/1024-HTML-CSS-RO.png\" media=\"(min-width:1024px)\" \/><source srcset=\"https:\/\/web-dev-goit.s3.eu-north-1.amazonaws.com\/app\/uploads\/2023\/10\/13033138\/768-HTML-CSS-RO.png\" media=\"(min-width:768px)\" \/><source srcset=\"https:\/\/web-dev-goit.s3.eu-north-1.amazonaws.com\/app\/uploads\/2023\/10\/13033136\/480-HTML-CSS-RO.png\" media=\"(min-width:480px)\" \/><img decoding=\"async\" class=\"aligncenter gb-banner-image\" src=\"https:\/\/web-dev-goit.s3.eu-north-1.amazonaws.com\/app\/uploads\/2023\/10\/13033136\/480-HTML-CSS-RO.png\" alt=\"Banner GoIT\" \/><\/picture><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ast\u0103zi vom explica ce este programarea orientat\u0103 pe obiecte, care este scopul \u0219i care sunt principiile ei. De asemenea, vom vorbi despre avantaje \u0219i dezavantaje. Dar, mai \u00eent\u00e2i, s\u0103 analiz\u0103m predecesorul s\u0103u.<\/p>\n","protected":false},"featured_media":22947,"menu_order":0,"template":"","meta":{"inline_featured_image":false},"categories":[],"tags":[],"class_list":["post-22946","articles","type-articles","status-publish","has-post-thumbnail","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/dev.goit.global\/ro\/wp-json\/wp\/v2\/articles\/22946","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dev.goit.global\/ro\/wp-json\/wp\/v2\/articles"}],"about":[{"href":"https:\/\/dev.goit.global\/ro\/wp-json\/wp\/v2\/types\/articles"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dev.goit.global\/ro\/wp-json\/wp\/v2\/media\/22947"}],"wp:attachment":[{"href":"https:\/\/dev.goit.global\/ro\/wp-json\/wp\/v2\/media?parent=22946"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dev.goit.global\/ro\/wp-json\/wp\/v2\/categories?post=22946"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dev.goit.global\/ro\/wp-json\/wp\/v2\/tags?post=22946"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}