Antti-Jussi Lakanen Ohjelmointi 1, C# / kevät 2011



Samankaltaiset tiedostot
2. Olio-ohjelmoinista lyhyesti 2.1

1. Olio-ohjelmointi 1.1

Mikä yhteyssuhde on?

4. Olio-ohjelmoinista lyhyesti 4.1

ITKP102 Ohjelmointi 1 (6 op)

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

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

1 Tehtävän kuvaus ja analysointi

7/20: Paketti kasassa ensimmäistä kertaa

2. Olio-ohjelmoinnin perusteita 2.1

ITKP102 Ohjelmointi 1 (6 op)

Ohjelmointi 2 / 2010 Välikoe / 26.3

Ohjelmointi 1 Taulukot ja merkkijonot

ITKP102 Ohjelmointi 1 (6 op)

Javan perusteita. Janne Käki

Aalto Yliopisto T Informaatioverkostot: Studio 1. Oliot ja luokat Javaohjelmoinnissa

1. Mitä tehdään ensiksi?

2. Olio-ohjelmoinnin perusteita 2.1

12. Monimuotoisuus 12.1

12 Mallit (Templates)

Listarakenne (ArrayList-luokka)

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Kooste. Esim. Ympyrän keskipiste voidaan ajatella ympyrän osaksi.

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto

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

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

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

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

16. Javan omat luokat 16.1

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op

11/20: Konepelti auki

C# olio-ohjelmointi perusopas

12. Monimuotoisuus 12.1

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

9. Periytyminen Javassa 9.1

T Olio-ohjelmointi Osa 5: Periytyminen ja polymorfismi Jukka Jauhiainen OAMK Tekniikan yksikkö 2010

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

18. Abstraktit tietotyypit 18.1

Olio-ohjelmointi Javalla

Olioperustaisuus (object oriented)

Taulukot. Jukka Harju, Jukka Juslin

Johdatus sovellussuunnitteluun, s99, osa2 Helsingin yliopisto;/tktl Harri Laine 1. Olioperustaisuus (object oriented)

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

9. Periytyminen Javassa 9.1

8. Näppäimistöltä lukeminen 8.1

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.

20. Javan omat luokat 20.1

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

15. Ohjelmoinnin tekniikkaa 15.1

ITKP102 Ohjelmointi 1 (6 op)

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

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

Johdanto. Olio (Object) Luokka (Class) Olion kuvaaminen

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Johdatus sovellussuunnitteluun, s99, osa2 Helsingin yliopisto;/tktl Harri Laine 1. Olioperustainen ohjelmistokehitys

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen

19/20: Ikkuna olio-ohjelmoinnin maailmaan

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

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

Ohjelmoinnin perusteet Y Python

UML Luokkakaavio 14:41

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

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

Java-kielen perusteet

17. Javan omat luokat 17.1

Ohjelmointi 2, välikoe

Ohjelmoinnin jatkokurssi, kurssikoe

Olio-ohjelmointi 2. välikoe HYV5SN

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

1. Omat operaatiot 1.1

YHTEYSSUHDE (assosiation)

Olio-ohjelmointi: Luokkien toteuttaminen. Jukka Juslin

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

17. Javan omat luokat 17.1

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Sisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2

Attribuuttikieliopit

ELÄINSOVELLUKSEN KÄYTTÖOHJE Seija Lahtinen

Java-kielen perusteet

Olio-ohjelmoinnissa luokat voidaan järjestää siten, että ne pystyvät jakamaan yhteisiä tietoja ja aliohjelmia.

Omevio. Välttämättömiä rasvahappoja lemmikin ihon terveyden edistämiseen. UUTUUS iholle ja turkille. Lemmikin hyvinvoinnin tueksi

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

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

public static void main (String [] args)

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Olioiden yhteistoiminta

Java-kielen perusteet

8. Näppäimistöltä lukeminen 8.1

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

Lemmikkihotelli PetVilla Päivähoitosopimus YHTEYSTIEDOT sivu 1/5

Oliot viestivät metodeja kutsuen

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

Ohjelmointi Tunnilla 1 (5) Viikko 7 tuntitehtäviä: metodien tekeminen Javalla

HELIA 1 (14) Outi Virkki Käyttöliittymät ja ohjlmiston suunnittelu

Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005

CODEONLINE. Monni Oo- ja Java-harjoituksia. Version 1.0

Transkriptio:

Antti-Jussi Lakanen Ohjelmointi 1, C# / kevät 2011

Yleistä olioista ja OOP:sta OOP, eng. Object Oriented Programming C#:ssa oliot luodaan käyttämällä (olio)luokkia Olio tarkoittaa yksinkertaisesti ohjelman osasta Olio-ohjelmointi on sitä, että ohjelma muodostuu kokoelmasta yhteistyössä toimivia oliota Jokainen olio voidaan nähdä itsenäisenä pienenä koneena, jolla on tietty rooli tai vastuu.

