Skelbimas

Jei ką nors padarei pradedančiųjų programavimasar net pradėjote ieškoti skirtingų kalbų, tikriausiai esate susidūrę su fraze „objektinis programavimas“ (arba „OOP“).

Yra visokių techninių paaiškinimų, kas tai yra, tačiau šiandien mes pažvelgsime į tai, kaip paprasčiau apibrėžti objektų programavimą.

Prieš pradedant: Procedūrinės kalbos

Norėdami suprasti, kas yra į objektą orientuota programavimo kalba, turite suprasti, kas ją pakeitė. Ankstyvosios programavimo kalbos buvo procedūrinės, vadinamosios, nes programuotojas apibrėžė labai specifinį procedūrų rinkinį, kurį atliks kompiuteris.

Kas yra orientuotas į programavimą ir kaip pradėti jį mokytis

Ankstyviausiomis dienomis procedūros buvo užrašomos perfokavimo kortelėmis. Šie veiksmai buvo atlikti duomenims atlikti, atlikti tam tikrą veiksmų seką, tada išvesti naujus duomenis.

Procedūrų kalbos kurį laiką gerai veikė (ir kai kurios vis dar vartojamos). Bet kai norite programuoti ką nors, kas nėra pagrindinė veiksmų seka, procedūrines kalbas gali būti sunku valdyti. Čia įeina į objektus orientuotas programavimas.

instagram viewer

Objektinio programavimo objektas

Taigi, kas yra objektinis programavimas?

Pirmoji į objektą orientuota kalba (paprastai sutikta būti modeliu) pristatė idėją daiktai. Objektai yra informacijos rinkiniai, kurie traktuojami kaip vienasmenis subjektas.

Su pavyzdžiu gilinsimės į tai, ką tai iš tikrųjų reiškia per sekundę, tačiau pirmiausia turime apie tai pakalbėti klases. Klasės yra tarsi išankstiniai objektai. Juose yra atributų, kurie apibrėžti tampa objektu, sąrašas.

Kas yra orientuotas į programavimą ir kaip pradėti jį mokytis

Paimkime šachmatų žaidimo programavimo pavyzdį. Galbūt mes turime klasę, vadinamą „Piece“. Dalyje „Piece“ yra atributų sąrašas:

  • Spalva
  • Ūgis
  • Figūra
  • Judėti leidžiama

Objektas tiesiog nusako vieną konkretų tai klasei priklausančio daikto egzempliorių.

Taigi mes galėtume turėti objektą pavadinimu „WhiteQueen“. Objektas turėtų apibrėžimus visiems keturiems požymiams (baltas, aukštas, cilindrinis su įbrėžimais, bet koks tarpų skaičius bet kuria kryptimi). Tai taip pat gali turėti metodai ar funkcijos.

Kas daro tai daug geriau nei procedūrinis požiūris?

Trumpai tariant, į objektą orientuotos programavimo kalbos (kaip Java) palengvina duomenų ir kodo tvarkymą taip, kad jis būtų įvairesnis didesniam projektui.

Norėdami tai aptarti šiek tiek išsamiau, pakalbėsime apie keturis objektinio programavimo pagrindus.

Objektinis programavimas: abstrakcija

Vien todėl, kad norite ką nors naudoti, dar nereiškia, kad turite žinoti, kaip tai veikia. Pavyzdžiui, espreso aparatas yra sudėtingas. Bet jums nereikia žinoti, kaip tai veikia. Jums tiesiog reikia žinoti, kad kai paspausite „Įjungta“, gausite espreso.

Kas yra orientuotas į programavimą ir kaip pradėti jį mokytis

Tas pats pasakytina apie objektus, orientuotus į objektų programavimą. Mūsų šachmatų pavyzdyje galime naudoti „move ()“ metodą. Tam metodui gali prireikti daug duomenų ir kitų metodų. Gali prireikti pradinės ir galutinės padėties kintamųjų. Jis gali naudoti kitą metodą, kad nustatytų, ar užfiksuotas kūrinys.

Bet jums to nereikia žinoti. Viskas, ką jums reikia žinoti, yra tai, kad kai liepiate kūriniui judėti, jis juda. Tai yra abstrakcija.

Objektinis programavimas: kapsulė

Inkapsuliacija yra vienas iš būdų, kaip objektinis programavimas sukuria abstrakciją. Kiekvienas objektas yra duomenų, kurie traktuojami kaip vienas subjektas, rinkinys. Tuose objektuose yra duomenys - ir kintamieji, ir metodai.

Objekto kintamieji paprastai laikomi privačiais, tai reiškia, kad kiti objektai ir metodai negali jų pasiekti. Objektai gali būti paveikti tik naudojant jų metodus.

Vyskupo objekte gali būti kelios informacijos dalys. Pvz., Tai gali turėti kintamąjį, vadinamą „pozicija“. Šis kintamasis yra būtinas norint naudoti metodą move (). Ir, žinoma, ji turi spalvą.

Padaręs padėties kintamąjį privačiu ir judėjimo () metodą viešai, programuotojas apsaugo kintamąjį kintamąjį nuo bet kokio kito poveikio. Ir jei spalva yra privatus kintamasis, kitas objektas negali jo pakeisti, nebent yra metodas, kuris leidžia tai pakeisti. (To greičiausiai neturėtumėte, nes kūrinio spalva turėtų išlikti pastovi.)

