Web järjestelmän ohjelmointi Kevät 2012 Hans Nieminen

Koko: px
Aloita esitys sivulta:

Download "Web järjestelmän ohjelmointi Kevät 2012 Hans Nieminen"

Transkriptio

1 Harjoitus 1 Käsiteltävät aiheet: C# kielen kertaus luokat, oliot ja periytyminen poikkeukset ja niiden käsittely tapahtumat ja niiden käsittely C# 3.0 uudet ominaisuudet Visual Studio projektin kansiot Visual Studio 2010 projekteihin liittyvät tiedostot tallentuvat kansioihin, jotka on määriteltävissä käyttäjäkohtaisesti toiminnolla Tools Opons: Projektitiedostojen (.sln ja.suo) sijaintikansio. Projekti Tehdään uusi Windows ohjelma WJOH1. File New Project Valitse Windows Forms Application ja anna nimeksi WJOH1. Tallenna projekti C levyn johonkin kansioon. Anna Solution name: kenttään sama nimi WJOH1. 1

2 Luokat Lisää nyt Solutioniin WJOH1 uusi projekti, johon toteutetaan harjoituksen luokat. Valitse Solution Explorer ikkunassa Solution WJOH1 ja avaa hiiren oikealla sen pikavalikko. Valitse vaihtoehto Add New Project... Valitse Class Library ja anna nimeksi WJOH1Luokat. 2

3 Poista WJOH1Luokat projektista sinne oletuksena tehty luokka Class1.cs ( hiiren oikealla pikavalikko, josta Delete). Toteuta WJOH1Luokat projektiin seuraavan luokkakaavion mukaiset luokat Henkilo, Tyontekija ja Osasto. 3

4 Uusi luokka lisätään projektiin toiminnolla Project Add Class... (tai Solution Explorer ikkunassa pikavalikosta Add Class...): Henkilo luokassa: Luokan näkyvyysmääreenä public. Kenttien näkyvyysmääreenä protected. Ominaisuudet EtuNimi, SukuNimi ja SyntymaAika kapseloivat vastaavat kentät. Ominaisuudessa Ika vain get metodi palauttaen syntymäajan ja kuluvan päivän perusteella lasketun iän vuosina. Konstruktoria ei tarvitse koodata. ToString() ylikirjoitetaan (override) palauttamaan henkilön nimen muodossa etunimi sukunimi. Tyontekija luokassa: Luokan näkyvyysmääreenä public. Periytetään luokasta Henkilo. Kenttien näkyvyysmääreenä private. Ominaisuudet Palkka, PalkkausPvm ja PaattymisPvm kapseloivat vastaavat kentät. Konstruktoreita kaksi: o kolme parametria, joiden arvot sijoitetaan ominaisuuksiin EtuNimi, SukuNimi ja SyntymaAika. o neljä parametria, joiden arvot sijoitetaan ominaisuuksiin EtuNimi, SukuNimi, SyntymaAika ja Palkka. Lisäksi ominaisuuteen PalkkausPvm sijoitetaan arvoksi kuluva päivämäärä. ToString() ylikirjoitetaan (override) palauttamaan työntekijän tiedot muodossa etunimi sukunimi ( syntymäpäivä). Osasto luokassa: Luokan näkyvyysmääreenä public. Ominaisuudet Nimi ja Tyontekijat kapseloivat vastaavat kentät. Ominaisuudessa HenkiloLkm on vain get metodi palauttaen Tyontekijat ominaisuuden sisältämän listan alkioiden määrän. Konstruktori, jonka parametri n sijoitetaan Nimi ominaisuuteen. Lisäksi ominaisuuteen Tyontekijat sijoitetaan uusi List<Tyontekija> olio. 4

5 ToString() ylikirjoitetaan (override) palauttamaan osaston nimen ja henkilömäärän muodossa nimi (henkilömäärä). Metodi Palkkaa(), jonka parametri h (Tyontekija olio) lisätään ominaisuuden Tyontekijat listalle ja parametri p sijoitetaan parametrin h sisältämän olion ominaisuuteen Palkka. Lisäksi sijoitetaan parametrissa välitetyn Tyontekija olion PalkkausPvm ominaisuuteen kuluva päivä. Metodi Erota(), jonka parametri h (Tyontekija olio) poistetaan ominaisuuden Tyontekijat listalta. Lisäksi sijoitetaan parametrissa välitetyn Tyontekija olion PaattymisPvm ominaisuuteen kuluva päivä. Poikkeusluokka ja poikkeuksen nostaminen Työntekijällä on palkka, jonka tulee olla ei negatiivinen desimaaliluku. Luodaan oma poikkeus NegatiivinenPalkkaException, joka synnytetään, jos palkaksi annetaan negatiivinen arvo. Lisää WJOH1Luokat projektiin luokka, joka periytetään luokasta ApplicationException ja joka sisältää neljä konstruktoria: public class NegatiivinenPalkkaException : ApplicationException public NegatiivinenPalkkaException() public NegatiivinenPalkkaException(string message) public NegatiivinenPalkkaException(string message, System.Exception inner) public NegatiivinenPalkkaException( System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) Muuta Tyontekija luokan Palkka ominaisuuden set metodin logiikka seuraavaksi: Jos uusi palkka on ei negatiivinen, sijoita arvo kenttään _palkka, muuten nosta (throw) NegatiivinenPalkkaException poikkeus luomalla olio konstruktorilla, johon argumentiksi merkkijono Palkka ei saa olla negatiivinen. Tapahtumat Luokkaan Osasto lisätään tapahtuma Palkkaaminen, joka syntyy aina uuden työntekijän palkkaamisen yhteydessä. tapahtuma Erottaminen, joka syntyy aina työntekijän erottamisen yhteydessä. Tavoitteena on mahdollistaa Osasto oliokohtainen reagointi palkkaamiseen ja erottamiseen. Tapahtumien määrittely Tee tiedostoon Osasto.cs seuraavat lisäykset: 5

