Objektisuuntautunut suunnittelu alkoi heti tietokoneiden keksimisestä. Ohjelmointi oli olemassa, ja ohjelmointilähestymistavat tulivat kuvaan. Ohjelmointi on periaatteessa tiettyjen ohjeiden antamista tietokoneelle.
Tietojenkäsittelyn aikakauden alussa ohjelmointi rajoittui yleensä konekieliseen ohjelmointiin. Koneen kieli tarkoittaa niitä käskyjoukkoja, jotka ovat erityisiä tietylle koneelle tai prosessorille ja jotka ovat 0:n ja 1:n muodossa. Nämä ovat bittisarjoja (0100110…). Mutta on melko vaikeaa kirjoittaa ohjelmaa tai kehittää ohjelmistoja konekielellä.
On itse asiassa mahdotonta kehittää ohjelmistoja, joita käytetään nykypäivän skenaarioissa bittisarjoilla. Tämä oli tärkein syy, miksi ohjelmoijat siirtyivät seuraavan sukupolven ohjelmointikieliin kehittäen kokoonpanokieliä, jotka olivat tarpeeksi lähellä englannin kieltä ymmärtääkseen niitä helposti. Näitä kokoonpanokieliä käytettiin mikroprosessoreissa. Mikroprosessorin keksimisen myötä kokoonpanokielet kukoistivat ja hallitsivat alaa, mutta se ei riittänyt. Jälleen ohjelmoijat keksivät jotain uutta, eli strukturoidun ja prosessiohjelmoinnin.

Strukturoitu ohjelmointi -
Strukturoidun ohjelmoinnin perusperiaate on jakaa ohjelma toimintoihin ja moduuleihin. Moduulien ja toimintojen käyttö tekee ohjelmasta ymmärrettävämmän ja luettavamman. Se auttaa kirjoittamaan puhtaampaa koodia ja ylläpitämään toimintojen ja moduulien hallintaa. Tämä lähestymistapa antaa funktioille enemmän merkitystä kuin dataa. Se keskittyy suurten ohjelmistosovellusten kehittämiseen, esimerkiksi C:tä käytettiin nykyaikaisessa käyttöjärjestelmäkehityksessä. Ohjelmointikielet: PASCAL (joka esitteli Niklaus Wirth) ja C (joukko Dennis Ritchie) noudattavat tätä lähestymistapaa.
Proseduurin ohjelmointimenetelmä –
Tämä lähestymistapa tunnetaan myös ylhäältä alas -lähestymistavana. Tässä lähestymistavassa ohjelma jaetaan toimintoihin, jotka suorittavat tiettyjä tehtäviä. Tätä lähestymistapaa käytetään pääasiassa keskikokoisissa sovelluksissa. Data on globaalia, ja kaikilla toiminnoilla on pääsy globaaliin dataan. Proseduuriohjelmointilähestymistavan perushaitta on, että dataa ei ole suojattu, koska tiedot ovat globaaleja ja niitä voidaan käyttää millä tahansa toiminnolla. Ohjelman ohjausvirta saavutetaan funktiokutsujen ja goto-lauseiden avulla. Ohjelmointikielet: FORTRAN (kehittäjä IBM) ja COBOL (kehittäjä tohtori Grace Murray Hopper) noudattavat tätä lähestymistapaa.
Nämä ohjelmointirakenteet kehitettiin 1970-luvun lopulla ja 1980-luvulla. Näissä kielissä oli edelleen joitain ongelmia, vaikka ne täyttivätkin hyvin jäsenneltyjen ohjelmien, ohjelmistojen jne. kriteerit. Ne eivät olleet niin jäsenneltyjä kuin vaatimukset olivat tuolloin. Ne näyttävät olevan liian yleistettyjä eivätkä korreloi reaaliaikaisten sovellusten kanssa.
Tällaisten ongelmien ratkaisemiseksi ratkaisuksi kehitettiin OOP, oliolähtöinen lähestymistapa.

