P e d a c o d e ohjelmointikoulutus verkossa



Samankaltaiset tiedostot
P e d a c o d e ohjelmointikoulutus verkossa

P e d a c o d e ohjelmointikoulutus verkossa

P e d a c o d e ohjelmointikoulutus verkossa

P e d a c o d e ohjelmointikoulutus verkossa

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

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

9. Periytyminen Javassa 9.1

Rajapinta (interface)

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat

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

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

Metodien tekeminen Javalla

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

9. Periytyminen Javassa 9.1

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. II Johdanto olio-ohjelmointiin

815338A Ohjelmointikielten periaatteet

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

12. Monimuotoisuus 12.1

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

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

Olio-ohjelmointi: Luokkien toteuttaminen. Jukka Juslin

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

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op

Olio-ohjelmointi Johdanto olio-ohjelmointiin

Luokkamalli LUOKKAKAAVIO. Tämän osan sisältö. Luokkamalli. Luokka ja olio. Luokkakaavio (class diagram)

Ohjelmointi II. Erkki Pesonen Luennot ja harjoitukset. Itä-Suomen yliopisto Tietojenkäsittelytieteen laitos 2015

2. Olio-ohjelmoinista lyhyesti 2.1

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

12. Monimuotoisuus 12.1

15. Ohjelmoinnin tekniikkaa 15.1

Java kahdessa tunnissa. Jyry Suvilehto

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Sisällys. Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö. 8.2

Ohjelmistotekniikan menetelmät, kesä 2008

Mitä on periytyminen?

Tietokoneverkot. T Tietokoneverkot (4 op) viimeistä kertaa CSE-C2400 Tietokoneverkot (5 op) ensimmäistä kertaa

Periytyminen (inheritance)

Javan perusteita. Janne Käki

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Vastuuopettaja. Kurssiesite Olio-ohjelmoinnin perusteet Kevät Olio-ohjelmoinnin perusteet (5 op) Tavoitteena

19/20: Ikkuna olio-ohjelmoinnin maailmaan

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

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet

Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.

Olio-ohjelmointi Javalla

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

Ohjelmoinnin peruskurssien laaja oppimäärä

812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä

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

Ohjelmistotekniikan menetelmät, kevät 2008

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

4. Olio-ohjelmoinista lyhyesti 4.1

Sisällys. 19. Unified Modeling Language (UML) Johdanto. Johdanto. Johdanto. Luokkakaavio:

Sähköinen matematiikan ja ohjelmoinnin opintopolku alakoulusta yliopistoon. Mikko Lujasmaa, Salon lukio Mikko-Jussi Laakso, Turun yliopisto

Ohjelmoinnin peruskurssien laaja oppimäärä

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

Ohjelmistoarkkitehtuurit kevät

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

15. Ohjelmoinnin tekniikkaa 15.1

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

Solidity älysopimus ohjelmointi. Sopimus suuntautunut ohjelmointi

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

3. Komponentit ja rajapinnat

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat

Ohjelmistojen mallintaminen Luokkakaaviot Harri Laine 1

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Ohjelmistotekniikan menetelmät, suunnittelumalleja

Ohjelmistojen mallintaminen, kesä 2009

Ohjelmointi 2, välikoe

Ohjelmistojen mallintaminen viikon 4 laskareiden mallivastauksia

Ohjelmistojen mallintaminen. Luento 7,

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Pakkauksen kokoaminen

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

Ohjelmistojen mallintaminen. Luento 4,

Paikkatiedon mallinnus Dokumentoinnin ymmärtäminen. Lassi Lehto

Pakkauksen kokoaminen

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

16. Javan omat luokat 16.1

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

Ohjelmistojen mallintaminen, kesä 2010

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

8/20: Luokat, oliot ja APIt

812341A Olio-ohjelmointi, Olio-ohjelmoinnin peruskäsitteet ja Java-kieli

Ohjelmistoarkkitehtuurit kevät

STANDARDI SFS-EN ISO 14006, YMPÄRISTÖNÄKÖKOHDAT HUOMIOON OTTAVAN SUUNNITTELUN SISÄLLYTTÄMINEN YMPÄRISTÖJÄRJESTELMÄÄN

Komponentit ja rajapinnat

SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T

Ohjelmistojen mallintaminen, suunnittelumalleja

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IV Periytyminen ja monimuotoisuus

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Tietorakenneluokkia 2: HashMap, TreeMap

Olio-ohjelmointi Suunnittelumallit Adapter ja Composite. 1. Adapter

Kurssiesite Olio-ohjelmoinnin perusteet Kevät Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto

Oliot ja tyypit. TIES542 Ohjelmointikielten periaatteet, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos

Muusta kuin vesisioista

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Oliot viestivät metodeja kutsuen

Transkriptio:

P e d a c o d e ohjelmointikoulutus verkossa Java-kielen jatkokurssi Teoria ja ohjelmointitehtävät