6 Ota käyttöön nimiavaruus System.ComponentModel (tarvitaan luokan CancelEventArgs käytön takia). Määrittele ennen luokan Osasto määrittelyä tapahtumien tarvitsemat delegaattityypit näkyvyysmääreellä public: o delegaattityyppi PalkkaaminenHandler, joka määrittelee tapahtumakäsittelijöiden rakenteeksi: paluuarvo: ei ole parametrit: object tyyppinen sender, Tyontekija tyyppinen t ja CancelEventArgstyyppinen e o delegaattityyppi ErottaminenHandler, joka määrittelee tapahtumakäsittelijöiden rakenteeksi: paluuarvo: ei ole parametrit: object tyyppinen sender, Tyontekija tyyppinen t ja EventArgstyyppinen e Määrittele luokkaan Osasto tapahtumat: o Palkkaaminen, jonka tyyppinä on PalkkaaminenEventHandler o Erottaminen, jonka tyyppinä on ErottaminenEventHandler Tapahtumien synnyttäminen Lisää luokan Osasto metodin Palkkaa() olemassa olevan koodin eteen seuraava koodi: Jos tapahtumalla Palkkaaminen on arvo (vertaa arvoon null), o Määrittele paikallinen CancelEventArgs tyyppinen muuttuja ja sijoita sen arvoksi ko. tyypin olio. o Kutsu tapahtumaan sijoitettua metodia viittaamalla tapahtuman nimeen Palkkaaminen ja antamalla argumenteiksi nykyinen Osasto olio (eli merkintä this), palkattava Tyontekija olio (saatu argumenttina metodiin Palkkaa()) ja edellä luotu CancelEventArgs olio. o Jos CancelEventArgs olion ominaisuuden Cancel arvoksi on tullut tosi (true), lopeta metodin Palkkaa() suoritus tähän lauseella return. Tällöin varsinaista palkkaamista ei siis tapahdu. Näin tapahtumakäsittelijä voi estää metodin varsinaisen toiminnan. Lisää luokan Osasto metodin Erota() olemassa olevan koodin eteen seuraava koodi: Jos tapahtumalla Erottaminen on arvo (vertaa arvoon null), o Kutsu tapahtumaan sijoitettua metodia viittaamalla tapahtuman nimeen Erottaminen ja antamalla argumenteiksi nykyinen Osasto olio (eli merkintä this), erotettava Tyontekija olio (saatu argumenttina metodiin Palkkaa()) ja tässä luomasi EventArgs olio. Muokkaa vielä ToString() metodia niin, että sen palauttaman merkkijonon loppuun lisätään merkkijono PI, jos tapahtumalla Palkkaaminen on arvo ja merkkijono EI, jos tapahtumalla Erottaminen on arvo. Käyttöliittymä Lisää projektiin WJOH1 (eli Windows ohjelma) viittaus edellä tehtyyn luokkakirjastoon WJOH1Luokat: Valitse Solution Explorer ikkunassa WJOH1 projektin References kohdan pikavalikosta (hiiren oikea) Add Reference... 6

7 Valitse Add Reference ikkunassa projekti WJOH1Luokat ja paina OK. Siirry Windows ikkunan muokkaamiseen (välilehti Form1.cs[Design]*). Suurenna ikkunan kokoa vetämällä sitä reunoista ( muuta lisää tarpeen mukaan myöhemmin). 7

8 Siirry Properties ikkunaan (oletuksena oikessa reunassa) ja vaihda siinä ikkunan ominaisuuden Text arvoksi: Työntekijät Osastot. Tällöin muutos näkyy heti: Siirry sitten Toolbox ikkunaan (oletuksena vasemmassa reunassa). Toolbox ikkunan saa jäämään näkyviin nasta painikkeesta, josta ikkuna voidaan myös poistaa näkyvistä. Vedä ikkunaan seuraavat kontrollit: 8

9 TextBox Label Button ListBox CheckBox Siirry ikkunaa vastaavaan C# tiedostoon Form1.cs (esimerkiksi valitsemalla Design ikkunassa pikavalikosta View Code). Tarkasteltaessa koodia huomataan, että Windows ikkunaa vastaa Form luokasta (System.Windows.Forms.Form) periytetty luokka Form1. Luokan määrittely on jaettu kahteen eri tiedostoon (partial class): o Toiseen tiedoistoista kirjoitetaan omat koodit (Form1.cs) ja o toiseen muodostaa Visual Studio koodin (Form1.Designer.cs). Konstruktorissa kutsutaan metodia InitializeComponent(), jonka määrittely löytyy luokan toisesta tiedostosta (Form1.Designer.cs). Tutki myös tiedoston Form1.Designer.cs sisältöä. Huomaa, että jokainen lisätty kontrolli on Form1 luokan kenttä. InitializeComponent metodissa luodaan kenttiin oliot ja asetetaan olioiden ominaisuuksia ja tapahtumia. 9

10 Tarkastele myös Program.cs tiedoston sisältöä. Täältä huomaat, että ohjelman suoritus (= Program luokan staattisen Main metodin suoritus) sisältää muutaman Application luokan metodin kutsumisen, joista viimeistä kutsuttaessa luodaan Form1 olio. Osasto olioiden tapahtumakäsittelijät Ohjelmoi kaksi metodia, joita voidaan käyttää Osasto olioiden tapahtumien Palkkaaminen ja Erottaminen yhteydessä. Tapahtumalle Palkkaaminen mahdollisesti käytettävä metodi (paluuarvo ja parametrit on säädetty delegaattityypillä aiemmin) o_palkkaaminen: Metodin otsikko osa: private void o_palkkaaminen(object sender, Tyontekija h, CancelEventArgs e) Jos työntekijän (parametrissa h) sukunimi on Aaltonen, ei palkkausta suoriteta. Tällöin asetetaan CancelEventArgs olion ominaisuus Cancel arvoon tosi (true), mikä aiheuttaa Tyontekija luokan Palkkaa() metodissa (koodattiin aikaisemmin) toiminnan keskeytymisen. Muuten lisää ilmoitustaululle (ListBox) uusi rivi (Items.Add() metodilla), jossa tekstinä o vakio Osastolle o osaston nimi, joka saadaan metodin parametrista sender (sisältää Osasto olion) o vakio palkattu o henkilön tiedot, jotka saadaan metodin parametrin h (Tyontekija olio) metodilla ToString() Tapahtumalle Erottaminen mahdollisesti käytettävä metodi (paluuarvo ja parametrit on säädetty delegaattityypillä aiemmin) o_palkkaaminen: Metodin otsikko osa: private void o_erottaminen(object sender, Tyontekija h, EventArgs e) Lisää ilmoitustaululle (ListBox) uusi rivi (Items.Add() metodilla), jossa tekstinä o vakio Osastolta o osaston nimi, joka saadaan metodin parametrista sender (sisältää Osasto olion) o vakio erotettu o henkilön tiedot, jotka saadaan metodin parametrin h (Tyontekija olio) metodilla ToString() Ikkunan tapahtumakäsittelijät Windows Forms ohjelmassa itse ikkuna on Form luokasta periytetyn luokan (esim. Form1) olio. Tämä olio sisältää kenttiensä arvoina kaikki siihen sisällytetyt kontrollit. Jokaista kontrollia vastaa siis yksi kenttä ja sen arvona oleva olio. Jokaisella kontrollioliolla on valmiina monia eri tapahtumia, joille voidaan ohjelmoida tarpeen mukaan tapahtumakäsittelijöitä. Esimerkiksi ikkunan painikkeet ovat (System.Windows.Forms.)Button olioita. Button oliolla on Clicktapahtuma, joka syntyy käyttäjän napsauttaessa painiketta. Toteutetaan tapahtumakäsittelijä jokaiseen ikkunan viidestä painikkeesta. Tee Osasto olio Lisää painikkeen Tee Osasto olio Click tapahtumalle käsittelijä kaksoisnapsauttamalla sitä Design ikkunassa. Tällöin Form1.cs tiedostoon ilmestyy uusi metodi: private void button1_click(object sender, EventArgs e) 10

