Objektinis programavimas
Į objektus orientuotas programavimas (OOP) - tai kompiuterių programų rašymo būdas, kai duomenims ir metodams atvaizduoti naudojama "objektų" idėja. Paprastai kompiuterių programos būdavo tik instrukcijų kompiuteriui sąrašas, nurodantis kompiuteriui atlikti tam tikrus veiksmus tam tikru būdu - tai vadinama procedūriniu programavimu. Tačiau į objektus orientuotame programavime kompiuterių programose naudojami objektai, kurie bendrauja tarpusavyje ir keičia tų objektų duomenis, kad veiktų taip, kaip nori naudotojas. Be to, kadangi objektinis programavimas yra sukurtas taip, kaip reikia, jis padeda kūrėjui, nes leidžia kodą lengvai pakartotinai panaudoti kitose programos dalyse ar net kitų žmonių.
Dauguma programavimo kalbų yra įvairių tipų kompiuterių programų rašymo būdų mišinys. Pavyzdžiui, "Python" leidžia rašyti kompiuterių programas ir objektinio programavimo, ir procedūrinio programavimo būdais. Yra daug programavimo kalbų, kurios leidžia rašyti kompiuterių programas OOP būdu, Kai kurios iš šių programavimo kalbų, pvz: C++, Java, Ruby, Perl, Emarald, Sapphire, PHP, Python ir kt.
Funkcijos
Pagrindinė į objektus orientuoto programavimo idėja yra ta, kad viskas yra objektas. Tačiau objektas gali būti įvairių tipų:
- Kintamuosiuose gali būti saugoma įvairių tipų informacija (arba duomenys), kurią palaiko programavimo kalba. Pavyzdžiui, sveikųjų skaičių duomenų tipas ir sąrašų duomenų struktūra. Kintamieji - tai idėja, kuri jau žinoma iš procedūrinių programavimo kalbų. Objektiniame programavime kintamieji dažniausiai vadinami atributais.
- Procedūros (dar vadinamos funkcijomis, metodais arba procedūromis) - tai instrukcijų, kuriomis kompiuteriui nurodoma priimti įvestį, atlikti tam tikrus skaičiavimus arba pakeisti duomenis ir grąžinti išvestį naudotojui, sąrašas. Procedūros - tai taip pat idėja, kuri jau žinoma iš procedūrinių programavimo kalbų. Objektiniame programavime procedūros dažniausiai vadinamos metodais.
- Klasės - tai įvairių kintamųjų ir procedūrų rinkinys. Klasės paprastai bendrauja tarpusavyje ir keičia duomenis, kad jie veiktų taip, kaip nori naudotojas.
Objektai - tai terminas, vartojamas klasių egzemplioriams apibūdinti.
Pavyzdžiai
Toliau pateiktuose pavyzdžiuose sukursime klasę Human
. Šią klasę sudaro atributai name
(žmogaus vardas) ir friend
(draugo vardas). Kiekviename klasės Žmogus
metode yra nurodymų sąrašas, kuriame naudojami vardo
ir draugo
atributai.
Python
Šis kodas parašytas "Python" kalba.
Java
Šis kodas parašytas "Java" kalba.
Žmogaus klasė
Bendravimo su aukščiau esančia "Human" klase metodas
Kritika
Nors į objektus orientuotas programavimas yra populiarus, tačiau yra daug žmonių, kurie mano, kad jis yra blogas, ir jį kritikuoja.
- Luca Cardelli parašė straipsnį "Blogos inžinerinės objektinių kalbų savybės".
- 1995 m. Richardas Stallmanas rašė: "OOP įtraukimas į "Emacs" nėra aiškus patobulinimas; aš naudojau OOP dirbdamas su "Lisp Machine" langų sistemomis ir nesutinku su įprasta nuomone, kad tai yra geresnis programavimo būdas."
- Potok ir kt. atliktame tyrime teigiama, kad OOP ir procedūrinių metodų produktyvumas skiriasi labai nežymiai.
- Christopheris J. Date'as sakė, kad OOP lyginti su kitais dalykais, ypač tai, kaip OOP ir kitas dalykas yra susiję, yra sudėtinga, nes žmonės nesutaria dėl OOP reikšmės.
- Aleksandras Stepanovas pasiūlė, kad OOP suteikia požiūrį, kuris yra ribotas, kiek tai susiję su matematika, ir pavadino jį "beveik tokia pat apgaulė kaip ir dirbtinis intelektas".
- Paulas Grahamas, sėkmingas interneto pardavėjas ir programuotojas, teigė, kad OOP paskirtis - veikti kaip bandos mechanizmas, neleidžiantis vidutiniams programuotojams vidutinėse organizacijose "padaryti per daug žalos". Tai taip pat stabdo greitesnius, geresnius programuotojus, kurie žino, kaip viską atlikti galingiau ir kompaktiškiau. [1]
Klausimai ir atsakymai
K: Kas yra į objektus orientuotas programavimas?
A: Į objektus orientuotas programavimas - tai būdas rašyti kompiuterių programas, naudojant "objektus" duomenims ir metodams žymėti.
K: Kuo objektinis programavimas skiriasi nuo procedūrinio programavimo?
A: Procedūrinio programavimo atveju kompiuterio programos yra instrukcijų kompiuteriui sąrašas, kuriame nurodoma atlikti tam tikrus veiksmus tam tikru būdu. Objektinio programavimo atveju kompiuterių programose naudojami objektai, kurie bendrauja tarpusavyje, kad pakeistų tų objektų duomenis ir veiktų taip, kaip nori naudotojas.
Klausimas: Kuo objektinis programavimas naudingas programuotojams?
A: Objektinis programavimas leidžia kodą lengvai pakartotinai panaudoti kitose programos dalyse ar net kitų žmonių.
K: Kuo žinoma Python programavimo kalba?
A: Python leidžia rašyti kompiuterių programas ir objektinio, ir procedūrinio programavimo būdu.
Klausimas: Ar galite pateikti programavimo kalbų, leidžiančių rašyti kompiuterių programas objektinio programavimo būdu, pavyzdžių?
A: Programavimo kalbos, kuriomis galima rašyti kompiuterių programas objektinio programavimo būdu, yra šios: C++, Java, Ruby, Perl, Emarald, Sapphire, PHP, Python, C# ir kt.
K: Kas yra objektai objektiniame programavime?
A: Objektai - tai objektinio programavimo esybės, kuriose yra duomenų ir metodų.
K: Kaip objektai veikia objektiniame programavime?
A: Objektai sąveikauja tarpusavyje, kad pakeistų tuose objektuose esančius duomenis ir veiktų taip, kaip nori naudotojas.