Java-kielen jatkokurssi 3 YLEISKATSAUS KURSSIN SISÄLTÖIHIN... 8 JAVA-KIELEN JATKOKURSSI... 8 OPISKELUN ALOITTAMINEN... 9 TEORIA... 9 TEHTÄVÄT... 9 YLEISKATSAUS KURSSIN SISÄLTÖIHIN... 9 TEORIA... 9 JOHDATUS OPISKELUUN... 9 TEORIA... 9 UUSIEN LUOKKIEN LUOMINEN VANHOJEN LUOKKIEN POHJALTA... 10 TEORIA... 10 TEHTÄVÄT... 10 KOMPOSITIO-SUUNNITELUMALLI... 10 TEORIA... 10 TEHTÄVÄT... 10 PERIYTTÄMINEN... 11 TEORIA... 11 TEHTÄVÄT... 11 JAVAN POLYMORFISMI-OMINAISUUDET... 11 TEORIA... 11 TEHTÄVÄT... 11 LUOKKIEN POLYMORFMISMI... 12 TEORIA... 12 TEHTÄVÄT... 12 KUORMITTAMINEN JA KORVAAMINEN... 12 TEORIA... 12 TEHTÄVÄT... 12 ABSTRAKTIT LUOKAT... 13 TEORIA... 13 TEHTÄVÄT... 13 OLIO-OHJELMOINNIN KEHITTYNEET TOIMINNOT... 13 TEORIA... 13 TEHTÄVÄT... 13 RAJAPINNAT... 13 TEORIA... 13 TEHTÄVÄT... 14 SISÄISET LUOKAT... 14 TEORIA... 14 TEHTÄVÄT... 14 JOHDATUS OPISKELUUN... 15

Java-kielen jatkokurssi 4 OPISKELU KURSSILLA... 15 KURSSIN SISÄLTÖ... 15 AIKATAULU... 15 KURSSIN SUORITTAMINEN... 15 OPPIMISYMPÄRISTÖN OSA-ALUEET... 15 YLEISKUVA... 15 KESKUSTELURYHMÄT... 16 VIIKKONÄKYMÄ... 17 AKTIVITEETIT...17 HAKU KESKUSTELURYHMISTÄ... 17 YLLÄPITO... 18 VIIMEISIMMÄT TIEDOTTEET JA TAPAHTUMAT... 18 OPPIMATERIAALIT... 18 KURSSIKIRJA... 18 VERKKOMATERIAALI... 19 VERKKOMATERIAALIT - ETUSIVU... 19 VERKKOMATERIAALIT - SISÄLTÖSIVUT... 19 VERKKOMATERIAALIT - NAVIGOINTI... 19 VERKKOMATERIAALIT - LISÄTIETOTEKSTIT... 20 VERKKOMATERIAALIT - KESKUSTELURYHMÄT... 20 OHJELMOINTITEHTÄVÄT... 20 TEHTÄVÄN PALAUTTAMINEN... 20 ARVOSTELU JA PALAUTE... 21 MALLIVASTAUS... 22 MUIDEN OPISKELIJOIDEN RATKAISUT... 23 KYSYTTÄVÄÄ?... 23 KOMPOSITIO-SUUNNITTELUMALLI... 24 LUOKKIEN UUDELLEENKÄYTTÖ: KOMPOSITIO... 24 JOHDANTO... 24 ONGELMA... 24 KERTAUS: LUOKAN LUOMINEN... 24 UUDEN LUOKAN LUOMINEN... 24 LUOKAN PERUSRAKENNE... 25 PAKETTI (PACKAGE)... 25 IMPORT-LAUSEET... 26 KOMPOSITIO... 26 LÄHTÖKOHTAT... 26 KOMPOSITIO... 26 KOMPOSITIO JA OLIO-OHJELMOINTI... 28 ESIMERKKI... 28 ESIMERKIN LUOKAT... 28 KÄYTTÄJÄ.JAVA... 29 YLLÄPITÄJÄ.JAVA... 29 KERTAUS... 31