11 Lisäksi Form1.Designer.cs tiedostoon on button1 kentän sisältämän olion tapahtumalle Click sijoitettu arvoksi edellä mainittu metodi: this.button1.click += new System.EventHandler(this.button1_Click); Ohjelmoi tapahtumakäsittelijään seuraava toiminta: Määrittele paikallinen Osasto tyyppinen muuttuja o ja sijoita sen arvoksi uusi Osasto olio käyttäen konstruktorissa argumenttina TextBox kontrollin ominaisuutta Text (esim. textbox1.text = kontrollissa textbox1 näkyvä teksti). Ole tarkka, että viittaat oikeaan TextBox kontrolliin. Jos vaihtoehto Näytä palkkaukset ilmoitustaululla on valittuna (CheckBox kontrollin ominaisuus Checked), sijoita Osasto olion o tapahtumalle Palkkaaminen arvoksi uusi tapahtumakäsittelijä: o.palkkaaminen += new PalkkaaminenHandler(o_Palkkaaminen); Jos vaihtoehto Näytä erottamiset ilmoitustaululla on valittuna (CheckBox kontrollin ominaisuus Checked), sijoita Osasto olion o tapahtumalle Erottaminen arvoksi uusi tapahtumakäsittelijä: o.erottaminen += new ErottaminenHandler(o_Erottaminen); Lisää Osastot kontrollin (ListBox) Items kokoelmaan uusi olio metodilla Add() (esim. listbox1.items.add(o)). Poista teksti Osaston nimi TextBox kontrollista. Poista valinnat molemmista CheckBox kontrolleista. Tee Tyontekija olio Kaksoisnapsauta jälleen painiketta saadaksesi tapahtumakäsittelijän Click tapahtumalle. Ohjelmoi tapahtumakäsittelijään seuraava toiminta: Koska Tyontekija olion tekemisessä tarvitaan DateTime oliota ja koska arvo annetaan kuitenkin merkkijonona (olisi voitu käyttää myös Calendar kontrollia), voi käyttäjä antaa syntymäajaksi mitä tahansa. Mahdollisen virhetilanteen takia toteuta seuraavat try catch lauseella: o Määrittele paikallinen Tyontekija tyyppinen muuttuja t ja sijoita sen arvoksi uusi Tyontekija olio käyttäen konstruktorissa argumenttina TextBox kontrolleihin Työntekijän etunimi, Työntekijän sukunimi ja Syntymäaika syötettyjä arvoja. Huomaa, että syntymäaika tulee aikaansaada DateTime olioksi metodilla DateTime.Parse(). o Lisää ikkunan Työntekijät kontrollin (ListBox) Items kokoelmaan edellä tehty uusi Tyontekija olio metodilla Add(). o Jos edellisissä tuli jokin virhe (poikkeus), näytä viesti ikkunassa virheilmoituksena teksti Työntekijää ei voida tehdä: ja itse virheen syy. Viesti ikkuna saadaan näytettyä luokan MessageBox luokkametodilla Show antamalla esitettävä teksti argumenttina. Virheen syy saadaan catch osan Exception tyyppisen parametrin ominaisuudesta Message (esim. ex.message). Poista teksti Työntekijän etunimi, Työntekijän sukunimi ja Syntymäaika TextBox kontrolleista. Palkkaa Kaksoisnapsauta jälleen painiketta saadaksesi tapahtumakäsittelijän Click tapahtumalle. 11

12 Ohjelmoi tapahtumakäsittelijään seuraava toiminta: Määrittele paikallinen Osasto tyyppinen muuttuja o ja aseta sen arvoksi Osastot listalla valittuna oleva osasto, johon pääset käsiksi ListBox kontrollin SelectedItem ominaisuuden kautta. Huomaa, että SelectedItem on object tyyppinen, joten se täytyy tyyppimuuntaa Osasto tyyppiseksi. Määrittele vastaavasti paikallinen Tyontekija tyyppinen muuttuja t ja sen arvoksi Tyontekijat listalla valittuna oleva työntekijä. Koska palkka annetaan TextBox kontrollin avulla, voi käyttäjä jälleen syöttää mitä tahansa. Varaudutaan jälleen virheeseen kirjoittamalla toiminta try catch lauseeseen. try osassa: o kutsu Osasto olion Palkkaa() metodia antamalla argumenteiksi Tyontekija olio ja palkka (TextBox kontrollin Text ominaisuudesta muodostettu double arvo > Double.Parse()). o poista Osastot listalta käsiteltävänä oleva Osasto olio ja lisää se sitten heti takaisin listalle ( näin saadaan Osasto olion työntekijämäärä päivittymään). catch osia on nyt kaksi: o käsittele poikkeus NegatiivinenPalkkaException, joka syntyy yritettäessä sijoittaa Palkkaominaisuuteen negatiivista arvoa (ks. Tyontekija luokka). Käsittelynä tulostetaan viestiikkunaan teksti Palkka ei saa olla negatiivinen.. o käsittele kaikki muut poikkeukset (yleisesti Exception). Käsittelynä tulostetaan viestiikkunaan teksti Palkkaus epäonnistui: ja varsinainen virheen syy (ominaisuus Message). Poista teksti Palkka TextBox kontrollista. Erota Kaksoisnapsauta jälleen painiketta saadaksesi tapahtumakäsittelijän Click tapahtumalle. Ohjelmoi tapahtumakäsittelijään seuraava toiminta: Määrittele paikallinen Osasto tyyppinen muuttuja o ja aseta sen arvoksi Osastot listalla valittuna oleva osasto (samoin kuin painikkeen Palkkaa kohdalla). Määrittele vastaavasti paikallinen Tyontekija tyyppinen muuttuja t ja sen arvoksi Tyontekijat listalla valittuna oleva työntekijä. try osassa: o Jos Osasto olion o Tyontekijat ominaisuuden sisältämässä geneerisessä listassa (List<Tyontekija>) on Tyontekija olio t (o.tyontekijat.contains(t)) kutsu Osasto olion o metodia Erota antamalla argumentiksi Tyontekiija olio t. poista Osastot listalta käsiteltävänä oleva Osasto olio ja lisää se sitten heti takaisin listalle ( näin saadaan Osasto olion työntekijämäärä päivittymään). o Muuten tulosta viesti ikkunaan ilmoitus: Työntekijä x ei ole osastolla y, missä x on Tyontekija olion t metodi ToString() ja y on Osasto olion o ominaisuus Nimi. catch osassa: o käsittele kaikki poikkeukset (yleisesti Exception). Käsittelynä tulostetaan viesti ikkunaan teksti Erottaminen epäonnistui: ja varsinainen virheen syy (ominaisuus Message). Näytä työntekijät Kaksoisnapsauta jälleen painiketta saadaksesi tapahtumakäsittelijän Click tapahtumalle. Ohjelmoi tapahtumakäsittelijään seuraava toiminta: 12