Olio-ohjelmoinnin (OOP) lähestymistapa –
OOP-konsepti suunniteltiin pohjimmiltaan poistamaan yllä olevien ohjelmointimenetelmien haittapuoli, jotka eivät olleet niin lähellä todellisia sovelluksia. Kysyntä kasvoi, mutta silti käytettiin perinteisiä menetelmiä. Tämä uusi lähestymistapa toi vallankumouksen ohjelmointimenetelmien alalla.
Olio-ohjelmointi (OOP) ei ole muuta kuin sellaista, joka mahdollistaa ohjelmien kirjoittamisen tiettyjen luokkien ja reaaliaikaisten objektien avulla. Voidaan sanoa, että tämä lähestymistapa on hyvin lähellä reaalimaailmaa ja sen sovelluksia, koska näiden luokkien ja objektien tila ja käyttäytyminen ovat melkein samat kuin reaalimaailman objektit.
Mennään syvemmälle OOP:n yleisiin käsitteisiin, jotka on annettu alla:
Mitä ovat luokka ja objekti?
Se on OOP:n peruskäsite; laajennettu käsite C:ssä käytetystä rakenteesta. Se on abstrakti ja käyttäjän määrittelemä tietotyyppi. Se koostuu useista muuttujista ja funktioista. Luokan ensisijainen tarkoitus on tallentaa tietoja ja tietoja. Luokan jäsenet määrittelevät luokan käyttäytymisen. Luokka on objektin suunnitelma, mutta voimme myös sanoa, että luokan toteutus on objekti. Luokka ei näy maailmalle, mutta esine on.
CPP
rakenteen joukko c-kielellä
Class car> {> >int> car_id;> >char> colour[4];> >float> engine_no;> >double> distance;> > >void> distance_travelled();> >float> petrol_used();> >char> music_player();> >void> display();> }> |
>
>
Tässä luokan autolla on ominaisuudet car_id, color, engine_no ja distance. Se muistuttaa todellista autoa, jolla on samat tekniset tiedot ja joka voidaan julistaa julkiseksi (näkyy kaikille luokan ulkopuolisille), suojatuksi ja yksityiseksi (ei näkyvissä kenellekään). Lisäksi on olemassa joitain menetelmiä, kuten distance_travelled(), petrol_used(), music_player() ja display(). Alla annetussa koodissa auto on luokka ja c1 on auton esine.
CPP
#include> using> namespace> std;> > class> car {> public>:> >int> car_id;> >double> distance;> > >void> distance_travelled();> > >void> display(>int> a,>int> b)> >{> >cout <<>'car id is= '> << a <<>'
distance travelled = '> << b + 5;> >}> };> > int> main()> {> >car c1;>// Declare c1 of type car> >c1.car_id = 321;> >c1.distance = 12;> >c1.display(321, 12);> > >return> 0;> }> |
>
mysql listan käyttäjiä
>
Datan abstraktio –
Abstraktiolla tarkoitetaan toimintaa, jossa esitetään tärkeitä ja erityisiä piirteitä ilman taustatietoja tai selityksiä kyseisestä ominaisuudesta. Tietojen abstraktio yksinkertaistaa tietokannan suunnittelua.

turbo c++ lataus
- Fyysinen taso:
Se kuvaa, kuinka tietueet tallennetaan, jotka ovat usein piilossa käyttäjältä. Sitä voidaan kuvata lauseella, tallennuslohko.
Looginen taso:
Se kuvaa tietokantaan tallennettuja tietoja ja niiden välisiä suhteita. Ohjelmoijat työskentelevät yleensä tällä tasolla, koska he ovat tietoisia toiminnoista, joita tarvitaan tietojen välisten suhteiden ylläpitämiseen.
Näytä taso:
Sovellusohjelmat piilottavat tietotyyppien tiedot ja tiedot turvallisuussyistä. Tämä taso toteutetaan yleensä graafisen käyttöliittymän avulla ja näytetään käyttäjälle tarkoitetut yksityiskohdat.
Kapselointi -
Kapselointi on yksi olio-ohjelmoinnin (OOP) peruskäsitteistä. Se kuvaa ajatusta tietojen käärimisestä ja menetelmistä, jotka toimivat datalla yhdessä yksikössä, esimerkiksi Java-luokassa. Tätä käsitettä käytetään usein piilottamaan kohteen sisäinen tilaesitys ulkopuolelta.
Perintö -
Periytys on yhden luokan kykyä periä toisen luokan, jota kutsutaan yläluokiksi, ominaisuuksia tai ominaisuuksia. Kun kirjoitamme luokkaa, perimme ominaisuuksia muilta luokilta. Joten kun luomme luokan, meidän ei tarvitse kirjoittaa kaikkia ominaisuuksia ja toimintoja uudestaan ja uudestaan, koska ne voidaan periä toiselta luokalta, jolla se on. Perinnön avulla käyttäjä voi käyttää koodia uudelleen aina kun mahdollista ja vähentää sen redundanssia.

