812347A Olio-ohjelmointi, 2015 syksy 2. vsk. III Olioperusteinen ohjelmointi C++:lla
|
|
- Paavo Tuominen
- 7 vuotta sitten
- Katselukertoja:
Transkriptio
1 812347A Olio-ohjelmointi, 2015 syksy 2. vsk III Olioperusteinen ohjelmointi C++:lla
2 Sisältö 1. Johdanto 2. Luokan määrittely ja jäsenten näkyvyys 3. Olion muodostaminen ja tuhoaminen 4. Saanti- ja asetusmetodit 5. Semantiikaltaan epätavalliset luokkien jäsenet 6. Koosteolioista ohjelmointi C++:lla 2
3 III.1 Johdanto Olioperusteinen ohjelmointi kapseloi luokkaan Jäsenmuuttujat eli attribuutit (datan, tilan) Metodit (datan käsittelyn, käyttäytymisen) Luokasta voidaan luoda useita ilmentymiä eli olioita Luokka määrittelee toimenpiteet, joita oliolle voi tehdä Luokkamääritys on täten myös tyyppimääritys ohjelmointi C++:lla 3
4 III.1 Johdanto (2) C++:ssa olio on samanlainen muuttuja kuin sisäisten tyyppien muuttuja Olio voi olla eliniältään 1. Automaattinen: kääntäjä huolehtii sen alustamisesta ja tuhoamisesta 2. Staattinen: määrittelyn jälkeen voimassa koko ohjelman suorituksen ajan 3. Dynaaminen: tuhoaminen on ohjelmoijan vastuulla Olio voidaan määritellä vakioksi lisäämällä oliomääritykseen avainsana const ohjelmointi C++:lla 4
5 III.2. Luokan määrittely ja jäsenten näkyvyys Yleensä erillisessä otsikkotiedostossa Luokkamääritys koostuu kolmesta osasta Avainsanasta class (myös struct tai union) Luokan nimestä Puolipisteeseen päättyvästä lohkosta: class LuokkaNimi { attribuuttien esittely metodien esittely }; // HUOMAA PUOLIPISTE! ohjelmointi C++:lla 5
6 III.2. Luokan määrittely ja jäsenten näkyvyys(2) Luokan sisällä esitellään luokan metodit (funktiot) ja määritellään attribuutit Lyhyet funktiot voi myös määritellä luokassa Luokkaan voidaan määritellä näkyvyydeltään kolmenlaisia jäseniä Julkisia (public) Suojattuja (protected) Yksityisiä (private) Luokka muodostaa samalla nimiavaruuden, joka kätkee jäsenten nimet Saman nimisiä jäseniä voidaan käyttää useassa eri luokassa ohjelmointi C++:lla 6
7 III.2.1 Julkiset jäsenet Julkiset jäsenet muodostavat luokan julkisen rajapinnan, jota kautta olioita voidaan käyttää Voidaan käyttää oliomuuttujan kautta piste- tai nuolinotaation avulla Kuten tietueen tietojäseniä Rajapinnan tulee olla tarpeeksi kattava Ei kuitenkaan liian monimutkainen Määritellään avainsanan public ja kaksoispisteen avulla määrittelylohko, joka on voimassa määrittelyn loppuun tai toisen näkyvyyslohkon määrittelyyn ohjelmointi C++:lla 7
8 III.2.2 Yksityiset jäsenet Voidaan käyttää vain luokan omissa jäsenfunktioissa Ei edes luokan aliluokissa, vaikka jäsenet periytyvätkin niille Suojatut (protected) jäsenet näkyvät aliluokissa, eivät luokkahierarkian ulkopuolella Määritellään avainsanan private ja kaksoispisteen avulla määrittelylohko, joka on voimassa määrittelyn loppuun tai toisen näkyvyyslohkon määrittelyyn Oletusnäkyvyys kun luokka on määritelty avainsanalla class ohjelmointi C++:lla 8
9 III.2.3 Jäsenmuuttujat ja jäsenfunktiot Jäsenmuuttuja on luokkaan määritelty muuttuja Kutsutaan myös attribuutiksi Attribuutit ovat kaikkien jäsenfunktioiden käytettävissä kuten funktioiden paikalliset muuttujat Hyvässä suunnittelutavassa luokissa ei yleensä määritellä julkisia attribuutteja Hyvin vähän suojattuja attribuutteja ohjelmointi C++:lla 9
10 III.2.3 Jäsenmuuttujat ja jäsenfunktiot (2) Jäsenfunktio on luokkaan määritelty funktio Sanotaan myös metodiksi Funktion koko nimi koostuu Luokan nimestä Näkyvyysoperaattorista (kahdesta kaksoispisteestä) Funktion nimestä Julkista jäsenfunktiota kutsutaan oliomuuttujan kautta, joko piste- tai nuolinotaation avulla ohjelmointi C++:lla 10
11 III.2.3 Jäsenmuuttujat ja jäsenfunktiot (3) this osoitin osoittaa käsiteltävään olioon Automaattisesti olemassa Sen tyyppi on Luokan_nimi* const this Välitetään näkymättömänä parametrina metodeille Käytetään enimmäkseen metodin paluuarvona Jos jäsenfunktiossa käytetään luokan attribuutin nimistä muuttujaa peittää jäsenfunktion paikallinen muuttuja attribuutin Tällöin attribuuttia käytetään this -osoittimen kautta ohjelmointi C++:lla 11
12 Esimerkki: Luokan määritys // Koodi: Ika.h #ifndef INCLUDED_IKA_H #define INCLUDED_IKA_H Luokkakaavio class Ika { public: long annaikapaivissa(); void asetaikapaivissa(long p); private: long paivia; }; #endif ohjelmointi C++:lla 12
13 Esimerkki: Metodien määritys // Ika.cpp #include Ika.h void Ika::asetaIkaPaivissa(long p) { paivia = p; } long Ika::annaIkaPaivissa() { return paivia; } ohjelmointi C++:lla 13
14 III.3 Olion muodostaminen ja tuhoaminen III.3.1 Muodostin eli konstruktori Luokan jäsenfunktio jolla ei ole paluuarvotyyppiä (ei edes void) jonka nimi on sama kuin luokan nimi Muodostimen avulla alustetaan olion attribuutit oliota luotaessa Kutsutaan automaattisesti olion luonnin yhteydessä Kutsun jälkeen olio on käyttökelpoinen ja ehjä Voi aiheuttaa poikkeuksen, jolloin oliota ei luoda ohjelmointi C++:lla 14
15 III.3.2 Oletusmuodostin Muodostin, jota voidaan kutsua ilman parametreja Muodostin, jolla ei ole parametreja tai kaikille parametreille on annettu oletusarvo Luokalla voi olla kerrallaan vain yksi oletusmuodostin Ellei ohjelmoija tee lainkaan muodostimia, kääntäjä generoi oletusmuodostimen Kääntäjän luoma oletusmuodostin ei tee mitään Tarvitaan yleensä luokassa ohjelmointi C++:lla 15
16 III.3.3 Alustuslista Muodostimen määrittelyyn voidaan liittää alustuslista Tällöin attribuuttien arvot asetetaan niiden määrittelyiden yhteydessä Sijoitetaan muodostimen parametriluettelon jälkeen ennen sen runkoa Alkaa kaksoispisteellä ja sisältää pilkulla erotettuna attribuutit, joiden alkuarvoksi tulee attribuutin yhteydessä olevien sulkeiden sisällä oleva arvo Alustuslistaa tarvitaan kun alustettava attribuutti on vakio, kun attribuutin tyyppi on viittaustyyppinen, yliluokkien alustamisen yhteydessä. ohjelmointi C++:lla 16
17 Esimerkki: Muodostimien esittely class Ika { public: Ika(); Ika(long paivia); Ika(const PaivaMaara&, const PaivaMaara&); void asetaikapaivissa(long paivia); long annaikapaivissa(); private: long paivia; }; ohjelmointi C++:lla 17
18 Esimerkki: Muodostimien määrittely ja alustuslista #include Ika.h Ika::Ika() { // Oletustoimenpiteet } Ika::Ika(long p) : paivia(p) // Alustuslista { } Ika::Ika(const PaivaMaara& nyt, const PaivaMaara& syntymapaiva){ // Laske päivien lukumäärä } ohjelmointi C++:lla 18
19 III.3.4 Kopiointimuodostin Kopiointimuodostimen avulla saman tyyppisestä oliosta alustetaan uusi olio Ilman eksplisiittistä kopiointimuodostinta kääntäjä tekee automaattisesti sellaisen tarvittaessa Kopioi jokaisen attribuutin yksi kerrallaan Jos kääntäjän tekemä kopiointimuodostin ei ole semanttisesti järkevä joudutaan laatimaan itse Tarvitaan varsinkin jos attribuutit ovat osoitintyyppisiä Muotoa Luokka::Luokka(const Luokka&); ohjelmointi C++:lla 19
20 III.3.5 Sijoitusoperaattori Kopiointimuodostimen pari Jos kopiointimuodostin tai sijoitusoperaattori on määritelty pitää yleensä toinenkin määritellä Muotoa Luokka& operator=(const Luokka&); ohjelmointi C++:lla 20
21 Esimerkki: Sijoitusoperaattori // Piste.h class Piste { private: double x_coord; double y_coord; public: Piste(double x,double y); Piste(const Piste& p); Piste& operator=(const Piste& p); }; ohjelmointi C++:lla 21
22 Esimerkki: Sijoitusoperaattori (2) #include Piste.h Piste::Piste(double x, double y):x_coord(x),y_coord(y){} Piste::Piste(const Piste& p){ x_coord = p.x_coord; y_coord = p.y_coord; } Piste& Piste::operator=(const Piste& p){ if(this == &p) return *this; x_coord = p.x_coord; y_coord = p.y_coord; return *this; } ohjelmointi C++:lla 22
23 III.3.6 Olion muodostamisen estäminen Jossakin tilanteessa olioiden suora muodostaminen ei ole mielekästä Olioiden muodostaminen voidaan estää määrittelemällä muodostimet yksityisiksi jäseniksi Muodostaminen suoraan aiheuttaa käännösaikaisen virheilmoituksen Kopioiden tekeminen voidaan estää esittelemällä yksityinen kopiomuodostin ja sijoitusoperaattori, mutta jättämällä määrittelemättä Tällöin kääntäjä ei tee oletustoteutusta niille ja käyttäminen aiheuttaa käännösaikaisen virheilmoituksen ohjelmointi C++:lla 23
24 III.3.7 Olion tuhoaminen: Hajotin Jäsenfunktio, jota kutsutaan automaattisesti kun olio tuhotaan Hajottimen nimi koostuu merkistä ~ ja luokan nimestä Ei tyyppiä, ei parametreja Luokassa voi olla vain yksi hajotin Hajottimen käyttötarkoitus: vapautetaan resurssit, jotka otettiin käyttöön oliota luotaessa Hajottimen jälkeen kutsutaan kunkin attribuutin hajotinta käänteisessä järjestyksessä Huom: Jos attribuutti on osoitintyyppinen sen hajotin tuhoaa vain osoittimen, ei sen osoittamaa muistia Hajotin EI SAA KOSKAAN aiheuttaa poikkeusta ohjelmointi C++:lla 24
25 III.3.8 Dynaamisesta muistinhallinnasta Tarkoittaa kekodynaamisen muistin käyttöä Varaaminen kekomuistista/vapauttaminen operaattoreilla new/delete new palauttaa osoittimen varattuun muistiin -> paluuarvo tietotyypiltään osoitin varattavan olion tai muuttujan tyyppiin new: kutsutaan automaattisesti tyypin muodostinta delete : kutsutaan automaattisesti tyypin hajotinta Olio* obj = new Olio(); //... sometime later: delete obj; ohjelmointi C++:lla 25
26 III Dynaamiset taulukot Perustietotyypin taulukot: double *lukutaulu; // Osoitin taulukon 1. alkioon lukutaulu = new double[100]; // Taulukon varaaminen lukutaulu[10] = 1.0; // Taulukkoon sijoittaminen delete[] lukutaulu // Taulukon tuhoaminen Oliotaulukot: Oliot luodaan samalla kuin taulukkokin Luokalla oltava oletusmuodostin MyType * array = new MyType[100]; //... delete [] array; ohjelmointi C++:lla 26
27 III.4 Saanti- ja asetusmetodit Jäsenmuuttujat tavallisesti private-tyyppisiä, jotta olion tilaa ei voi vahingossa sotkea -> Jäsenmuuttujien arvoja ei voi suoraan lukea tai muuttaa HUOM! Public-tyyppisiä jäsenmuuttujia käytettävä vain erityisissä tilanteissa! Mikäli jäsenmuuttujan arvoa tarvitaan luokan ulkopuolella, kirjoitettava julkinen saantimetodi (getter), joka palauttaa muuttujan arvon Mikäli jäsenmuuttujan arvoa muutettava luokan ulkopuolelta, kirjoitettava julkinen asetusmetodi (setter), joka asettaa muuttujan arvon ja valvoo että sijoitus on laillinen ohjelmointi C++:lla 27
28 III.5 Semantiikaltaan epätavalliset luokkien jäsenet Luokkiin voi määritellä seuraavan laisia tietojäseniä, joiden semantiikka on erilainen kuin normaalien tietojäsenten: 1. Vakiojäsenet 2. Viittausattribuutit 3. Luokkajäsenet 4. Vakiomuotoiset luokka-attribuutit ohjelmointi C++:lla 28
29 III Vakiomuotoiset attribuutit Luokan attribuutteja joita ei voi muuttaa määrittelyn jälkeen Alustettava muodostimen alustuslistassa Määritellään lisäämällä attribuutin tyypin eteen constavainsana ohjelmointi C++:lla 29
30 III Vakiomuotoiset metodit Metodeja, jotka eivät voi muuttaa olion tilaa (attribuuttien arvoja) Voidaan kutsua olioille, jotka ovat vakio-olioita Vakiomuotoisuus kuuluu jäsenfunktion tyyppiin Voidaan siis ylikuormittaa funktio sekä normaaliksi että vakiomuotoiseksi Vakiomuotoinen jäsenfunktio esitellään ja määritellään lisäämällä parametriluettelon perään avainsana const Vakiometodin this-osoitin muotoa const TYYPPI* ohjelmointi C++:lla 30
31 III.5.2 Viittausmuotoiset attribuutit Alustettava aina muodostimessa Alustamisen tapahduttava alustuslistassa Alustuslistan ulkopuolella muutetaan aina viittausattribuutin kohteen arvoa Ei siis viittausattribuutin arvoa ohjelmointi C++:lla 31
32 III.5.3 Luokkajäsenet Kaikille luokan olioille yhteisiä jäseniä Määritellään C++:ssa avainsanalla static Luokkajäseniin voidaan viitata suoraan ilman oliota luokan nimellä Luokka::jäsen Näkyvyyssäännöt koskevat myös luokkajäseniä, esimerkiksi yksityisiä luokkajäseniä voidaan käyttää vain luokan metodeissa Luokkametodia kutsuttaessa ei tarvita luokasta oliota Luokkametodi voi viitata vain luokan toisiin luokkajäseniin Luokka-attribuutteihin Luokkametodeihin ohjelmointi C++:lla 32
33 III.6 Koosteolioista Olio voi koostua muista olioista Olioiden välillä koostumussuhde Muista olioista koostuva olio on koosteolio Koosteolioon sisältyvä olio on osaolio Jos luokka käyttää toista luokkaa hyväkseen, se käyttää hyväkseen luokan tarjoamia palveluja eli delegoi Oletusarvoisesti käyttää vain julkista rajapintaa Delegointi mallintaa HAS-A suhteen ohjelmointi C++:lla 33
34 III.6 Koosteolioista (2) Koostamisessa on mahdollista sisällyttää monta tietyn luokan oliota Periytymisessä vain yksi olio Koosteolio toteutetaan määrittelemällä osaolio attribuuttina muuttujatyyppisenä, viittaustyyppisenä tai osoitintyyppisenä ohjelmointi C++:lla 34
35 III.6.1 Olio muuttujatyyppisenä attribuuttina Koosteolion ja olioattribuutin elinikä yhtä pitkät Koosteolion määrittelyn tilanvarauksessa luodaan samaan tilaan myös olioattribuutti Kun koosteolion olemassaolo lakkaa, lakkaa myös olioattribuutin olemassaolo. class OsaLuokka { public: private: }; class KoosteLuokka{ public: private: OsaLuokka osa; }; ohjelmointi C++:lla 35
36 Olio muuttujatyyppisenä attribuuttina : Esimerkki Luokkakaavio ohjelmointi C++:lla 36
37 Olio muuttujatyyppisenä attribuuttina : Esimerkki (2) class Henkilo { private: std::string etunimi; std::string sukunimi; std::string sotu; public: Henkilo(std::string en, std::string sn, std::string stu); ~Henkilo(){}; }; class Kirja{ private: std::string nimi; Henkilo tekija; std::string isbn; public: void print(std::ostream &os) const; Kirja(std::string n, const Henkilo &h, std::string isb); ~Kirja(){}; }; ohjelmointi C++:lla 37
38 Olio muuttujatyyppisenä attribuuttina: Esimerkki (3) Kirja::Kirja(std::string n, const Henkilo &h,std::string isb): nimi(n),tekija(h),isbn(isb) {} void Kirja::print(std::ostream &os) const { os << tekija.getetunimi() << " " << tekija.getsukunimi() <<":"<< std::endl; os << nimi << std::endl; os << "ISBN: " << isbn; } ohjelmointi C++:lla 38
39 III.6.2 Olio dynaamisena attribuuttina Voidaan toteuttaa myös löyhä sidos tai luokkien välinen assosiaatio Samaan osaolioon voi olla viittaus tai osoitin monesta koosteoliosta Osaoliota ei saa tuhota ennen kuin kaikki viittaukset poistuneet Yleensä toteutetaan jokin dynaaminen ominaisuus Voidaan vaihtaa olion olemassaolon aikana ohjelmointi C++:lla 39
40 Olio dynaamisena attribuuttina: Esimerkki class Kurssi { private: std::string nimi; Henkilo* popettaja; // Dynaaminen attribuutti int pisteet; }; public: void print(std::ostream &os) const; Kurssi(std::string n,const Henkilo &ope, int credits); Kurssi(const Kurssi &k); Kurssi& operator=(const Kurssi& k); ~Kurssi(); ohjelmointi C++:lla 40
41 Olio dynaamisena attribuuttina: Esimerkki (2) Konstruktori ja destruktori Kurssi::Kurssi(std::string n, const Henkilo &ope, int credits): nimi(n),pisteet(credits){ popettaja = new Henkilo(ope); } Kurssi::~Kurssi(){ if (popettaja!= 0) delete popettaja; } ohjelmointi C++:lla 41
42 Olio dynaamisena attribuuttina: Esimerkki (3) Kopiomuodostin ja sijoitusoperaattori Kurssi::Kurssi( const Kurssi &k){ nimi = k.nimi; pisteet = k.pisteet; Kurssi& Kurssi:: operator=(const Kurssi& k){ if (this == &k) return *this; if(k.popettaja!= 0) popettaja = new Henkilo(*(k.pOpettaja)); else popettaja = 0; } } nimi = k.nimi; pisteet = k.pisteet; if(popettaja!= 0) delete popettaja; popettaja = new Henkilo(*(k.pOpettaja)); return *this; ohjelmointi C++:lla 42
Olio-ohjelmointi Olioperusteinen ohjelmointi C++-kielellä. 1. Johdanto
Olio-ohjelmointi Olioperusteinen ohjelmointi C++-kielellä Tässä osassa käsitellään olioperusteista (object-based) ohjelmointia, ts. olio-ohjelmointia ilman periytymisen hyödyntämistä. Olio-ohjelmoinnin
LisätiedotLuokassa määriteltävät jäsenet ovat pääasiassa tietojäseniä tai aliohjelmajäseniä. Luokan määrittelyyn liittyvät varatut sanat:
1. Luokan jäsenet Luokassa määriteltävät jäsenet ovat pääasiassa tietojäseniä tai aliohjelmajäseniä. Luokan määrittelyyn liittyvät varatut sanat: class luokan_nimi tyypit: enum, struct, class, typedef
LisätiedotA) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys)
1(37) PERIYTYMINEN (inheritance) YLILUOKKA (superclass) ALILUOKKA (subclass) A) on käytännöllinen ohjelmointitekniikka = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys) B) on käsitteiden
LisätiedotT Olio-ohjelmointi Osa 3: Luokka, muodostin ja hajotin, this-osoitin Jukka Jauhiainen OAMK Tekniikan yksikkö 2010
11. Luokka Opetellaan seuraavaksi, miten omia luokkia kirjoitetaan. Aikaisemmin olikin jo esillä, että luokka on tietorakenne, joka sisältää sekä tiedot (attribuutit) että niitä käsittelevät aliohjelmat
LisätiedotOsion kaksi kertaus. Jukka Juslin. Jukka Juslin
Osion kaksi kertaus Jukka Juslin Sisältö Taulukot ja Stringit Luokkien kirjoittaminen Oletusmuodostin UML Taulukot Taulukot luodaan Java-kielessä seuraavanlaisesti: int [] arvosanat = {1,2,3,4,5}; Taulukon
Lisätiedot815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.
LisätiedotLuokan muodostimet (Constructors)
Mikä on muodostin? Luokan muodostimet (Constructors) Millaisia muodostimia on? Oletusmuodostin (Default Constructor) Parametrillinen muodostin Kopiointimuodostin (Copy Constructor) this-muuttuja Miten
LisätiedotUML -mallinnus LUOKKAKAAVIO EERO NOUSIAINEN
UML -mallinnus LUOKKAKAAVIO EERO NOUSIAINEN SISÄLLYS 3. Luokkakaavio UML -mallinnuskielessä 3.1 Luokkakaavion luokan rakenteet 3.2 Luokan kuvauksesta C++ ohjelmakoodiksi 3.3 Luokkakaavion luokkien yhteystyypit
Lisätiedot5 Olio-ohjelmointi 133
5 Olio-ohjelmointi 133 5. Olio-ohjelmointi Edellisissä luvuissa opittiin kirjoittamaan ohjelmia, joissa käytetään C# -kielen perustietotyyppejä, kuten int, double, float ja rakenteita, kuten operaattoreita,
LisätiedotOlio-ohjelmointi Syntaksikokoelma
C++-kielen uusia ominaisuuksia Olio-ohjelmointi Syntaksikokoelma 31.10.2008 Bool-tietotyyppi: Totuusarvo true (1), jos ehto on tosi ja false (0) jos ehto epätosi. Dynaaminen muistinvaraus: Yhden muuttuja
Lisätiedoton ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä
LUOKAN MÄÄRITTELY Luokka, mitä se sisältää Luokan määrittely Olion ominaisuudet eli attribuutit Olion metodit Olion muodostimet ja luonti Olion tuhoutuminen Metodin kutsu luokan ulkopuolelta Olion kopioiminen
LisätiedotUML ja luokkien väliset suhteet
UML ja luokkien väliset suhteet -Luokan kuvaaminen UML-tekniikalla -Yhteyssuhde ja koostumussuhde 1 Luokan kuvaaminen UML-tekniikalla : Luokka - attribuutti1 : tietotyyppi # attribuutti2 : tietotyyppi
LisätiedotOlion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();
Sisällys 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden käsittelyä: sijoitus, vertailu ja varautuminen null-arvoon. Viite metodin paluuarvona.. 7.1 7.2 Olio
LisätiedotT740103 Olio-ohjelmointi Osa 5: Periytyminen ja polymorfismi Jukka Jauhiainen OAMK Tekniikan yksikkö 2010
12. Periytyminen Johdantoa Käytännössä vähänkään laajemmissa ohjelmissa joudutaan laatimaan useita luokkia, joiden pitäisi pystyä välittämään tietoa toisilleen. Ohjelmien ylläpidon kannalta olisi lisäksi
LisätiedotMallit standardi mallikirjasto parametroitu tyyppi
Mallit 18 Mallit Malli on tehokas mekanismi uusien luokkien generoimiseksi automaattisesti. Standardikirjaston suuri osa, standardi mallikirjasto, rakentuu kokonaan mallien määrittelymahdollisuuden ympärille,
LisätiedotKompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma
1 Kompositio Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä kompositio on? Tili - : String - : double 1 1 Kayttoraja
LisätiedotSisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2
4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä
LisätiedotSisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen
Sisällys 6. Metodit Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit).. Metodien ja muun luokan sisällön järjestäminen. 6.1 6.2 Oliot viestivät metodeja kutsuen Oliot viestivät
LisätiedotOhjelmointi 2. Jussi Pohjolainen. TAMK» Tieto- ja viestintäteknologia , Jussi Pohjolainen TAMPEREEN AMMATTIKORKEAKOULU
Ohjelmointi 2 Jussi Pohjolainen TAMK» Tieto- ja viestintäteknologia Tietotyypeistä C++ - kielessä useita tietotyyppejä Kirjaimet: char, wchar_t Kokonaisluvut: short, int, long Liukuluvut: float, double
LisätiedotOperaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta
C++ - perusteet Java-osaajille luento 5/7: operaattoreiden ylikuormitus, oliotaulukko, parametrien oletusarvot, komentoriviparametrit, constant, inline, Operaattoreiden ylikuormitus Operaattoreiden kuormitus
Lisätiedot12 Mallit (Templates)
12 Mallit (Templates) Malli on määrittely, jota käyttämällä voidaan luoda samankaltaisten aliohjelmien ja luokkien perheitä. Malli on ohje kääntäjälle luoda geneerisestä tyyppiriippumattomasta ohjelmakoodista
LisätiedotSisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2
4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä muuttujia ja vakioita. Esittely
LisätiedotString-vertailusta ja Scannerin käytöstä (1/2) String-vertailusta ja Scannerin käytöstä (2/2) Luentoesimerkki 4.1
String-vertailusta ja Scannerin käytöstä (1/2) Vertailuja tehdessä törmätään usein tilanteeseen, jossa merkkijonoa (esimerkiksi merkkijonomuuttujaa) pitää vertailla toiseen merkkijonoon. Tällöin tavanomainen
LisätiedotOliot viestivät metodeja kutsuen
6. Metodit 6.1 Sisällys Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit). Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2 Oliot viestivät metodeja kutsuen
LisätiedotLuokat. Luokat ja olio-ohjelmointi
Luokat 12 Luokat Tässä luvussa laajennamme edellisessä luvussa käsittelemäämme struktuurityyppiä ja siirrymme yhteen C++-ohjelmoijan kaikkein tärkeimmistä välineistä: luokkiin. Käsittelemme myöskin joitakin
LisätiedotOpintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet Pakkaukset ja määreet Toisiinsa liittyvät luokkatiedostot voidaan koota pakkauksiksi. Luo hierarkiaa ja järjestystä ohjelmistotuotteeseen.
Lisätiedotpublic static void main (String [] args)
HAAGA-HELIA OHJELMOINTI 1(5) OHJELMALUOKKA Ohjelma-luokan käynnistää public static void main (String [] args) main-metodiin voi koodata 1. ohjelman logiikan tai 2. luoda ohjelma-olion ja kutsua metodia,
LisätiedotYHTEYSSUHDE (assosiation)
YHTEYSSUHDE (assosiation) -Mikä on yhteyssuhde? -Miten toteutan yhteyssuhteen? 1 Mikä on yhteyssuhde? Yhteyssuhde kuvaa kahden olion välistä suhdetta: Esim. Auto Henkilö, omistussuhde Tili Asiakas, omistussuhde
LisätiedotOlio-ohjelmointi Javalla
1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi
Lisätiedot7. Oliot ja viitteet 7.1
7. Oliot ja viitteet 7.1 Sisällys Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden sijoitus. Viitteiden vertailu. Varautuminen null-arvoon. Viite metodin paluuarvona. Viite metodin
LisätiedotTietueet. Tietueiden määrittely
Tietueet Tietueiden määrittely Tietue on tietorakenne, joka kokoaa yhteen eri tyyppistä tietoa yhdeksi asiakokonaisuudeksi. Tähän kokonaisuuteen voidaan viitata yhteisellä nimellä. Auttaa ohjelmoijaa järjestelemään
LisätiedotJavan perusteita. Janne Käki
Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).
LisätiedotOsoitin ja viittaus C++:ssa
Osoitin ja viittaus C++:ssa Osoitin yksinkertaiseen tietotyyppiin Osoitin on muuttuja, joka sisältää jonkin toisen samantyyppisen muuttujan osoitteen. Ohessa on esimerkkiohjelma, jossa määritellään kokonaislukumuuttuja
LisätiedotJAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?
JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,
LisätiedotSisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2
6. Metodit 6.1 Sisällys Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2 Oliot viestivät metodeja kutsuen Olio-ohjelmoinnissa ohjelma
LisätiedotUNIVERSITY OF OULU DEPARTMENT OF INFORMATION PROCESSING SCIENCE
1 UNIVERSITY OF OULU DEPARTMENT OF INFORMATION PROCESSING SCIENCE OPETUSMONISTEET SARJA C11 JUUSTILA ANTTI KETTUNEN HARRI KILPI TEEMU RÄISÄNEN TONI VESANEN ARI C++- OHJELMOINTIKURSSIN OHEISMATERIAALI ISBN
LisätiedotOsa III. Olioiden luominen vapaalle muistialueelle
Osa III 10. oppitunti Kehittyneet osoittimet Eräs tehokkaimpia C++ -työkaluja on mahdollisuus käsitellä tietokoneen muistia suoraan osoittimien avulla. Tässä luvussa käsitelläänkin seuraavia aiheita: Kuinka
LisätiedotMikä yhteyssuhde on?
1 Yhteyssuhde Mikä yhteyssuhde on? Yhteyssuhde Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä yhteyssuhde on? Tili - : String - : double * 1 Asiakas - hetu: String - : String
Lisätiedot9. Periytyminen Javassa 9.1
9. Periytyminen Javassa 9.1 Sisällys Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Ilmentymämetodien korvaaminen. Luokkametodien peittäminen. Super-attribuutti. Override-annotaatio.
Lisätiedot812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IV Periytyminen ja monimuotoisuus
812347A Olio-ohjelmointi, 2015 syksy 2. vsk IV Periytyminen ja monimuotoisuus Sisältö 1. Periytyminen 2. Johdanto monimuotoisuuteen 3. Ylikuormittaminen 4. Uudelleenmäärittely 5. Muuttujien monimuotoisuus
Lisätiedot4. Luokan testaus ja käyttö olion kautta 4.1
4. Luokan testaus ja käyttö olion kautta 4.1 Olion luominen luokasta Java-kielessä olio määritellään joko luokan edustajaksi tai taulukoksi. Olio on joukko keskusmuistissa olevia tietoja. Oliota käsitellään
LisätiedotC++11 Syntaksi. Jari-Pekka Voutilainen Jari-Pekka Voutilainen: C++11 Syntaksi
1 C++11 Syntaksi Jari-Pekka Voutilainen 13.4.2012 2 Range-for Iteroi säiliön kaikki alkiot for-silmukassa. Säiliöltä vaaditaan begin- ja end-iteraattorit. Pätee kaikille C++11 STL-säiliöille, taulukoille,
LisätiedotTaulukot. Jukka Harju, Jukka Juslin 2006 1
Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti
LisätiedotVahva koostumussuhde (Composition)
Vahva koostumussuhde (Composition) - Mitä vahva koostumsusuhde tarkoittaa? - Vahva koostumussuhde vs. yhteyssuhde - Miten toteutan vahvan koostumussuhteen? - Muodostimet - Set ja get-metodit - tostring-metodi
LisätiedotOhjelmointikielet ja -paradigmat 5op. Markus Norrena
Ohjelmointikielet ja -paradigmat 5op Markus Norrena Ko#tehtävä 4 Viimeistele "alkeellinen kuvagalleria". Käytännössä kaksi sivua Yksi jolla voi ladata kuvia palvelimelle (file upload) Toinen jolla ladattuja
LisätiedotOpintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Opintojakso TT00AA11 Ohjelmoinnin jatko (Java) Tavoite Opiskelija ymmärtää olio-ohjelmoinnin problematiikan. Opiskelija osaa määritellä ja käyttää itse
LisätiedotOpintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Taulukot: Array Taulukko Javassa pitää aina perustaa (new) Yksinkertaisessa tilanteessa taulukon koko tiedetään etukäteen ja
Lisätiedot812336A C++ -kielen perusteet, 21.8.2010
812336A C++ -kielen perusteet, 21.8.2010 1. Vastaa lyhyesti seuraaviin kysymyksiin (1p kaikista): a) Mitä tarkoittaa funktion ylikuormittaminen (overloading)? b) Mitä tarkoittaa jäsenfunktion ylimääritys
LisätiedotRakenteiset tietotyypit Moniulotteiset taulukot
C! Rakenteiset tietotyypit Moniulotteiset taulukot 22.2.2018 Agenda Rakenteiset tietotyypit Vilkaisu 6. kierroksen tehtäviin Moniulotteiset taulukot Esimerkki Seuraava luento to 8.3. Ilmoittautuminen ohjelmointikokeeseen
LisätiedotVirtuaalifunktiot ja polymorfismi
Virtuaalifunktiot ja polymorfismi 16 Virtuaalifunktiot ja polymorfismi Polymorfismi on niin tehokas olio-ohjelmoinnin ominaisuus, että tulet varmastikin käyttämään sitä lähes kaikissa C++-ohjelmissasi.
LisätiedotJava kahdessa tunnissa. Jyry Suvilehto
Java kahdessa tunnissa Jyry Suvilehto Ohjelma Ohjelmointiasioita alkeista nippelitietoon n. 45 min Tauko 10 min Oliot, luokat ja muut kummajaiset n. 45 min Kysykää Sisältöä ei oikeasti ole 2x45 min täytteeksi,
Lisätiedot815338A Ohjelmointikielten periaatteet
815338A Ohjelmointikielten periaatteet 2015-2016 V Abstraktit tietotyypit ja olioohjelmointi Sisältö I. Abstraktit tietotyypit II. 1. Johdatus abstrakteihin tietotyyppeihin 2. Abstraktit tietotyypit Adassa
LisätiedotC++ rautaisannos. Kolme tapaa sanoa, että tulostukseen käytetään standardikirjaston iostreamosassa määriteltyä, nimiavaruuden std oliota cout:
C++ rautaisannos Kolme tapaa sanoa, että tulostukseen käytetään standardikirjaston iostreamosassa määriteltyä, nimiavaruuden std oliota cout: # include #include main ( ) main (
LisätiedotMetodien tekeminen Javalla
1 Metodien tekeminen Javalla Mikä metodi on? Metodin syntaksi Metodi ja sen kutsuminen Parametreista Merkkijonot ja metodi Taulukot ja metodi 1 Mikä metodi on? Metodilla toteutetaan luokkaan toiminnallisuutta.
LisätiedotOhjelman virheet ja poikkeusten käsittely
Ohjelman virheet ja poikkeusten käsittely 17 Ohjelman virheet ja poikkeusten käsittely Poikkeukset ovat tapa ilmoittaa virheistä ja odottamattomista tilanteista C++-ohjelmassasi. Poikkeusten käyttö virheiden
LisätiedotSisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä
Sisälls 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen.. Viitteiden vertailu. Varautuminen null-arvoon. Viite metodin paluuarvona.. Muuttumattomat ja muuttuvat merkkijonot.
Lisätiedot9. Periytyminen Javassa 9.1
9. Periytyminen Javassa 9.1 Sisällys Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Metodien korvaaminen ja super-attribuutti. Attribuutin peittäminen periytymisen kautta. Rakentajat
Lisätiedot14. oppitunti. Operaattorin ylikuormitus. Osa. Operaattorin ylikuormittaminen
Osa IV 14. oppitunti Operaattorin ylikuormitus Edellisessä luvussa opit ylikuormittamaan metodeita ja luomaan kopiomuodostimen, joka tekee syvän kopion. Tässä luvussa käsitellään seuraavia aiheita: Kuinka
Lisätiedot11. oppitunti III. Viittaukset. Osa. Mikä on viittaus?
Osa III 11. oppitunti Viittaukset Kahdessa viime luvussa opit käyttämään osoittimia kohteiden käsittelyyn vapaalla muistialueella sekä viittaamaan noihin kohteisiin epäsuorasti. Tässä luvussa käsiteltävät
Lisätiedot812347A Olio-ohjelmointi, 2015 syksy 2. vsk. X Poikkeusten käsittelystä
812347A Olio-ohjelmointi, 2015 syksy 2. vsk X Poikkeusten käsittelystä Sisältö 1. Yleistä poikkeusten käsittelystä 2. Poikkeuskäsittelyn perusteita C++:ssa 3. Standardissa määritellyt poikkeukset 4. Poikkeusvarmuus
Lisätiedot812341A Olio-ohjelmointi Peruskäsitteet jatkoa
812341A Olio-ohjelmointi 2106 Peruskäsitteet jatkoa Luokkakohtaiset piirteet n Yhteisiä kaikille saman luokan olioille n Liittyvät luokkaan, eivät yksittäiseen olioon n Kaikki ko. luokan oliot voivat käyttää
LisätiedotSisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista
Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma
LisätiedotPeriytyminen (inheritance)
1 Periytyminen (inheritance) Mitä periytyminen on? Yli- ja aliluokka Konstruktorit Get- ja set-metodi Muut metodit tostring Yksinkertainen pääohjelma 1 Mitä periytyminen on? Periytymisen avulla olemassa
LisätiedotSisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä
Sisällys 9. Periytyminen Javassa Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Metodien korvaaminen ja super-attribuutti. Attribuutin peittäminen periytymisen kautta. Rakentajat
Lisätiedot1. Omat operaatiot 1.1
1. Omat operaatiot 1.1 Sisällys Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma
LisätiedotKooste. Esim. Ympyrän keskipiste voidaan ajatella ympyrän osaksi.
17. Kooste 17.1 Kooste Kooste (aggregation) on luokkien A ja B välinen suhde, joka tarkoittaa A on B:n osa tai A kuuluu B:hen. Koostesuhteessa olevat luokat eivät yleensä ole periytymissuhteessa. Kooste
Lisätiedot815338A Ohjelmointikielten periaatteet 2014-2015
815338A Ohjelmointikielten periaatteet 2014-2015 X Skriptiohjelmointi Sisältö 1. Johdanto 2. Skriptikielten yleispiirteitä 3. Python 815338A Ohjelmointikielten periaatteet, Skriptiohjelmointi 2 X.1 Johdanto
LisätiedotMetodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen
Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus
LisätiedotSisällys. JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys. Luokkahierarkia. Periytyminen (inheritance)
Sisällys JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys Periytyminen (inheritance) Näkyvyys (visibility) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E. Hyvönen: Java Osa
Lisätiedot14. Poikkeukset 14.1
14. Poikkeukset 14.1 Sisällys Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.
LisätiedotSisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Ta
22. Taulukot 22.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.2 Yleistä
LisätiedotKOHDELUOKAN MÄÄRITTELY
KOHDELUOKAN MÄÄRITTELY Kohdeluokka, mitä se sisältää Luokan määrittely Olion ominaisuudet eli attribuutit Olion metodit Olion luonti Olion tuhoutuminen Metodin kutsu luokan ulkopuolelta Taulukon alkiona
LisätiedotITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 22. huhtikuuta 2016 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille! Kirjoittamasi luokat, funktiot ja aliohjelmat
Lisätiedot1 Tehtävän kuvaus ja analysointi
Olio-ohjelmoinnin harjoitustyön dokumentti Jyri Lehtonen (72039) Taneli Tuovinen (67160) 1 Tehtävän kuvaus ja analysointi 1.1 Tehtävänanto Tee luokka, jolla mallinnetaan sarjaan kytkettyjä kondensaattoreita.
LisätiedotListarakenne (ArrayList-luokka)
Listarakenne (ArrayList-luokka) Mikä on lista? Listan määrittely ArrayList-luokan metodeita Listan läpikäynti Listan läpikäynti indeksin avulla Listan läpikäynti iteraattorin avulla Listaan lisääminen
LisätiedotOpintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat Rajapinnat Java-kieli ei tue luokkien moniperintää. Jokaisella luokalla voi olla vain yksi välitön yliluokka. Toisinaan olisi
Lisätiedot1. Olio-ohjelmointi 1.1
1. Olio-ohjelmointi 1.1 Sisällys Olio-ohjelmointi on eräs ohjelmointiparadigma. Olio-ohjelmoinnin muotoja. Ohjelmiston analyysi ja suunnittelu. Olioparadigman etuja ja kritiikkiä. 1.2 Ohjelmointiparadigmoja
LisätiedotSisältö. 2. Taulukot. Yleistä. Yleistä
Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä
Lisätiedot812347A Olio-ohjelmointi, 2015 syksy 2. vsk. V Geneerisyys
812347A Olio-ohjelmointi, 2015 syksy 2. vsk V Geneerisyys Sisältö 1. Johdanto geneerisyyteen 2. Geneeriset funktiot 3. Geneeriset luokat 4. Standard Template Library (STL) 5. IOStream-kirjasto 812347A
LisätiedotOlio-ohjelmointi Suunnittelumallit Adapter ja Composite. 1. Adapter
Olio-ohjelmointi Suunnittelumallit Adapter ja Composite Rakennemalleissa päähuomio kohdistetaan siihen, miten luokkia ja olioita yhdistellään muodostamaan laajempia rakenteita. Rakenteelliset luokkamallit
LisätiedotTässä dokumentissa kuvataan Keimo-projektissa sovellettavia ohjelmointikäytäntöjä. Päivämäärä 10.11.2002 Projektiryhmä Keimo keimo-dev@list.hut.
T-76.115 Tietojenkäsittelyopin ohjelmatyö Sisältö Tässä dokumentissa kuvataan Keimo-projektissa sovellettavia ohjelmointikäytäntöjä. Päivämäärä 10.11.2002 Projektiryhmä Keimo keimo-dev@list.hut.fi Kirjoittajat
LisätiedotGeneeriset luokat. C++ - perusteet Java-osaajille luento 6/7: Template, tyyppi-informaatio, nimiavaruudet. Geneerisen luokan käyttö.
Geneeriset luokat C++ - perusteet Java-osaajille luento 6/7: Template, tyyppi-informaatio, nimiavaruudet Geneerinen luokka tarkoittaa parametroitua luokkamallia, jonka avulla voidaan muodostaa useita,
Lisätiedot812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VII Suunnittelumallit Adapter ja Composite
2015 syksy 2. vsk VII Suunnittelumallit Adapter ja Composite Sisältö 1. Johdanto rakennemalleihin 2. Adapter (Sovitin) 3. Composite (Rekursiokooste) Suunnittelumallit Adapter ja Composite 2 VII.1 Johdanto
LisätiedotYleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.
2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä
Lisätiedot2. Olio-ohjelmoinista lyhyesti 2.1
2. Olio-ohjelmoinista lyhyesti 2.1 Sisällys Yleistä. Oliot ja luokat. Attribuutit. Olioiden esittely ja alustus. Rakentajat. Olion operaation kutsuminen. 2.2 Yleistä Olio-ohjelmointia käsitellään hyvin
LisätiedotMetodien tekeminen Javalla
1 Metodien tekeminen Javalla Mikä metodi on? Metodin syntaksi Metodi ja sen kutsuminen Parametreista Merkkijonot ja metodi Taulukot ja metodi 1 Mikä metodi on? Metodilla toteutetaan luokkaan toiminnallisuutta.
LisätiedotRajapinta (interface)
1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä
LisätiedotOliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä
Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä
LisätiedotSisältö. 22. Taulukot. Yleistä. Yleistä
Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä
LisätiedotOperaattoreiden uudelleenmäärittely
Operaattoreiden uudelleenmäärittely 14 Operaattoreiden uudelleenmäärittely Tässä luvussa käsittelemme, kuinka voit lisätä toiminnallisuutta luokkiisi, jotta ne toimivat enemmän C++:n perustietotyyppien
LisätiedotP e d a c o d e ohjelmointikoulutus verkossa
P e d a c o d e ohjelmointikoulutus verkossa Java-kielen perusteet Teoria ja ohjelmointitehtävät Java-kielen perusteet 3 YLEISKATSAUS KURSSIN SISÄLTÖIHIN 10 JAVA-KIELEN PERUSTEET 10 OPISKELUN ALOITTAMINEN
Lisätiedot815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,
LisätiedotSisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä
Sisällys 9. Periytyminen Javassa Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Metodien korvaaminen ja super-attribuutti. Attribuutin peittäminen periytymisen kautta. Rakentajat
LisätiedotSisällys. 14. Poikkeukset. Johdanto. Johdanto
Sisällys 14. Poikkeukset Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.
Lisätiedot14. Poikkeukset 14.1
14. Poikkeukset 14.1 Sisällys Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Miten varautua poikkeukseen metodissa? Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla
LisätiedotTIETORAKENTEET JA ALGORITMIT
TIETORAKENTEET JA ALGORITMIT Timo Harju 1999-2004 1 typedef link List; /* Vaihtoehtoisia nimiä */ typedef link Stack; /* nodepointterille */ typedef link Queue typedef struct node Node; /* itse nodelle
Lisätiedot21. oppitunti. Esikäsittelijä. Osa. Esikäsittelijä ja kääntäjä
Osa VI 21. oppitunti Esikäsittelijä Lähdekooditiedostoihin kirjoitetaan pääosin C++ -koodia. Ne käännetään kääntäjän toimesta ajettaviksi ohjelmiksi. Ennen kääntäjän osallisuutta ajetaan kuitenkin esikäsittelijä,
Lisätiedot16. Javan omat luokat 16.1
16. Javan omat luokat 16.1 Sisällys Johdanto. Object-luokka: tostring-, equals-, clone- ja getclass-metodit. Comparable-rajapinta: compareto-metodi. Vector- ja ArrayList-luokat. 16.2 Javan omat luokat
LisätiedotSisällys. 14. Poikkeukset. Johdanto. Johdanto
Sisällys 14. Poikkeukset Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Miten varautua poikkeukseen metodissa? Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla
LisätiedotSisällys. 19. Olio-ohjelmointia Javalla. Yleistä. Olioiden esittely ja alustus
Sisällys 19. Olio-ohjelmointia Javalla Olioiden esittely ja alustus. Metodit Yleistä metodeista. Mihin metodeja tarvitaan? Metodien määrittely. Omat metodit: nimeäminen, paikka, kutsuminen, parametrit
Lisätiedot