13 Määrittele paikallinen Osasto tyyppinen muuttuja o ja aseta sen arvoksi Osastot listalla valittuna oleva osasto (samoin kuin edellä). Jos muuttuja sisältää arvon (vertaa arvoon null), o aseta otsikkoteksti Label kontrolliin (Text ominaisuuteen) yhdistämällä vakioteksti Osasto ja Osasto olion metodi ToString(). o Tyhjennä ListBox kontrollin aiempi sisältö kutsumalla Items kokoelman metodia Clear(). o Lisää Osasto olion o sisältämät Tyontekija oliot ListBox kontrolliin. Käytä esimerkiksi foreach lausetta. Ohjelman toiminta Lisää ensin uusi osasto antamalla nimi ja rastimalla molemmat kohdat sekä napsauttamalla lopuksi Tee Osasto olio: Lisää vielä toinen osasto niin, että rastit vain ylemmän vaihtoehdon. Esimerkiksi: Lisää sitten työntekijöitä antamalla nimi ja syntymäaika sekä napsauttamalla lopuksi Tee Työntekijä olio: Tee vielä kolme muuta työntekijää: 13

14 Palkkaa osastolle työntekijä valitsemalla osasto ja työntekijä sekä antamalla palkka: sekä napsauttamalla Palkkaa, jolloin ilmoitustaululle ilmestyy tieto palkkaamisesta (tapahtuma Palkkaa syntyy ja sen tapahtumakäsittelijä o_palkkaaminen suorittuu): Palkkaa muutkin työntekijät. Anna jonkun työntekijän kohdalla negatiivinen palkka, jolloin tulee virheilmoitus: Näytä osaston työntekijät valitsemalla osasto ja napsauttamalla Näytä työntekijät: Erota sitten lopuksi yksi työntekijä molemmista osastoista valitsemalla osasto ja työntekijä sekä napsauttamalla Erota: 14

15 Huomaa, että vain toisen osaston erottamiset näkyvät ilmoitustaululla: Toinen Windows ohjelmaprojekti (LinqTesti) Lisää ensin WJOH1Luokat projektin luokkiin Osasto ja Tyontekija konstruktori, jossa ei ole parametreja eikä suoritettavia lauseita. Tämä tehdään C# 3.0:n olion uutta alustustapaa varten. Lisää Solutioniin toinen Windows ohjelma: Valitse Solution Explorer ikkunassa Solution WJOH1 ja avaa hiiren oikealla sen pikavalikko. Valitse vaihtoehto Add New Project... Valitse Windows Forms Application ja anna nimeksi LinqTesti. Aseta tämä Windows ohjelma käynnistyväksi ohjelmaksi valitsemalla Solution Explorer ikkunassa projektin LinqTesti pikavalikosta (hiiren oikea) vaihtoehto Set as Startup Project. 15

16 Lisää LinqTesti projektin viittauksiin (References) viittaus projektiin WJOH1Luokat. o Valitse Solution Explorer ikkunassa LinqTesti projektin References kohdan pikavalikosta (hiiren oikea) Add Reference... o Valitse Add Reference ikkunassa projekti WJOH1Luokat ja paina OK. Olioiden ja kokoelmien alustus Lisää LinqTesti ohjelmaan Form_Load tapahtumakäsittelijä: Valitse Properties ikkunassa Form1. Valitse sitten Events välilehti. Kaksoisnapsauta Load tapahtuman vieressä olevaa ruutua. Tällöin syntyy Form1_Load tapahtumakäsittelijä (metodi) ja avautuu Form1.cs koodi ikkunaan. Lisää Form1.cs tiedostoon nimiavaruus WJOH1Luokat. Lisää Form1.cs tiedoston luokkaan tyyppiä List<Osasto> oleva kenttä osastot. 16

17 Kirjoita Form1_Load metodiin seuraava koodi: luo kenttään osastot uusi List<Osasto> olio käyttäen C# 3.0:n olioiden ja kokoelmien alustamistapaa: osastot = new List<Osasto> new Osasto Nimi = "Hallinto", Tyontekijat = new List<Tyontekija> new Tyontekija EtuNimi = "Matti", SukuNimi = "Mainio", Palkka = 2100, SyntymaAika = new DateTime(1965,3,13), PalkkausPvm = new DateTime(1990,7,1), new Tyontekija EtuNimi = "Jussi", SukuNimi = "Juonio", Palkka = 2500, SyntymaAika = new DateTime(1964,9,7), PalkkausPvm = new DateTime(1988,5,1), new Tyontekija EtuNimi = "Matti", SukuNimi = "Meikäläinen", Palkka = 1990, SyntymaAika = new DateTime(1972,3,13), PalkkausPvm = new DateTime(1997,7,1), new Tyontekija EtuNimi = "Jussi", SukuNimi = "Juurela", Palkka = 2500, SyntymaAika = new DateTime(1974,12,29), PalkkausPvm = new DateTime(1997,5,1), new Osasto Nimi = "Varasto", Tyontekijat = new List<Tyontekija> new Tyontekija EtuNimi = "Matti", SukuNimi = "Mattila", Palkka = 1800, SyntymaAika = new DateTime(1958,3,13), PalkkausPvm = new DateTime(1985,7,1), new Tyontekija EtuNimi = "Maija", SukuNimi = "Mattila", Palkka = 1850, SyntymaAika = new DateTime(1961,9,7), PalkkausPvm = new DateTime(1983,5,1), 17