Yleistä olioista ja OOP:sta (jatkuu) Jokainen olio kuuluu johonkin joukkoon (luokkaan) Olioiden yhteisten ominaisuuksien perusteella niistä voidaan kirjoittaa yleinen määritelmä (edelleen luokka) Oliot ovat asioita, jotka viittaavat tosielämän asioihin tai toimintoihin (koira, päivämäärä, aurinkoinen päivä, ) Jokainen olio on yksilöllinen ja jokaisella oliolla on Attribuutit (ominaisuudet, esim. koko, ikä, paino) Toiminta (mitä tekee, esim. lukee, opiskelee, nukkuu)

Esimerkki: eläinlääkärin toimisto Millaisia objekteja tai asioita eläinlääkärissä on? (substantiivit) Asiakas Eläin (monenlaisia eläimiä) Kaikki nämä vieraat eivät ole samanlaisia Pitää pystyä erottelemaan ne asettamalla niille ominaisuuksia

Esimerkki (jatkuu) Eläimen ominaisuuksia: rotu, nimi, ikä, paino Asiakkaan ominaisuuksia: nimi, osoite

Esimerkki (jatkuu) Mitä eläinlääkärissä tehdään eläimille? (verbit) Esimerkiksi rokotetaan, syötetään, punnitaan, jne. Toimintoja, joita eläimelle tehdään eläinlääkärissä Entä asiakas, mitä hän tekee? Ainakin maksaa laskun Näistä verbeistä tulee ohjelmakoodin aliohjelmia Aliohjelmia voidaan kutsua, esimerkiksi SyotaElainta(elain1, 2) Eläimen tunniste Paljonko ruokaa Annetaan (esim. kg)

Esimerkki (jatkuu) Jokaisella eläimellä on samat ominaisuudet: rotu, nimi, ikä, paino Eläin a: Kissa, Pörhö, 3-v, 2 kg Eläin b: Koira, Roope, 4-v, 15 kg Eläin c: Tarantella, Lurska, 6 kk, 200 g Nämä eri eläimet ovat ohjelmointikielen olioita, jotka ovat peräisin eläin-luokasta Luokka on tavallaan piparkakkumuotti, jolla tehdään useita (samanmuotoisia) piparkakkuja, siis olioita Samoin kullakin asiakkaalla vastaavasti yksilölliset tiedot

Esimerkkiluokka: Koira Mitä ominaisuuksia koiralla on? (Huom! Unohda vielä ohjelmakoodi!) Ainakin nimi, ikä, rotu Ehkäpä onko koira nälkäinen voisi olla hyvä tieto Paino myös Mitä koiralla/koiralle tehdään? Käytetään pihalla Punnitaan Tiedustellaan onko nälkäinen (ehkä koira itsekin sen ilmoittaa ) Tietenkin syötetään

Esimerkkiluokka: Koira Koira (luokka) Ominaisuudet rotu : String paino : double nimi : String syntymavuosi : int nalkainen : bool Toiminnot Syota(maara : double) : void Punnitse() : double OnkoNalkainen() : bool OvatkoElintoiminnotKunnossa() : bool

Esimerkkiluokka: Koira Kirjoitetaan malliohjelma

Olioista Luokka on siis kokoelma tietoja, joilla määritellään olion attribuutit (ominaisuudet) ja toiminta

Koira-luokka: ongelma Jos olisi kyseessä eläinlääkärin toimisto, niin luultavasti meillä olisi muitakin eläimiä kuin koiria Pitäisikö meillä olla myös luokat Kissa Kaarme Tarantella Hevonen Marsu Gerbiili

Koira-luokka: ongelma (jatkuu) Tässä tuskin olisi järkeä! Suunnitellaanpa luokka uudestaan sopivaksi eläinlääkärille (yleistetään!) Huom! Esimerkki on kuvitteellinen eikä välttämättä vastaa tosielämän vaatimuksia.

Esimerkkiluokka: Elain Mitä ominaisuuksia eläimellä on? Laji (koira, kissa, marsu ) Nimi, ikä, ehkäpä rotu Kaikki eläimet syövät, joten siitä jotain tietoa Paino myös tarvitaan Mitä eläimelle tehdään? No ainakin Jollain tavalla aktivoidaan / ulkoilutetaan / tms... Punnitaan tai tarkistetaan elintoimintoja Tiedustellaan onko nälkäinen Tietenkin syötetään

Esimerkkiluokka: Elain Elain (luokka) Ominaisuudet laji : String rotu : String paino : double nimi : String syntymavuosi : int nalkainen : bool Toiminnot Ulkoiluta() : void Syota(maara : double) : void Punnitse() : double OnkoNalkainen() : bool OvatkoElintoiminnotKunnossa() : bool