Šie kintamieji ir metodai yra saugomi objekte Bishop. Dėl to, kad jie yra kapsuliuoti, programuotojas gali pakeisti objekto struktūrą ar turinį, nesijaudindamas apie viešąją sąsają.

Objektinis programavimas: Paveldimumas

Be klasių, į objektus orientuotos programavimo kalbos turi ir pogrupius. Juose yra visi pagrindinės klasės atributai, tačiau jie gali turėti ir kitų atributų.

Mūsų šachmatų žaidime pėstininkų gabalams reikalingas metodas, galintis paversti juos kitais gabalėliais, jei jie pavirs į lentos galą. Mes tai vadinsime „transformPiece“ () metodu.

Ne kiekvienam kūriniui reikalingas transformPiece () metodas. Taigi nenorėtume to leisti į „Piece“ klasę. Vietoj to, mes galime sukurti pogrupį pavadinimu Pawn. Kadangi tai yra poklasis, jis visus atributus paveldi iš „Piece“. Taigi pėstininkų pogrupio egzempliorius apima spalvą, aukštį, formą ir leidžiamą judesį.

Tačiau jis taip pat apima „transformPiece“ () metodą. Dabar mes niekada neturime jaudintis dėl netyčinio šios funkcijos panaudojimo ant lazda. Čia yra techninis paaiškinimas:

Sukūrus pogrupius, taip pat sutaupoma daug laiko. Užuot sukūrę naujas klases viskam, programuotojai gali sukurti pagrindinę klasę ir išplėsti ją į naujas pogrupius, kai jiems to reikia. (Tačiau verta atkreipti dėmesį į tai per didelis pasitikėjimas palikimu yra blogas 10 pagrindinių programavimo principų, kurių privalo laikytis kiekvienas programuotojasVisada rašykite kodą, kurį gali prižiūrėti visi, kurie gali dirbti su jūsų programine įranga. Šiuo tikslu pateikiami keli programavimo principai, padedantys išvalyti savo poelgį. Skaityti daugiau .)

Objektinis programavimas: polimorfizmas

Polimorfizmas yra paveldėjimo rezultatas. Pilnai suprantant polimorfizmą, reikia šiek tiek programavimo žinių, todėl čia tiesiog laikysimės pagrindų. Trumpai tariant, polimorfizmas leidžia programuotojams naudoti to paties pavadinimo metodus, tačiau su skirtingi objektai.

Pvz., Mūsų „Piece“ klasėje gali būti judėjimo () metodas, kuris juda kūrinį viena erdve bet kuria kryptimi. Tai tinka karaliaus kūriniui, bet ne visam kitam. Norėdami išspręsti šią problemą, „Rook“ pogrupyje galime apibrėžti naują judėjimo () metodą, kuris apibūdina judėjimą kaip neribotą tarpų skaičių pirmyn, atgal, į kairę arba į dešinę.

Dabar, kai programuotojas pasirenka perėjimo () metodą ir kaip argumentą naudoja gabalą, programa tiksliai žinos, kaip kūrinys turėtų judėti. Tai sutaupo daug laiko bandydami išsiaiškinti, kurį iš daugelio skirtingų metodų turėtumėte naudoti.

Objektinis programavimas trumpai

Jei jūsų galva šiek tiek sukasi po tų paskutinių keturių apibrėžimų, nesijaudinkite per daug. Čia yra pagrindiniai dalykai, kuriuos reikia atsiminti:

  • Objektinis programavimas renka informaciją į atskirus objektus, vadinamus objektais.
  • Kiekvienas objektas yra vienas klasės egzempliorius.
  • Abstrakcija slepia vidinius objekto veikimus, kai jų nereikia matyti.
  • Inkapsuliacija saugo susijusius kintamuosius ir metodus objektuose ir juos apsaugo.
  • Paveldimumas leidžia pogrupiams naudoti tėvų klasių atributus.
  • Polimorfizmas leidžia objektams ir metodams susidoroti su keliomis skirtingomis situacijomis viena sąsaja.

Jei atsimenate tuos taškus, gerai susitvarkysite, koks yra objektinis programavimas. Keturiems objektyvaus programavimo pagrindams, kaip minėjau, gali būti šiek tiek sunku susitvarkyti. Kai tik pradėsite programuoti, jie taps aiškesni.

Atminkite, kad šiame straipsnyje aptarėme tik bendrumus. Įvairios į objektą orientuotos kalbos turės savų keiksmažodžių ir būdų, kaip viską įgyvendinti. Kartą jūs pasirinkti sau tinkamą kalbą Ieškai geriausios programavimo kalbos? Pradėti čia!Nesvarbu, ar esate visiškai naujas kalbų programavimo kalbas, ar ketinate pereiti prie naujo tipo programavimo, vienas iš svarbiausių užduodamų klausimų yra: „Kuri programavimo kalba man tinka?“ Skaityti daugiau , jūs pradėsite mokytis, kaip tai įgyvendina OOP principus.

„Dann“ yra turinio strategijos ir rinkodaros konsultantas, kuris padeda įmonėms generuoti paklausą ir veda klientus. Jis taip pat rašo tinklaraščius apie strategiją ir turinio rinkodarą dannalbright.com.