18 ; new Tyontekija EtuNimi = "Matti-Pekka", SukuNimi = "Mattila", Palkka = 1690, SyntymaAika = new DateTime(1981,3,13), PalkkausPvm = new DateTime(2005,9,1), new Tyontekija EtuNimi = "Kaija", SukuNimi = "Mattila", Palkka = 1500, SyntymaAika = new DateTime(1983,12,29), PalkkausPvm = new DateTime(2008,1,1), new Tyontekija EtuNimi = "Pentti", SukuNimi = "Pekkala", Palkka = 1850, SyntymaAika = new DateTime(1966,9,7), PalkkausPvm = new DateTime(1985,5,1), new Tyontekija EtuNimi = "Eija", SukuNimi = "Laakso-Pekkala", Palkka = 1690, SyntymaAika = new DateTime(1971,3,13), PalkkausPvm = new DateTime(2000,9,1), new Tyontekija EtuNimi = "Mikael", SukuNimi = "Pekkala", Palkka = 1100, SyntymaAika = new DateTime(1993,12,29), PalkkausPvm = new DateTime(2010,1,1) Lisää Form1 ikkunaan kontrollit: LinkLabel kontrolli, johon teksti Kaikki osastot. DataGridView kontrolli, jonka Anchor ominaisuus asetetaan seuraavasti: 18

19 Lisää sitten LinkLabel kontrollille tapahtuman Click käsittelijä ( toimi samalla idealla kuin Form_Loadkäsittelijän kanssa): aseta DataGridView kontrollin ominaisuuden DataSource arvoksi osastot kentän sisältämä lista Testaa. Linq kyselyt Lisää Form1 ikkunaan Label, johon tekstiksi Osasto TextBox LinkLabel kontrolli, johon teksti Hae osasto (LINQ). LinkLabel kontrolli, johon teksti Hae osasto (laajennusmetodein). Lisää sitten molemmille LinkLabel kontrolleille tapahtuman Click käsittelijä. Hae osasto (LINQ) linkin tapahtumakäsittelijässä: if (textbox1.text.length > 0) var q = (from o in osastot where o.nimi.toupper() == textbox1.text.toupper() 19

20 select o).tolist(); datagridview1.datasource = q; else MessageBox.Show("Osaston nimi puuttuu."); huomaa implisiittinen tietotyyppi var kyselylauseke from where select tuloksen muuttaminen listaksi ToList() metodilla o IEnumerable rajapinnan metodi voidaan kutsua kaikkien LINQ kyselyjen yhteydessä Hae osasto (laajennusmetodein) linkin tapahtumakäsittelijässä: if (textbox1.text.length > 0) var q = osastot.where(o => o.nimi.toupper() == textbox1.text.toupper()).tolist(); datagridview1.datasource = q; else MessageBox.Show("Osaston nimi puuttuu."); huomaa laajennusmetodin Where() käyttäminen huomaa metodin Where() argumentti: lambda lauseke (parametri on siis delegaattityyppinen: metodi, joka palauttaa totuusarvon) o kääntäjä osaa päätellä parametrin o tyypin o koska lauseita on vain yksi, se tulkitaan automaattisesti return lauseeksi o käy läpi oliokokoelman (tässä tapauksessa Osasto listan osastot) oliot ja suorittaa jokaiselle lambda lausekkeen, jos paluuarvo on tosi, lisää olion uudelle Osasto listalle valitsee siis oliot ehtolausekkeen perusteella. Lisää Form1 ikkunaan LinkLabel kontrolli, johon teksti Osaston työntekijät. LinkLabel kontrolli, johon teksti Kaikki työntekijät. 20

21 Lisää sitten molemmille LinkLabel kontrolleille tapahtuman Click käsittelijä. Osaston työntekijät linkin tapahtumakäsittelijässä: if (textbox1.text.length > 0) var q = (from o in osastot from t in o.tyontekijat where o.nimi.toupper() == textbox1.text.toupper() select t).tolist(); datagridview1.datasource = q; else MessageBox.Show("Osaston nimi puuttuu."); huomaa kaksi peräkkäistä from osaa ristiliitos Kaikki työntekijät linkin tapahtumakäsittelijässä: var q = (from o in osastot from t in o.tyontekijat orderby t.ika descending select new OsastoNimi = o.nimi, TyöntekijäNimi = t.etunimi + " " + t.sukunimi, Ikä = t.ika ).ToList(); datagridview1.datasource = q; huomaa olioiden järjestäminen eli orderby osa huomaa select osan anonyymin tyypin käyttö 21

22 Lisää taas Form1 ikkunaan LinkLabel kontrolli, johon teksti Osastokohtainen keski ikä. Tee tälle Click tapahtuman käsittelijä, jossa var q = (from o in osastot from t in o.tyontekijat group t by o.nimi into osastogroup select new Osasto = osastogroup.key, KeskiIka = osastogroup.average(t => t.ika) ).ToList(); datagridview1.datasource = q; huomaa ryhmittelyn käyttäminen eli group osa anonyymissä tyypissä keski iän laskemiseen käytetään laajennusmetodia Average, jossa lambdalauseke Lisää jälleen Form1 ikkunaan LinkLabel kontrolli, johon teksti Yli 30 vuotiaita työntekijöitä. Tee Click tapahtuman käsittelijässä, jossa var q = (from o in osastot select new Osasto = o.nimi, 22

23 Yli30v = o.tyontekijat.count(t => t.ika > 30) ).ToList(); datagridview1.datasource = q; 23

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: Harjoitus 7 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: class Lintu //Kentät private int _siivenpituus; protected double _aivojenkoko; private bool _osaakolentaa; //Ominaisuudet public int

Lisätiedot

Web Services tietokantaohjelmoinnin perusteet