Java
import> java.io.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >System.out.println(>'GfG!'>);> > >Dog dog =>new> Dog();> >dog.name =>'Bull dog'>;> >dog.color =>'Brown'>;> >dog.bark();> >dog.run();> > >Cat cat =>new> Cat();> >cat.name =>'Rag doll'>;> >cat.pattern =>'White and slight brownish'>;> >cat.meow();> >cat.run();> > >Animal animal =>new> Animal();> > >animal.name =>'My favourite pets'>;> > >animal.run();> >}> }> > class> Animal {> >String name;> >public> void> run()> >{> > >System.out.println(>'Animal is running!'>);> >}> }> > class> Dog>extends> Animal {> > /// the class dog is the child and animal is the parent> > >String color;> >public> void> bark()> >{> >System.out.println(name +>' Wooh ! Wooh !'> >+>'I am of colour '> + color);> >}> }> > class> Cat>extends> Animal {> > >String pattern;> > >public> void> meow()> >{> >System.out.println(name +>' Meow ! Meow !'> >+>'I am of colour '> + pattern);> >}> }> |
>
>
C++
#include> #include> using> namespace> std;> > class> Animal {> public>:> >string name;> >void> run(){> >cout<<>'Animal is running!'>< } }; class Dog : public Animal { /// the class dog is the child and animal is the parent public: string color; void bark(){ cout<' Wooh ! Wooh !' <<'I am of colour '< } }; class Cat : public Animal { public: string pattern; void meow(){ cout<' Meow ! Meow !'<<'I am of colour '< } }; int main(){ cout<<'GFG'< Dog dog; dog.name = 'Bull dog'; dog.color = 'Brown'; dog.bark(); dog.run(); Cat cat; cat.name = 'Rag doll'; cat.pattern = 'White and slight brownish'; cat.meow(); cat.run(); Animal animal; animal.name = 'My favourite pets'; animal.run(); return 0; //code contributed by Sanket Gode. }> |
ahma vs mäyrä
>
>Lähtö
GfG! Bull dog Wooh ! Wooh !I am of colour Brown Animal is running! Rag doll Meow ! Meow !I am of colour White and slight brownish Animal is running! Animal is running!>
polymorfismi -
Polymorfismi on tietojen kykyä käsitellä useammassa kuin yhdessä muodossa. Se mahdollistaa saman tehtävän suorittamisen eri tavoin. Se koostuu menetelmän ylikuormituksesta ja menetelmän ohittamisesta, eli menetelmän kirjoittamisesta kerran ja useiden tehtävien suorittamisesta samalla menetelmän nimellä.

CPP
#include> using> namespace> std;> > void> output(>float>);> void> output(>int>);> void> output(>int>,>float>);> > int> main()> {> >cout <<>'
GfG!
'>;> >int> a = 23;> >float> b = 2.3;> > >output(a);> >output(b);> >output(a, b);> > >return> 0;> }> > void> output(>int> var)> {>// same function name but different task> >cout <<>'Integer number: '> << var << endl;> }> > void> output(>float> var)> {>// same function name but different task> >cout <<>'Float number: '> << var << endl;> }> > void> output(>int> var1,>float> var2)> {>// same function name but different task> >cout <<>'Integer number: '> << var1;> >cout <<>' and float number:'> << var2;> }> |
happoominaisuuksien tietokanta
>
>
Tärkeitä seikkoja OOP:sta:
- OOP käsittelee dataa kriittisenä elementtinä.
- Painopiste on datassa eikä menettelyssä.
- Ongelman hajottaminen yksinkertaisempiin moduuleihin.
- Ei salli tietojen vapaata virtausta koko järjestelmässä, eli paikallista ohjausvirtaa.
- Tiedot on suojattu ulkoisilta toiminnoilta.
OOP:n edut -
- Se mallintaa todellista maailmaa erittäin hyvin.
- OOP:n avulla ohjelmia on helppo ymmärtää ja ylläpitää.
- OOP tarjoaa koodin uudelleenkäytettävyyden. Jo luotuja luokkia voidaan käyttää uudelleen ilman, että niitä tarvitsee kirjoittaa uudelleen.
- OOP mahdollistaa sellaisten ohjelmien nopean kehittämisen, joissa luokkien rinnakkaiskehitys on mahdollista.
- OOP:n avulla ohjelmia on helpompi testata, hallita ja korjata.
OOP:n haitat -
- OOP:n kanssa luokat ovat joskus yleensä liian yleistettyjä.
- Luokkien väliset suhteet muuttuvat toisinaan pinnallisiksi.
- OOP-suunnittelu on hankalaa ja vaatii asianmukaista tietoa. Myös OOP-ohjelmointia varten on tehtävä oikea suunnittelu ja suunnittelu.
- Ohjelmoidakseen OOP:lla ohjelmoija tarvitsee asianmukaisia taitoja, kuten suunnittelua, ohjelmointia ja ajattelua objektien ja luokkien suhteen jne.