Olio-ohjelmointi Periytyminen
|
|
- Kirsi Haavisto
- 7 vuotta sitten
- Katselukertoja:
Transkriptio
1 Olio-ohjelmointi 2016 Periytyminen
2 Periytyminen n Perinnässä aliluokka perii kantaluokan ominaisuudet Aliluokka laajentaa kantaluokkaa class LapsiLuokka extends EmoLuokka { LapsiLuokan koodi } n Vain yksi luokka voidaan periä n Kaikki luokat periytyvät Object-luokasta -> kaikissa luokissa mm. Object-luokan metodit equals() clone() tostring() Javalla 2
3 Periytyminen n LuokkaA: a ja b n LuokkaB: a, b ja c n LuokkaC: a, b, d ja e n LuokkaD: a, b, d, e ja f Javalla 3
4 Periytyminen n Piirteiden näkyvyys vaikuttaa Piirre a ei saa olla private, jotta sitä voidaan käyttää luokassa D public on liian yleinen Jos piirre a on protected ja b on oletus ja luokka D sijaitsee eri pakkauksessa kuin luokka A n D voi käyttää piirrettä a mutta ei piirrettä b n b:n näkyvyys rajattu vain saman pakkauksen luokille Javalla 4
5 Periytyminen n Periytymisellä voidaan luoda "is-a"-suhteita n Aliluokka on esi-isiensä kaltainen ympyrä ja suorkulmio ovat kuvioita auto ja polkupyörä ovat kulkuvälineitä mandarini ja kumkvatti ovat hedelmiä Javalla 5
6 Periytyminen public class Polkupyora { // Pokupyörällä on kaksi attribuuttia private int kadenssi; //polkimen kierrosten maara/min private int nopeus; public Polkupyora(int aloituskadenssi, int aloitusnopeus) { kadenssi = aloituskadenssi; nopeus = aloitusnopeus;; public void setpoljinnopeus(int uusiarvo) { kadenssi = uusiarvo; public void jarruta(int maara) { if(nopeus-maara > 0) nopeus -= maara; else nopeus = 0; public void kiihdyta(int maara) { nopeus += maara; } Javalla 6
7 Periytyminen public class MaastoPyora extends Polkupyora{ private int istuimenkorkeus; private int vaihde private int vaihteidenlukmaara; public MaastoPyora(int istuimenalkukorkeus,int vaihteidenlkm; int aloituskadenssi,int aloitusnopeus, int aloitusvaihde) { super(aloituskadenssi, aloitusnopeus); istuimenkorkeus = istuimenalkukorkeus; vaihde = aloitusvaihde; vaihteidenlukmaara = vaihteidenlkm; public void asetaistuimenkorkeus(int uusiarvo) { istuimenkorkeus = uusiarvo; public void asetavaihde(int uusiarvo) { if( uusiarvo >=0 && uusiarvo <= vaihteidenlkm) vaihde = uusiarvo; Javalla 7
8 Periytyminen public class TandemPyora extends Polkupyora{ private int polkijoidenlukumaara; public TandemPyora (int polkijoidenlkm,int aloituskadenssi, int aloitusnopeus) { super(aloituskadenssi, aloitusnopeus); polkijoidenlukumaara = polkijoidenlkm; Javalla 8
9 Periytyminen public class MaastoPyora extends Polkupyora{ private int istuimenkorkeus; private int vaihde private int vaihteidenlukmaara; public MaastoPyora(int istuimenalkukorkeus,int vaihteidenlkm; int aloituskadenssi,int aloitusnopeus, int aloitusvaihde) { super(aloituskadenssi, aloitusnopeus); istuimenkorkeus = istuimenalkukorkeus; vaihde = aloitusvaihde; vaihteidenlukmaara = vaihteidenlkm; public void asetaistuimenkorkeus(int uusiarvo) { istuimenkorkeus = uusiarvo; public void asetavaihde(int uusiarvo) { if( uusiarvo >=0 && uusiarvo <= vaihteidenlkm) vaihde = uusiarvo; Javalla 9
10 Periytyminen n this viittaa olion metodissa olioon itseensä n super viittaa olion metodissa sen kantaluokkaan Välitetään näkymättöminä parametreina jokaiselle metodille public class TandemPyora extends Polkupyora{ private int polkijoidenlukumaara; public TandemPyora (int polkijoidenlkm,int aloituskadenssi, int aloitusnopeus) { Kutsuu Polkupyora-luokan super(aloituskadenssi, aloitusnopeus); konstruktoria this.polkijoidenlukumaara = polkijoidenlkm; Asettaa olion muuttujan arvon Javalla 10
11 Abstraktit luokat n Abstraktista luokasta ei voi suoraan luoda instannsia n Toimii luokkien yliluokkana n Avainsana abstract public abstract class Kuvio { //... public abstract double pintaala(); public class Suorakulmio extends Kuvio { //... public double pintaala() { return leveys * korkeus; Javalla 11
12 Abstraktit luokat public class Ympyra extends Kuvio { //... public double pintaala() { return Math.PI * Math.pow( sade, 2 ); public class Kolmio extends Kuvio { //... public double pintaala() { return (kanta * korkeus)/2.0; Javalla 12
13 Abstraktit luokat n Toteuttavan luokan täytyy toteuttaa kaikki perimänsä abstraktin luokan abstraktit metodit n Sama pätee rajapintaluokkien yhteydessä n Syrjäyttäminen (ylikirjoittaminen) Jälkeläisluokassa voidaan määritellä samanniminen metodi kuin kuin yliluokassa. Metodilla vastaavat parametrit ja palautusarvo Javalla 13
14 Abstraktit luokat abstract class Soitin { protected String nimi; public abstract void soita(); abstract class KieliSoitin extends Soitin { protected int kieltenlukumaara; Javalla 14
15 Abstraktit luokat public class SahkoKitara extends Kielisoitin { public SahkoKitara () { super(); this.nimi = "Kitara"; this.kieltenlukumaara = 6; public SahkoKitara (int kieltenlukumaara) { super(); this.nimi = "Kitara"; this.kieltenlukumaara = kieltenlukumaara; public void soita() { System.out.println("Sähkökitara" + kieltenlukumaara + "-kieltä " + nimi+ " rokkaa"); Javalla 15
16 Abstraktit luokat public class SahkoBassoKitara extends KieliSoitin { public SahkoBassoKitara () { super(); this.nimi = "Bassokitara"; this.kieltenlukumaara = 4; public SahkoBassoKitara (int kieltenlukumaara) { super(); this.nimi = "Bassokitara"; this. kieltenlukumaara = kieltenlukumaara; public void soita() { System.out.println("Sähköinen " + kieltenlukumaara + "- kielinen " + nimi + " rokkaa"); Javalla 16
17 Abstraktit luokat public class KitaraMain { public static void main(string[] args) { SahkoKitara kitara = new SahkoKitara (); SahkoBassoKitara basso = new SahkoBassoKitara(); kitara.soita(); basso.soita(); kitara = new SahkoKitara (12); basso = new SahkoBassoKitara(5); kitara.soita(); basso.soita(); Javalla 17
18 Abstraktit luokat n Virtuaalinen operaatio public abstract class Kuvio{ //.. public String tostring(){ return "Kuvio: "+ teksti + "" + keskipistemj(); public class Suorakulmio extends Kuvio{ public String tostring(){ String kuviomj = super.tostring(); //ylil. metodi return "Suorakulmion korkeus: "+ korkeus + "leveys: " + leveys + " " +kuviomj; Javalla 18
19 Abstraktit luokat n tostring() on virtuaalinen operaatio, toisin sanoen sen toimintaa voidaan muuttaa jälkeläisluokissa n Javassa kaikki metodit ovat automaattisesti virtuaalisia n Ei-virtuaalisen metodin voi määritellä finalavainsanalla, estetään metodin syrjäyttäminen jälkeläisluokassa n Luokan määrittely final-määrellä, tekee luokasta lopullisen, luokkaa ei voi periyttää. n Lopullinen luokka ei voi olla abstrakti Javalla 19
20 Abstraktit luokat n Yliluokan suunnittelussa huomioitava millaisen rajapinnan luokka tarjoaa muille luokille n Abstrakteilla metodelilla voi määritellä rajapinnan toimintoja, jotka toteutetaan myöhemmissä luokissa n Luokan metodien näkyvyys vaikuttaa luokan tarjoamaan rajapintaan public, piirre on kaikkien luokkien käytettävissä protected, jälkeläisluokissa käytettäväksi private, piirre on vain tietyn luokan toteutusta, eivät ole käytössä muissa luokissa
21 Abstraktit luokat n Jos luokassa on vain abstrakteja metodeja, kannattaa luokasta tehdä rajapinta n Luokka voi toteuttaa useita rajapintoja, mutta periä voi vain yhden luokan
22 Metodin dynaaminen sidonta n Aliluokassa voidaan uudelleenmääritellä yliluokan metodi Metodin tyyppi täsmälleen sama kuin yliluokassa n Yliluokan tyyppinen muuttuja voi viitata aliluokan olioon Mitä tapahtuu, kun kutsutaan metodia? n Myöhäinen sidonta (dynaaminen) vs. aikainen sidonta (staattinen) Javassa metodikutsu sidotaan dynaamisesti Suoritettava metodi päätetään ajonaikana Etsintä alkaa perusluokasta, sitten perusluokan yliluokasta jne. kunnes metodin toteutus löytyy Javalla 22
23 Metodin dynaaminen sidonta n Dynaaminen sidonta hitaampaa n Monimuotoisuus Sama kohde voi tarkoitaa useita eri asioita n Viitemuuttujat ovat rajoitetusti monimuotoisia Voi viitata määritelyn luokan olioon Voi viitata luokan jälkeläisluokan olioon n Koskee myös taulukon alkioita Javalla 23
24 Metodin dynaaminen sidonta class Kanta { public void tulosta() { } } class Ali extends Kanta { public void tulosta(){ } } Uudelleenmäärittely // Ohjelmassa Kanta k = new Ali(); k.tulosta(); Kutsuu Ali-luokan metodia Javalla 24
25 Metodin dynaaminen sidonta Kuvio kt [] = new Kuvio[2]; kt[0] = new Ympyra(10, 20, 5, "ymp"); kt[1] = new Suorakulmio(10, 20, 5, 10, "SK"); for(int i =0; i kt.length; i++){ System.out.printf("%s %.2f%n", kt[i].getteksti(), kt[i].ala(); Javalla 25
26 Dynaaminen sidonta n Periytyminen vaikuttaa rakentajien kutsumiseen n Luokan alustus eteenee new varaa oliolle muisti new alustaa olion attribuutit oletusarvoilla Rakentajan kutsu n Jos rakentajan alussa on halutaan kutsua jotain toista ko. luokan rakentajaa (this), tehdään se ensin n Jos luokalla on yliluokka, kutsutaan sen rakentajaa (super) n Yliluokan rakentajasta palattaessa alustetaan attribuutit, joille annetaan arvo määrittelyssä n Rakentajan lopetus Javalla 26
27 Dynaaminen sidonta public class Counter { private int count; public Counter(){ public Counter(int initialvalue){ //.. count = initialvalue; Counter c1 = new Counter(); Counter c2 = new Counter(100); Javalla 27
28 Dynaaminen sidonta n Rakentajasta voidaan kutsua Toista saman luokan rakentajaa Yliluokan rakentajaa Luokan muita metodeja n Luokan rakentajaa kutsutaan this([mahdolliset parametrit]) n Yliluokan rakentajaa kutsutaan super([mahdolliset parametrit]) public Counter(){ this(100); Javalla 28
29 Dynaaminen sidonta public Counter(){ this(100); public Counter(int initialvalue){ super(); //Object luokan rakentajan kutsu count = initialvalue; n Yliluokan rakentajan explisiittinen kutsu tarpeen, jos yliluokalla ei ole oletusrakentajaa Javalla 29
30 Dynaaminen sidonta class C { protected int x, z; public C(int n){ x=n; laskez(); public void laskez(){ z = 2 * x; class D extends C { protected int y = 1; public D(int nx, int ny){ super(nx); y = ny; public void laskez(){ z = y * x; D joku = new D(3, 4); Javalla 30
31 Dynaaminen sidonta n Olion tyypin voi tarkistaa instanceof-operaattorilla ennen tyypinmuunnosta Soitin sk = new SahkoKitara(); Nokkahuilu nh = (Nokkahuilu)sk; //yritetään tehdä tyypinmuunnos n Yllä oleva kaatuu poikkeustilanteenseen: Exception in thread "main" java.lang.classcastexception: SahkoKitara cannot be cast to Nokkahuilu at NokkaHuiluTesti.main(NokkaHuiluTesti.java:9) Javalla 31
32 Dynaaminen sidonta n Jos tutkittava viite sisältää null-arvon, instanceof palauttaa aina arvon false n null-viitteen tyypin voi muuttaa miksi tahansa tyypiksi n Ajonaikaiset tyypintarkastukset kielivät yleensä suunnitteluvirheestä Soitin sk = new NokkaHuilu(); if( sk instanceof SahkoKitara ){ (SahkoKitara)sk.soita(); }else{ //tyypit ovat epäyhteensopivia } Object obj = null; SahkoKitara sk = (SahkoKitara)obj; Javalla 32
33 Dynaaminen sidonta, generinen tyyppi n Tietotyyppien abstrahointia n Kaikkein yleiskäyttöisin tietorakenne on Object n Voidaan joutua tekemään tyypinmuunnoksia (vanha tyyli alla) ArrayList lista = new ArrayList(); lista.add(0, "Murmeli"); String elukka = lista.get(0); //virhe Muunnos String elukka =(String)lista.get(0); Javalla 33
34 Genenrinen tyyppi n Nykyisin käytetään generisiä tyyppejä n Säilytettävän olion tyyppi parametrisoidaan n Tyyppiparametri (kulmasulkeissa) ArrayList<String> lista = new ArrayList<String>(); lista.add(0, "Murmeli"); String elukka = lista.get(0); n Tyyppiparametri määrää olion tyypin, listaan ei voi tallettaa väärää tyypiä olevia olioita n Samoin listasta palautuu automaattisesti määriteltyä tyyppiä oleva olio Javalla 34
35 Generinen tyyppi ArrayList<String> lista = new ArrayList<>(); n Java 7 alkaen kääntäjä voi osata päätellä automaattisesti tyyppiparametrin n Rakentajan kutsussa riittää pelkät kulmasulut (timanttti) n Kääntäjä varoitta kulmasulkujen puuttumisesta Javalla 35
36 Generinen tyyppi n Luokan tyyppi on parametrisoitu n Myös generinen rajapinta voidaan parametrisoida n Tyyppiä käytettäessä muodolliset tyyppiparametrit korvataan todellisilla public interface Pino<E> { public boolean ontyhja(); public boolean ontaysi(); public void lisaa(e o); public E palauta(); Javalla 36
37 Generinen tyyppi public class OmaPino<E> implements Pino<E> { private int koko = 0; private E[] otukset; public OmaPino(final int koko){ otukset = (E[]) new Object[koko]; public boolean ontyhja(){ return koko == 0; public boolean ontaysi(){ return koko == otukset.length; public void lisaa(e o){ otukset[koko++] = o; public E palauta(){ E otus = otukset[--koko]; otukset[koko]=null; return otus; Javalla 37
38 Generinen tyyppi public static void main(string [] args) { OmaPino<String> mjonopino = new OmaPino<String>(10); String mjono = new String("Katti"); mjonopino.lisaa(mjono); mjonopino.lisaa("matti Kattinen"); System.out.println("Pino:"); while( mjonopino.ontyhja() ){ mjono = mjonopino.palauta(); System.out.println("Mjono: " + mjono); Javalla 38
39 Generinen tyyppi n Ohjelman kääntäminen javac Xlint:unchecked OmaPino.java n Tyyppiparametrien niminä käytetään yksikirjaimisia tunnuksia E, elementti K, avain N, numero T, tyyppi V, arvo Javalla 39
40 Sisäluokat n Sisäluokka (nested class) on toisen luokan sisällä määritelty luokka n Sisäluokka voi olla myös sisältävän luokan metodin sisällä class SisaltavaLuokka { // attribuutteja // metodeja class Sisaluokka { //attribuutteja // metodeja Javalla 40
41 Sisäluokat n Sisäluokat pääsevät käsiksi sisältävän luokan piirteisiin n Sisäluokkia käytetään Luokkaa käytetään vain yhdessä paikassa Lisää kapselointia: n Luokat A ja B n A:n jäsenent private-tyyppiä ja B:n pitäisi päästä käsiksi A:n piirteisiin n B kätketään A:n sisälle n Samalla B voidaan piilottaa ulkomailmalta Voi tuottaa helpommin luettavaa ja ylläpidettävää koodia, luokka voi olla lähempänä käyttöpaikkaa Javalla 41
42 Sisäluokat n Ulommasta luokasta on oltava olio ennen kuin sisemmästä luokasta voidaan luoda olio UlompiLuokka ulompiolio = new UlompiLuokka();... UlompiLuokka.SisempiLuokka sisempiolio = ulompiolio.new SisempiOlio() n Sisäluokka voidaan myös määritellä nimettömäksi sisäluokaksi n Luokka määritellään ja olio luodaan heti n Käytetään kun halutaan ylikirjoitaa luokan tai rajapinnan metodi Javalla 42
43 Sisäluokat abstract class AnonyymiSisaluokka { public abstract void omametodi(); public class Anonyymi { public static void main(string [] args){ AnonyymiSisaluokka sisempi = new AnonyymiSisaluokka(){ public void omametodi(){ System.out.println("Esimerkki anon. sisäluokasta"); }; huomaa puolipiste sisempi.omametodi(); Javalla 43
44 Sisäluokat n Sisäluokka voi olla luokkakohtainen sisäluokka n Määritellään käyttäen static-avainsanaa public class Ulompi { static class SisaLuokka{ public void omametodi(){ System.out.println("Tama on minun sisempi luokka"); public static void main(string args[]){ Ulompi.SisaLuokka sisempi = new Ulompi.SisaLuokka(); sisempi.omametodi(); Javalla 44
45 Lueteltu tietotyyppi n Määritellään käyttämällä avainsanaa enum n Luetellun tyypin avulla voi rajoittaa muuttujan saamia arvoja n Lueteltua tyyppiä olevaan muuttujaan ei voi sijoittaa muita kuin kyseiseen tyyppiin kuuluvia arvoja public enum Viikonpaiva { MA, TI, KE, TO, PE, LA,SU };... Viikonpaiva pv = 5; n Tuloksena virheilmoitus error: incompatible types: int cannot be converted to Viikonpaiva Viikonpaiva pv = 5; Javalla 45
46 Lueteltu tyyppi n Luetellulla tietotyypillä luokkakohtaiset metodit values(), palautaa arvot määrittelyjärjestyksessä taulukossa valueof(string), palauttaa vakioarvon sen nimen perusteella class EnumDemo { public enum Viikonpaiva { MA, TI, KE, TO, PE, LA,SU }; public static void main(string [] args){ for( Viikonpaiva p: Viikonpaiva.values()) System.out.println(p); Javalla 46
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ä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ä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ä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ä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. 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ä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ätiedot15. 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ä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ä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ä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ätiedotSisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki
Sisällys JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta Abstrakti luokka ja metodi Rajapintamäärittely (interface) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E.
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ätiedot12. Monimuotoisuus 12.1
12. Monimuotoisuus 12.1 Sisällys Johdanto. Periytymismekanismi määrittää alityypityksen. Viitteiden sijoitus ja vertailu. Staattinen ja dynaaminen luokka. Myöhäinen ja aikainen sidonta. Parametrinvälitys
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ä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ä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ätiedotAalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1. Oliot ja luokat Javaohjelmoinnissa
Aalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1 Oliot ja luokat Javaohjelmoinnissa Vesa Laakso 22.9.2012 Sisällysluettelo Sisällysluettelo... 1 Johdanto... 2 1. Luokka... 2 2. Olio... 2 3. Luokan
Lisätiedot15. 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ä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ä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ä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ä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ätiedotLuokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.
1 Luokka Murtoluku uudelleen Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista. Sievennettäessä tarvitaan osoittajan ja nimittäjän suurin yhteinen tekijä (syt).
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ätiedotHarjoitus 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ätiedotRajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.
11. Rajapinnat 11.1 Sisällys Johdanto. Abstrakti luokka vai rajapinta? Rajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen
LisätiedotSisällys. 11. Rajapinnat. Johdanto. Johdanto
Sisällys 11. ajapinnat. bstrakti luokka vai rajapinta? ajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen avulla.
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ä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ä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ä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ätiedot12. Monimuotoisuus 12.1
12. Monimuotoisuus 12.1 Sisällys Johdanto. Periytymismekanismi määrittää alityypityksen. Viitteiden sijoitus ja vertailu. Staattinen ja dynaaminen luokka. Parametrinvälitys eräs monimuotoisuuden sovellus.
LisätiedotOhjelmoinnin 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ätiedotOhjelmointi 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ä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ä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ä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ä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ä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ä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ä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ätiedotTehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki
Tehtävä 1 Koherentti selitys Koherentti esimerkki ½p ½p Tehtävä 2 Täysiin pisteisiin edellytetään pelaajien tulostamista esimerkin järjestyksessä. Jos ohjelmasi tulostaa pelaajat jossain muussa järjestyksessä,
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. 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ätiedotLohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 15.3
15. Lohkot 15.1 Sisällys Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat operaation alussa vai myöhemmin? 15.2 Lohkot Aaltosulkeet
LisätiedotOpintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Tietorakenneluokkia 2: HashMap, TreeMap
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Tietorakenneluokkia 2: HashMap, TreeMap Tietorakenneluokkia ja -rajapintoja Java tarjoaa laajan kokoelman tietorakennerajapintoja ja - luokkia. Aiemmin
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ätiedotJava-API, rajapinnat, poikkeukset, UML,...
Java-API, rajapinnat, r poikkeukset, UML,... Janne Käki 12.10.2006 Keskeisimmät Java-API:n pakkaukset API = Application Programming Interface eli sovellusohjelmointirajapinta (!) pakkaus (engl. package)
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ä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ätiedotLohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 16.3
16. Lohkot 16.1 Sisällys Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat operaation alussa vai myöhemmin? 16.2 Lohkot Kaarisulut
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ätiedotKääreluokat (oppikirjan luku 9.4) (Wrapper-classes)
Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokista Javan alkeistietotyypit ja vastaavat kääreluokat Autoboxing Integer-luokka Double-luokka Kääreluokista Alkeistietotyyppiset muuttujat (esimerkiksi
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ä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ätiedotOlio-ohjelmoinnissa luokat voidaan järjestää siten, että ne pystyvät jakamaan yhteisiä tietoja ja aliohjelmia.
4. Periytyminen 4.1. 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ätiedotJava-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ä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ä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ätiedotLuokan 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ätiedotSisällys. 15. Lohkot. Lohkot. Lohkot
Sisällys 15. Lohkot Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat operaation alussa vai myöhemmin? 15.1 15.2 Lohkot Aaltosulkeet
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ä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ätiedotTenttikysymykset. + UML-kaavioiden mallintamistehtävät
Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä
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ätiedot19. 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ä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ätiedot18. Abstraktit tietotyypit 18.1
18. Abstraktit tietotyypit 18.1 Sisällys Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:
Lisätiedot20. Javan omat luokat 20.1
20. Javan omat luokat 20.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.2 Java API Java-kielen Application Programming Interface (API)
LisätiedotSisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang
Sisällys 20. Javan omat luokat Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.1 20.2 Java API Java-kielen Application Programming Interface (API)
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ä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ätiedotInformaatioteknologian 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ätiedotVertailulauseet. 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ä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ä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ätiedot812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä
2016 IX Olioiden välisistä yhteyksistä Sisältö 1. Johdanto 2. Kytkentä 3. Koheesio 4. Näkyvyydestä 2 Johdanto n Ohjelmassa syntyy kytkentöjä olioiden välille Toivottuja ja epätoivottuja n Näkyvyys vaikuttaa
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ä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ätiedotSisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto
Sisällys 18. bstraktit tietotyypit Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.1 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:
LisätiedotOhjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma.
Välikoe / 20.3 Vastaa neljään (4) tehtävään. Jos vastaat 5:een, 4 huonointa arvostellaan. Kunkin tehtävän vastaus eri konseptille. 1. Pöytätesti Pöytätestaa seuraava ohjelma. Tutki ohjelman toimintaa pöytätestillä
LisätiedotOpintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Standardi- ja tietorakenneluokkia
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Standardi- ja tietorakenneluokkia Standardi- ja tietorakenneluokkia Javan API, ArrayList Ohjelmointirajapinta (Application Programming Interface, API)
LisätiedotC# 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ätiedotOlio-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ä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- Komposiittityypit - Object (Mukaanlukien funktiot) - Array. - Erikoisdatatyypit - null - undefined
Ohjelmointitekniikka Tyyppiturvallisuuden tavoittelua Javascriptissa muuttujat ovat tyypittömiä, mutta arvoilla on tyyppi. Muuttuja esitellään var -avainsanalla ja muuttujan tyypin arvoa ei erikseen 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ätiedotTietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public)
Tietorakenteet JAVA-OHJELMOINTI Osa 5: Tietorakenteita Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto Olioita ja tietoja voidaan organisoida määrämuotoisiksi tietorakenteiksi Hyödyllisiä
LisätiedotLinkitetystä listasta perittyä omaa listaa käytetään muun muassa viestiin liittyvien vastausten säilömiseen.
Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi Java-kielellä keskustelualuetta simuloiva olioperustainen ohjelma (Simple Oope Board, S.O.B). Linkitetystä listasta perittyä omaa listaa käytetään muun muassa
LisätiedotPakkauksen kokoaminen
13. Pakkaukset 13.1 Sisällys Pakkauksen kokoaminen package-määrettä käyttäen. Pakkaukset ja hakemistorakenne. Pakkauksen luokkien käyttö muissa pakkauksissa importlauseen avulla. Pakkaukset ja näkyvyys.
LisätiedotOhjelmointi 2, välikoe
Ohjelmointi 2, välikoe 21.3.2014 Vastaa neljään tehtävään kuudesta siten, että jokainen tehtävä tulee omalle konseptilleen. Mikäli vastaat useampaan kuin neljään tehtävään, pisteiden laskussa huomioidaan
LisätiedotLuokkamalli LUOKKAKAAVIO. Tämän osan sisältö. Luokkamalli. Luokka ja olio. Luokkakaavio (class diagram)
4 Luokkamalli Rakenteet mittojen mukaan. Mitat rakenteen mukaan. Tämän osan sisältö Luokkakaavio luokkakaavion elementti attribuutit operaatiot määreet Olioiden väliset suhteet kytkös kooste yleistys rajapinta
LisätiedotLuokat ja oliot. Ville Sundberg
Luokat ja oliot Ville Sundberg 12.9.2007 Maailma on täynnä olioita Myös tietokoneohjelmat koostuvat olioista Σ Ο ω Μ ς υ φ Ϊ Φ Θ ψ Љ Є Ύ χ Й Mikä on olio? Tietokoneohjelman rakennuspalikka Oliolla on kaksi
LisätiedotPino S on abstrakti tietotyyppi, jolla on ainakin perusmetodit:
Pino (stack) Pino: viimeisenä sisään, ensimmäisenä ulos (LIFO, Last In, First Out) -tietorakenne kaksi perusoperaatiota: alkion lisäys pinon päälle (push), ja päällimmäisen alkion poisto (pop) Push(alkio)
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ätiedot7. Näytölle tulostaminen 7.1
7. Näytölle tulostaminen 7.1 Sisällys System.out.println- ja System.out.print-operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden muotoilua. 7.2 Tulostusoperaatiot System.out.println-operaatio
LisätiedotOhjelmoinnin perusteet, kurssikoe
Ohjelmoinnin perusteet, kurssikoe 18.6.2014 Kirjoita jokaiseen konseptiin kurssin nimi, kokeen päivämäärä, nimi, TMC-tunnus ja opiskelijanumero tai henkilötunnus. Vastaukset palautetaan tehtäväkohtaisiin
LisätiedotPoikkeustenkä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