Web Services tietokantaohjelmoinnin perusteet ASP.NET Web Services Web Services tietokantaohjelmoinnin 2 (22) Sisällys Harjoitus 1: Tietokannat ja Web Services... 3 Harjoitus 2: Windows Client... 10 Harjoitus 3: Datan päivitys TableAdapterin avulla...

Lisätiedot

C# Windows ohjelmointi perusopas

C# Windows ohjelmointi perusopas Paavo Räisänen C# Windows ohjelmointi perusopas www.ohjelmoimaan.net Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei kaupallisissa tarkoituksissa. Kuitenkaan omille nettisivuille opasta ei saa

Lisätiedot

Olio-ohjelmointi Javalla

Olio-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ätiedot

14. Poikkeukset 14.1

14. 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ätiedot

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Sisä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ätiedot

Jypelin käyttöohjeet» Ruutukentän luominen

Jypelin käyttöohjeet» Ruutukentän luominen Jypelin käyttöohjeet» Ruutukentän luominen Pelissä kentän (Level) voi luoda tekstitiedostoon "piirretyn" mallin mukaisesti. Tällöin puhutaan, että tehdään ns. ruutukenttä, sillä tekstitiedostossa jokainen

Lisätiedot

Metodit. 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 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ätiedot

Listarakenne (ArrayList-luokka)