Java-kielen jatkokurssi 5 PERIYTTÄMINEN... 32 LÄHTÖKOHDAT... 32 JOHDANTO... 32 ONGELMA... 32 PERUSKÄSITTEET JA SYNTAKSI... 32 PERUSKÄSITTEET... 32 SYNTAKSI... 33 PERIYTETTÄVÄT ASIAT... 33 NÄKYVYYS... 33 PERUSTEET: PUBLIC, PRIVATE JA OLETUSNÄKYVYYS... 34 PROTECTED-NÄKYVYYS PERIYTTÄMISESSÄ... 34 SUPER... 34 SUPER... 34 FINAL... 35 PERUSTEET... 35 MUUTTUJAT: ARVON MUUTTAMINEN ESTETTY... 35 METODIT: KUORMITTAMINEN JA KORVAAMINEN ESTETTY... 36 LUOKAT: PERIYTTÄMINEN ESTETTY... 36 ESIMERKKI... 36 ESIMERKIN LUOKAT... 36 KASVI.JAVA... 36 KAKTUS.JAVA...37 KASVIHUONE.JAVA... 38 KERTAUS... 38 POLYMORFISMI... 39 POLYMORFISMI... 39 JOHDANTO... 39 ONGELMA... 39 UPCAST... 39 LUOKKA VOI ESIINTYÄ YLILUOKKANA... 39 UPCAST KÄYTÄNNÖSSÄ... 40 DOWNCAST... 41 YLILUOKASTA TAKAISIN ALILUOKAKSI... 41 DOWNCAST KÄYTÄNNÖSSÄ... 41 INSTANCEOF... 42 LUOKAN TYYPIN TUNNISTAMINEN... 42 KÄYTTÖTARKOITUS... 42 MIHIN UPCASTIA JA DOWNCASTIA TARVITAAN?... 42 ESIMERKKI... 43 ESIMERKIN LUOKAT... 43 TIETOKONE.JAVA... 43 KANNETTAVATIETOKONE.JAVA... 44 TIETOKONEHUOLTO.JAVA... 44

Java-kielen jatkokurssi 6 KERTAUS... 46 KUORMITTAMINEN JA KORVAAMINEN... 47 KUORMITTAMINEN JA KORVAAMINEN... 47 JOHDANTO... 47 ONGELMA... 47 KUORMITTAMINEN... 47 MITÄ KUORMITTAMINEN ON?... 47 MIHIN KUORMITTAMISTA TARVITAAN?... 48 KUORMITTAMINEN JA PERIYTTÄMINEN... 48 KORVAAMINEN... 49 MITÄ KORVAAMINEN ON?... 49 KORVAAMISEN HYÖDYNTÄMINEN... 50 ESIMERKKI... 50 ESIMERKIN LUOKAT... 50 URHEILIJA.JAVA... 50 JALKAPALLOILIJA.JAVA... 51 KERTAUS... 52 ABSTRAKTIT LUOKAT... 53 ABSTRAKTIT LUOKAT... 53 JOHDANTO... 53 ONGELMA... 53 PERUSTEET... 53 MIKÄ ON ASBTRAKTI LUOKKA?... 53 ABSTRAKTIEN LUOKKIEN KÄYTTÖ... 54 SYNTAKSI... 55 ABSTRAKTIN LUOKAN LUOMINEN... 55 PERIYTTÄMINEN ABSTRAKTISTA LUOKASTA... 55 ABSTRAKTIEN LUOKKIEN KÄYTTÖ... 57 MILLOIN ABSTRAKTEJA LUOKKIA TARVITAAN?... 57 ESIMERKKI... 58 ESIMERKIN LUOKAT... 58 KASVI.JAVA... 59 AURINGONKUKKA.JAVA... 59 KAKTUS.JAVA...59 KERTAUS... 60 RAJAPINNAT... 61 RAJAPINNAT... 61 JOHDANTO... 61

Java-kielen jatkokurssi 7 ONGELMA... 61 PERUSTEET... 61 MITÄ RAJAPINNAT OVAT?... 61 RAJAPINTOJEN LUOMINEN... 62 SYNTAKSI... 62 RAJAPINNAN LUOMINEN... 62 RAJAPINNAN TOTEUTTAMINEN... 62 RAJAPINNAN PERIYTTÄMINEN... 63 KÄYTTÖTARKOITUS... 64 MIHIN RAJAPINTOJA TARVITAAN?... 64 ESIMERKKI... 64 ESIMERKIN LUOKAT... 64 TALLENNUSVÄLINE.JAVA... 65 MUISTIKORTTI.JAVA... 65 NAUHA.JAVA... 65 DIGITAALIVIDEOKAMERA.JAVA... 66 KERTAUS... 67 SISÄISET LUOKAT... 68 SISÄISET LUOKAT... 68 JOHDANTO... 68 ONGELMA... 68 SYNTAKSI... 69 SISÄISEN LUOKAN LUOMINEN... 69 ILMENTYMÄT ULKOISEN LUOKAN SISÄLLÄ... 69 ILMENTYMÄT ULKOISEN LUOKAN ULKOPUOLELLA... 70 NÄKYVYYSSÄÄNNÖT... 70 SISÄISEN LUOKAN NÄKYVYYS... 70 MUUTTUJIEN NÄKYVYYS... 70 SISÄISTEN LUOKKIEN KÄYTTÖ... 71 TARVITAANKO SISÄISIÄ LUOKKIA?... 71 KÄYTTÖKOHDE: ABSTRAKTIT LUOKAT JA RAJAPINNAT... 71 KÄYTTÖKOHDE: WHITEBOX-TESTAUS... 73 LOPUKSI... 75 KERTAUS... 75