Listarakenne (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ätiedot

Mikä yhteyssuhde on?

Mikä 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ätiedot

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.

Lisätiedot

14. Poikkeukset 14.1

14. 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ätiedot

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Sisä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ätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

Opintojakso 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ätiedot

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu Taulukot Taulukon määrittely ja käyttö Taulukko metodin parametrina Taulukon sisällön kopiointi toiseen taulukkoon Taulukon lajittelu esimerkki 2-ulottoisesta taulukosta 1 Mikä on taulukko? Taulukko on

Lisätiedot

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä

on 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ätiedot

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

JAVA-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ätiedot

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

Operaattoreiden 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ätiedot

Rajapinta (interface)

Rajapinta (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ätiedot

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

Sisä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ätiedot

Microsoft Visual Studio 2005

Microsoft Visual Studio 2005 Sovelluksen jako palvelimiksi: Palvelin on sille annettuun vastuulliseen tehtävään erikoistunut sovellusosa. Käyttöliittymäpalvelin (Web-palvelin) vastaa käyttöliittymän toteuttamisesta. Web-palvelin toteuttaa

Lisätiedot

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Sisä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ätiedot

Javan perusteita. Janne Käki

Javan 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ätiedot

1. Omat operaatiot 1.1

1. 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ätiedot

Harjoitustyö: virtuaalikone

Harjoitustyö: virtuaalikone Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman

Lisätiedot

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006 TURUN YLIOPISTO DEMO III Informaatioteknologian laitos tehtävät Olio-ohjelmoinnin perusteet / Salo 15.2.2006 1. Tässä tehtävässä tarkastellaan erääntyviä laskuja. Lasku muodostaa oman luokkansa. Laskussa

Lisätiedot

Taulukot. Jukka Harju, Jukka Juslin 2006 1

Taulukot. 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ätiedot

KOHDELUOKAN MÄÄRITTELY

KOHDELUOKAN 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ätiedot

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Olion 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ätiedot

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti: 1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri

Lisätiedot

JUnit ja EasyMock (TilaustenKäsittely)

JUnit ja EasyMock (TilaustenKäsittely) OHJELMISTOJEN TESTAUS JA HALLINTA Syksy 2015 / Auvo Häkkinen JUnit ja EasyMock (TilaustenKäsittely) Tehtävässä tarvittava koodi löytyy osoitteella http://users.metropolia.fi/~hakka/oth/mockesimerkki.zip

Lisätiedot

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004 Vertailulauseet Ehtolausekkeet Ehdot, valintalausekkeet Boolean-algebra == yhtäsuuruus!= erisuuruus < pienempi suurempi >= suurempi tai yhtäsuuri Esimerkkejä: int i=7; int j=10;

Lisätiedot

Tietokannat II -kurssin harjoitustyö

Tietokannat II -kurssin harjoitustyö Tietokannat II -kurssin harjoitustyö Jyri Lehtonen (72039), jkoleh@utu.fi Azad Hajipour (72187), azhaji@utu.fi 10.6.2007 Sisältö 1. Tietokannan kuvaus... 1 1.1 Tietokannan rakenne... 1 1.2 Relaatiokaava

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen

Lisätiedot

1 Tehtävän kuvaus ja analysointi

1 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ätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

Sisä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ätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat

Lisätiedot

Periytyminen (inheritance)

Periytyminen (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ätiedot

Pong-peli, vaihe Aliohjelmakutsu laskureita varten. 2. Laskurin luominen. Muilla kielillä: English Suomi

Pong-peli, vaihe Aliohjelmakutsu laskureita varten. 2. Laskurin luominen. Muilla kielillä: English Suomi Muilla kielillä: English Suomi Pong-peli, vaihe 7 Tässä vaiheessa lisäämme peliin pistelaskun. Pong-pelissä pelaaja saa pisteen kun pallo ohittaa toisen pelaajan mailan. 1. Aliohjelmakutsu laskureita varten

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman

Lisätiedot

9. Periytyminen Javassa 9.1

9. 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ätiedot

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

Kompositio. 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ätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 20. huhtikuuta 2018 Vastaa kaikkiin tehtäviin. Tee kukin tehtävä omalle konseptiarkille. Noudata ohjelmointitehtävissä kurssin koodauskäytänteitä.

Lisätiedot

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Ohjelmointikielet 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ätiedot

Graafisen käyttöliittymän ohjelmointi

Graafisen käyttöliittymän ohjelmointi TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Luento 2 Tapahtumapohjainen ohjelmointi Juha-Matti Vanhatupa Sisältö Tapahtumapohjainen ohjelmointi Tapahtumakuuntelijoiden

Lisätiedot

15. Ohjelmoinnin tekniikkaa 15.1

15. Ohjelmoinnin tekniikkaa 15.1 15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Geneerinen ohjelmointi. Lueteltu tyyppi enum. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien silmukoimiseen:

Lisätiedot

Ajokorttimoduuli Moduuli 2. - Laitteenkäyttö ja tiedonhallinta. Harjoitus 1

Ajokorttimoduuli Moduuli 2. - Laitteenkäyttö ja tiedonhallinta. Harjoitus 1 Ajokorttimoduuli Moduuli 2 - Laitteenkäyttö ja tiedonhallinta Harjoitus 1 Tämän harjoituksen avulla opit alustamaan levykkeesi (voit käyttää levykkeen sijasta myös USBmuistitikkua). Harjoitus tehdään Resurssienhallinnassa.

Lisätiedot

15. Ohjelmoinnin tekniikkaa 15.1

15. Ohjelmoinnin tekniikkaa 15.1 15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien

Lisätiedot

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen: Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Microsoft SQL käyttö Yleistä VisualStudiosta Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen: - sovellushallintaan -

Lisätiedot

Sähköposti ja uutisryhmät 4.5.2005

Sähköposti ja uutisryhmät 4.5.2005 Outlook Express Käyttöliittymä Outlook Express on windows käyttöön tarkoitettu sähköpostin ja uutisryhmien luku- ja kirjoitussovellus. Se käynnistyy joko omasta kuvakkeestaan työpöydältä tai Internet Explorer

Lisätiedot

815338A Ohjelmointikielten periaatteet

815338A Ohjelmointikielten periaatteet 815338A Ohjelmointikielten periaatteet 2015-2016 VIII Poikkeusten ja tapahtumien käsittely Sisältö 1. Poikkeusten käsittelyn käsitteitä ja suunnittelukriteerejä 2. Poikkeusten käsittely C++:ssa 3. Poikkeusten

Lisätiedot

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys)

A) 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ätiedot

Poikkeustenkäsittely

Poikkeustenkäsittely 1 Poikkeustenkäsittely Mitä poikkeustenkäsittely tarkoittaa? Poikkeuksen käsitteleminen Poikkeusluokkien hierarkia Poikkeuksen heittäminen 1 Mitä poikkeustenkäsittely tarkoittaa? Poikkeus (Exception) on

Lisätiedot

Ohjelmointi 2 / 2010 Välikoe / 26.3

Ohjelmointi 2 / 2010 Välikoe / 26.3 Ohjelmointi 2 / 2010 Välikoe / 26.3 Välikoe / 26.3 Vastaa neljään (4) tehtävään ja halutessa bonustehtäviin B1 ja/tai B2, (tuovat lisäpisteitä). Bonustehtävät saa tehdä vaikkei olisi tehnyt siihen tehtävään

Lisätiedot

Sisällys. JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys. Luokkahierarkia. Periytyminen (inheritance)

Sisä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ätiedot

Apuja ohjelmointiin» Yleisiä virheitä

Apuja ohjelmointiin» Yleisiä virheitä Apuja ohjelmointiin» Yleisiä virheitä Ohjelmaa kirjoittaessasi saattaa Visual Studio ilmoittaa monenlaisista virheistä "punakynällä". Usein tämä johtuu vain siitä, että virheitä näytetään vaikket olisi

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 7.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 7.2.2011 1 / 39 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

Muistitikun liittäminen tietokoneeseen

Muistitikun liittäminen tietokoneeseen Muistitikun käyttäminen 1 Muistitikun liittäminen tietokoneeseen Muistitikku liitetään tietokoneen USB-porttiin. Koneessa voi olla useita USB-portteja ja tikun voi liittää mihin tahansa niistä. USB-portti

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava

Lisätiedot

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. X Poikkeusten käsittelystä

812347A 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ätiedot

19. Olio-ohjelmointia Javalla 19.1

19. Olio-ohjelmointia Javalla 19.1 19. Olio-ohjelmointia Javalla 19.1 Sisällys Olioiden esittely ja alustus. Metodit Yleistä metodeista. Mihin metodeja tarvitaan? Metodien määrittely. Omat metodit: nimeäminen, paikka, kutsuminen, parametrit

Lisätiedot

Internet Explorer 7 & 8 pop-up asetukset

Internet Explorer 7 & 8 pop-up asetukset Sivu 1(8) Internet Explorer 7 & 8 pop-up asetukset www.procountor.com Internet Explorer 7 ja 8 sisältää pop-up ikkunoiden esto toiminnon. ProCountor -Taloushallintoohjelmistossa voidaan raportit tulostaa

Lisätiedot

Interaktiivinen tarinankerronta

Interaktiivinen tarinankerronta Interaktiivinen tarinankerronta Tehtävä 1: Tarinan alku pääohjelmaan Main. java ei tehdä muutoksia tulostusrivit tiedostoon Kayttoliittyma.java tulostus lyhyesti sout + tab komennolla Tiedoston Kayttoliittyma.java

Lisätiedot

5 Näppäimistö. 5.1 Näppäimistön eventit

5 Näppäimistö. 5.1 Näppäimistön eventit 5 Näppäimistö Näppäimistö (Keyboard) on Windows Forms -ohjelmissa keskeisessä asemassa. Erityisesti erilaisissa tekstinkäsittelyohjelmissa ja ohjelmissa, joissa tarvitaan datan syöttämistä esimerkiksi

Lisätiedot

Olio-ohjelmointi Virhetilanteiden käsittely

Olio-ohjelmointi Virhetilanteiden käsittely Olio-ohjelmointi 2016 Virhetilanteiden käsittely Poikkeustilanteet n Java-järjestelmässä voidaan ottaa kiinni ohjelman suoritusaikana tapahtuvia virhetilanteita, joita ei saada kiinni tavanomaisilla ohjausrakenteilla

Lisätiedot

10 Lock Lock-lause

10 Lock Lock-lause 10 Lock Avainsanan lock (Lock keyword) avulla voidaan toteuttaa prosessien ja säikeiden välisessä keskinäisessä kommunikoinnissa käytettäviä synkronointi- ja poissuljentarakenteita. Tämän niin sanotun

Lisätiedot

Sisällys. 19. Olio-ohjelmointia Javalla. Yleistä. Olioiden esittely ja alustus

Sisä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

Java kahdessa tunnissa. Jyry Suvilehto

Java 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ätiedot

YHTEYSSUHDE (assosiation)

YHTEYSSUHDE (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ätiedot

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset

815338A 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ätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero

Lisätiedot

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5) Alkuarvot ja tyyppimuunnokset (1/5) Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123; Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku,

Lisätiedot

UML ja luokkien väliset suhteet

UML 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ätiedot

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

Sisä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ätiedot

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

Pong-peli, vaihe Koordinaatistosta. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 2/7. Tämän vaiheen aikana

Pong-peli, vaihe Koordinaatistosta. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 2/7. Tämän vaiheen aikana Muilla kielillä: English Suomi Pong-peli, vaihe 2 Tämä on Pong-pelin tutoriaalin osa 2/7. Tämän vaiheen aikana Laitetaan pallo liikkeelle Tehdään kentälle reunat Vaihdetaan kentän taustaväri Zoomataan

Lisätiedot

TimeEdit opiskelijan ohje TimeEdit-instructions for students from this link

TimeEdit opiskelijan ohje TimeEdit-instructions for students from this link TimeEdit opiskelijan ohje TimeEdit-instructions for students from this link TimeEdit on työjärjestys- (lukujärjestys) ja tilanvarausohjelmisto. Sisältö 1 Oikeudet... 2 2 TimeEdit Web... 2 3 Kirjautuminen...

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet String-merkkijonoluokka 1 Ohjelmointikielten merkkijonot Merkkijonot ja niiden käsittely on välttämätöntä ohjelmoinnissa Valitettavasti ohjelmointikielten tekijät eivät tätä ole ottaneet

Lisätiedot

9. Periytyminen Javassa 9.1

9. 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ätiedot

Sisältö. 2. Taulukot. Yleistä. Yleistä

Sisä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ätiedot

Sisältö. 22. Taulukot. Yleistä. Yleistä

Sisä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ätiedot

3.3 Kurssin palauttaminen

3.3 Kurssin palauttaminen 3.3 Kurssin palauttaminen Yleistä kurssin palauttamisesta Kurssipohjan tulee olla luotuna Moodleen ennen kuin sen päälle voi palauttaa varmuuskopion. Yleensä palauttaminen kannattaa tehdä siten, että entisen

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle

Lisätiedot

Metodit Arvotyyppi. Metodit Arvotyyppi. Metodit Parametrit. Metodit Parametrit. Metodit Kuormittaminen. Metodit Kuormittaminen. Javan perusteet

Metodit Arvotyyppi. Metodit Arvotyyppi. Metodit Parametrit. Metodit Parametrit. Metodit Kuormittaminen. Metodit Kuormittaminen. Javan perusteet Metodit Arvotyyppi Ellei metodi palauta arvoa, sen arvotyyppi on void Tällöin return; -lauseke ei ole metodissa pakollinen, vaikka sen käyttö on sallittua Metodi voi palauttaa alkeistyypin tai olion Tällöin

Lisätiedot

OpenOffice.org Base 3.1.0

OpenOffice.org Base 3.1.0 OpenOffice.org Base 3.1.0 Sisällysluettelo 1 Tietokannan luominen...1 2 Taulukon eli taulun luominen...3 3 Kysely...9 4 Raportti...14 1 Tietokannan luominen Tietokanta on kokoelma tietoja, joilla on yhteys

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 8.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 8.2.2010 1 / 38 Debuggeri Tyypillinen tilanne: ohjelma on kirjoitettu, Python-tulkki ei valita virheistä, mutta ohjelma

Lisätiedot

Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016)

Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016) Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016) Tietokoneavusteinen opetus -kurssilla opetetaan Adobe Flash CS6:n käyttämistä neljänä kertana: 11.3.2016, 15.3.2016, 18.3.2016 ja 1.4.2016. Harjoituskerroilla

Lisätiedot

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

812341A 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ätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely Poikkeukset Poikkeuksella tarkoitetaan yllättävää ajonaikaista tilannetta, joka

Lisätiedot

Dialogit. Juha Järvensivu 2008

Dialogit. Juha Järvensivu 2008 Dialogit Juha Järvensivu juha.jarvensivu@tut.fi 2008 Yleistä 2 vaihtoehtoista toteutusmekanismia Layoutteihin perustuva dialogi Absoluuttisiin koordinaatteihin perustuva dialogi Haasteita 1. Dialogin selkeä

Lisätiedot

Wilman käyttöohje huoltajille

Wilman käyttöohje huoltajille Wilman käyttöohje huoltajille Sisällysluettelo: Sisään kirjautuminen... 1 Oma etusivu... 2 Pikaviestit... 3 Tiedotteet... 5 Suoritukset... 6 Poissaolot... 6 Palaute... 8 Opettajat... 9 Salasanan vaihto...

Lisätiedot

4. Luokan testaus ja käyttö olion kautta 4.1

4. 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ätiedot

Tukipyyntö-toiminnon ohje

Tukipyyntö-toiminnon ohje Tukipyyntö-toiminnon ohje Diagnoosilaitteen teknisen tukipyyntötoiminnon avulla avataan teknistä tukea koskeva asiakirja, joka sisältää tietoja ongelmatilanteen ratkaisemiseksi. Sen kautta saadaan käyttöön

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 9.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 9.2.2009 1 / 35 Listat Esimerkki: halutaan kirjoittaa ohjelma, joka lukee käyttäjältä 30 lämpötilaa. Kun lämpötilat

Lisätiedot

C# olio-ohjelmointi perusopas

C# olio-ohjelmointi perusopas Paavo Räisänen C# olio-ohjelmointi perusopas www.ohjelmoimaan.net Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei kaupallisissa tarkoituksissa. Kuitenkaan omille nettisivuille opasta ei saa

Lisätiedot

Collector for ArcGIS. Ohje /

Collector for ArcGIS. Ohje / Collector for ArcGIS Ohje / 10.5.2019 2 (11) Sisältö 1. Collector for ArcGIS... 3 2. Kartan luominen ArcGIS Onlinessa... 3 2.1 Karttatason luominen... 3 2.2 Ominaisuustietotaulun kenttien määrittäminen...

Lisätiedot

HYVÄKSILUKEMISEN TEKEMINEN ILMAN ENNAKKOPÄÄTÖSTÄ

HYVÄKSILUKEMISEN TEKEMINEN ILMAN ENNAKKOPÄÄTÖSTÄ HYVÄKSILUKEMISEN TEKEMINEN ILMAN ENNAKKOPÄÄTÖSTÄ Valitse Opintojen rekisteröinti -valikosta komento. Ikkuna aukeaa. Voit valita Näytettävät opinnot - osiosta, mitkä opiskelijan suorituksista näkyvät aktiivisina

Lisätiedot

Luokan sisällä on lista

Luokan sisällä on lista 1 Luokan sisällä on lista Luokan sisällä lista Listan sisältävä luokka Konstruktorit get-metodi Lista muissa metodeissa addxx-metodi Yksinkertainen pääohjelma Kertauksen List-luokan metodeja 1 Luokan sisällä

Lisätiedot

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

Sisä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ätiedot