Sisällysluettelo:
Laajenna
-
Kutista
Lukijalle
1. Johdanto
1.1 Ketterät menetelmät
1.2 Extreme Programming
1.2.1 Kurssilla sovellettavia XP:n käytäntöjä
1.3 Ohjelman suunnittelu
1.4 Työkalun valinta
1.5 Koodaus
1.6 Testaus
1.7 Hyväksymistestaus ja palaute
1.8 Käyttöönotto
1.9 Ylläpito
1.10 Yhteenveto, kielellä ei väliä
2. Kerhon jäsenrekisteri
2.1 Tehtävän tarkennus
2.2 Työkalun valinta, vaihtoehtoja
2.3 Tietorakenteet ja tiedostot
2.4 Käyttöohje ja käyttöliittymä
2.4.1 Ohjelman käynnistys
2.4.2 Hakeminen
2.4.3 Muokkaaminen
2.4.4 Lisää uusi jäsen
2.4.5 Poista jäsen
2.4.6 Tulosta
2.4.7 Lopeta
2.4.8 Apua
2.4.9 Tietoja
2.5 Hyväksymistestaus
2.5.1 Tyypillisiä vikoja
2.6 Tarvittavien algoritmien hahmottaminen
2.6.1 Ylemmän tason aliohjelmat
2.6.2 Alemman tason aliohjelmat
2.7 Koodaus ohjelmointikielelle
2.8 Varautuminen tulevaan, eli relaatiotietomalli
2.8.1 Kaikki samassa tietueessa
2.8.2 Erimalliset tietueet
2.8.3 Relaatiomalli tiedostoon
2.8.4 XML-muotoinen tiedosto
2.9 Graafiset käyttöliittymät
2.9.1 Komponentit
2.9.2 Omat komponentit
2.9.3 Graafisten käyttöliittymien suunnittelutyökalut
2.9.4 Tapahtumat
3. Algoritmin suunnittelu
3.1 Algoritmi
3.2 Lajittelu yleisesti
3.2.1 Nimien ja numeroiden vertaus
3.2.2 Algoritmin sanallinen versio on kuvaavampi!
3.2.3 Numeroiden järjestäminen
3.2.4 Kuplalajittelu
3.2.5 Lajittelu avaimen mukaan
3.2.6 Algoritmin parantaminen
3.3 Algoritmin tarkentaminen
3.3.1 Pienimmän etsiminen
3.3.2 Paikalleen sijoittaminen
3.4 Haku järjestetystä joukosta
3.4.1 Suora haku
3.4.2 Puolitushaku
3.5 Yhteenveto
4. Algoritmeissa tarvittavia rakenteita
4.1 Ehtolauseet
4.2 Valintalauseet
4.3 Silmukat
4.4 Muuttuja-käsite
4.4.1 Yksinkertaiset muuttujat
4.4.2 Pöytätesti
4.4.3 Yksiulotteiset taulukot, alkiot rivissä
4.4.4 Osoittimet
4.4.5 Moniulotteiset taulukot
4.4.6 Sekarakenteet
4.5 Osoittimista ja indekseistä
4.6 Aliohjelmat avuksi
4.7 Vaihtoehtojen tutkiminen totuustaulun avulla
4.7.1 Kaikkien vaihtoehtojen kirjaaminen
4.7.2 Vaihtoehtojen lukumäärä
4.7.3 Useita vaihtoehtoja samalla muuttujalla
4.7.4 Loogiset operaatiot
4.8 Muistele tätä
5. Esimerkkejä eri kielistä
5.1 Esimerkkiohjelmat
5.1.1 C
5.1.2 C++
5.1.3 Java
5.1.4 C#
5.1.5 Pascal
5.1.6 Fortran
5.1.7 ADA
5.1.8 BASIC
5.1.9 APL
5.1.10 Modula–2
5.1.11 Lisp
5.1.12 FORTH
5.1.13 Assembler
5.2 Käytettävän kielen valinta
6. Java –kielen alkeita
6.1 C#:sta Javaan
6.2 Hello World! Java ja C#–kielillä
6.3 Tekstitiedostosta toimivaksi konekieliseksi versioksi
6.3.1 Kirjoittaminen
6.3.2 Kääntäminen
6.3.3 Linkittäminen
6.3.4 Ohjelman ajaminen
6.3.5 Varoitus
6.3.6 Integroitu ympäristö
6.4 Ohjelman yksityiskohtainen tarkastelu
6.4.1 Kommentointi
6.4.2 Miten kommentoida
6.4.3 JavaDoc
6.4.4 Valmiin kommenttilohkon lukeminen
6.4.5 Tarvittavien luokkien esittely
6.4.6 Luokan esittely
6.4.7 Pääohjelman esittely
6.4.8 Lausesulut
6.4.9 Tulostuslause
6.4.10 Lauseen loppumerkki ;
6.4.11 Isot ja pienet kirjaimet
6.4.12 White spaces, tyhjä
6.4.13 Vakiomerkkijonot
6.4.14 Vakiolukuarvot
7. Java–kielen muuttujista ja aliohjelmista
7.1 Mittakaavaohjelman suunnittelu
7.2 Muuttujat
7.2.1 Matkan laskeminen
7.2.2 Muuttujan nimeäminen
7.2.3 Muuttujalle sijoittaminen =
7.2.4 Muuttujan esittely ja alkuarvon sijoittaminen
7.3 Muuttujan arvon lukeminen päätteeltä
7.3.1 Lukeminen merkkijonoon
7.3.2 Lukuarvon selvittäminen merkkijonosta
7.3.3 Apumetodit
7.3.4 Apuluokat
7.3.5 Luokan testaaminen
7.3.6 Luokan käyttäminen
7.4 Viitteet
7.4.1 Miksi viitteet?
7.4.2 Lokaalit muuttujat
7.4.3 Dynaaminen muisti
7.4.4 Viitteiden vertaaminen
7.4.5 Viitteeseen sijoittaminen
7.4.6 null-viite
7.5 Aliohjelmat (metodit, funktiot)
7.5.1 Parametriton aliohjelma
7.5.2 Funktiot ja parametrit
7.5.3 Parametrin nimi kutsussa ja esittelyssä
7.5.4 Nimessään arvon palauttavat funktiot
7.5.5 Ketjutettu kutsu
7.5.6 Yksinkertaisen aliohjelman kutsuminen
7.5.7 Aliohjelmat tulostavat harvoin
7.5.8 Jäsenten tulostaminen
7.6 Parametrinvälitys
7.6.1 Useita parametreja
7.6.2 Parametrin paikka ratkaisee, ei nimi
7.6.3 Metodin nimen kuormittaminen
7.6.4 Muuttujien lokaalisuus
7.6.5 Parametrinvälitysmekanismi
7.6.6 Aliohjelmien kirjoittaminen
7.6.7 Luokkamuuttujat ja suhde lokaaleihin muuttujiin
7.7 Testipääohjelmat
7.8 Yksikkötestaus
7.9 JUnit
7.10 ComTest
7.10.1 ComTestin makrokieli
7.10.2 ComTestin edistyneemmät ominaisuudet
7.11 Mittakaavaohjelma graafisena
8. Kohti olio-ohjelmointia
8.1 Miksi olioita tarvitaan
8.2 Hynttyyt yhteen, eli muututaan olioksi
8.2.1 Terminologiaa
8.2.2 Ensimmäinen olio-esimerkki
8.2.3 toString()
8.2.4 Luokka (class) ja olio (object)
8.2.5 Suojaustasot ja kapselointi
8.2.6 Muodostajat (constructor)
8.2.7 Oletusmuodostaja (default constructor)
8.2.8 Sisäinen tilan valvonta
8.2.9 Metodien kuormittaminen (lisämäärittely, overloading)
8.2.10 this-osoitin
8.3 Perintä
8.3.1 Luokan ominaisuuksien laajentaminen
8.3.2 Alkuperäisen luokan muuttaminen
8.3.3 Saantimetodit
8.3.4 Koostaminen
8.3.5 Perintä, inheritance
8.3.6 Polymorfismi, eli monimuotoisuus
8.3.7 Myöhäinen sidonta
8.4 Kapselointi
8.4.1 Rajapinta ja sisäinen esitys
8.5 Rajapinta ja monimuotoisuus
8.6 Object-luokan metodien korvaaminen
8.7 Mistä hyviä luokkia
8.8 Valmiita luokkia
8.8.1 Merkkijonoluokat
9. Java–kielen ohjausrakenteista ja operaattoreista
9.1 if–lause
9.1.1 Ehdolla suoritettava yksi lause
9.1.2 Ehdolla suoritettava useita lauseita
9.2 Loogiset lausekkeet
9.2.1 Vertailuoperaattorit
9.2.2 Sijoitus palauttaa arvon!
9.3 Loogisten lausekkeiden yhdistäminen
9.3.1 Loogiset operaattorit &&, || ja !
9.3.2 Loogisen lausekkeen suoritusjärjestys
9.3.3 Loogiset operaattorit & ja |
9.4 Bittitason operaattorit
9.5 if – else –rakenne
9.5.1 Sisäkkäiset if–lauseet
9.5.2 Useat peräkkäiset ehdot
9.6 do–while –silmukka
9.7 while –silmukka
9.8 for –silmukka, tavallisin muoto
9.9 for-each silmukka
9.10 Java–kielen lauseista
9.10.1 Sijoitusoperaattori =
9.10.2 Sijoitus- ja kasvatusoperaattori +=
9.10.3 Lisäysoperaattori ++
9.11 for –silmukka, yleinen muoto
9.12 break ja continue
9.12.1 break
9.12.2 continue
9.13 switch –valintalause
9.13.1 | ei toimi switch –lauseessa!
9.14 Ikuinen silmukka
9.14.1 Yhteenveto silmukoista
10. Oliosuunnittelu
10.1 Olio on luokan esiintymä
10.2 Tavoitteet
10.3 Luokat
10.4 CRC–kortit
10.4.1 Jäsen-luokka (Jasen)
10.4.2 Kerho-luokka, yksinkertainen (Kerho)
10.4.3 Käyttöliittymä-luokka (Naytto)
10.4.4 Luokkajaon tarkastelua
10.5 Harrastukset mukaan kortteihin
10.5.1 "Oliomalli"
10.5.2 Relaatiomalli kortteihin
10.5.3 Harrastus-luokka (Harrastus)
10.5.4 Kerho-luokka (Kerho)
10.5.5 Jäsenet-luokka (Jasenet)
10.5.6 Harrastukset-luokka (Harrastukset)
11. Jäsenrekisterin runko
11.1 Runko ilman kommentteja
11.2 Valittava tietorakenne
11.2.1 Taulukko
11.2.2 Linkitetty lista
11.2.3 Sekarakenne
11.3 Harrastukset mukaan
11.3.1 Tiedot jäsenen yhteyteen
11.3.2 Relaatiomalli tietorakenteeseen
12. Java–kielen taulukoista
12.1 Yksiulotteiset taulukot
12.1.1 Taulukon määrittely
12.1.2 Taulukon alkioihin viittaaminen indeksillä
12.1.3 Taulukon läpikäyminen for ja for-each–silmukoilla
12.1.4 Taulukon alustaminen
12.2 Merkkijonot
12.2.1 Merkkityyppi
12.2.2 String
12.2.3 StringBuilder ja StringBuffrer
12.3 Moniulotteiset taulukot Javassa
12.3.1 Kiinteä esittely
12.3.2 Yksiulotteisen taulukon käyttäminen moniulotteisena
12.3.3 Taulukko taulukoista
12.3.4 Taulukko viitteistä
12.4 Komentorivin parametrit (argv)
13. Dynaaminen muistinkäyttö
13.1 Muistin käyttö
13.2 Dynaamisen muistin käyttö Javassa
13.2.1 new
13.2.2 Olion tuhoaminen
13.2.3 Taulukon luominen new []
13.3 Dynaamiset taulukot
13.3.1 Poikkeukset
13.3.2 Poikkeukset ja ComTest
13.4 Geneerinen taulukko
13.5 Javan Collections Framework
13.5.1 ArrayList ja geneerisyys
13.5.2 Iteraattori
13.5.3 Geneerisyys
13.5.4 Algoritmit
13.6 Tietovirta parametrina
14. Funktio-olio
14.1 Numeerinen integrointi
14.1.1 Sinifunktion integrointi
14.2 Numeerinen integrointi ja rajapinta
14.3 Rajapinnan käyttäminen
15. Tiedostot
15.1 Tiedostojen käsittely
15.1.1 Lukeminen
15.2 Tiedostojen käsittely Javan tietovirroilla
15.2.1 Tiedoston avaaminen muodostajassa
15.2.2 Tiedostosta lukeminen
15.2.3 Tiedoston lopun testaaminen
15.2.4 Tiedostoon kirjoittaminen
15.2.5 Tiedoston sulkeminen close
15.3 Tiedoston yhdellä rivillä monta kenttää
15.3.1 Ongelma
15.4 Merkkijonon paloittelu
15.4.1 parse
15.4.2 erota
15.4.3 Esimerkki erota-funktion käytöstä
15.4.4 Erota funktion toiminta vaihe vaiheelta
15.4.5 Luvun erottaminen
15.5 Lukeminen ja paloittelu
15.5.1 Olio joka lukee itsensä
15.6 Esimerkki tiedoston lukemisesta
15.7 Kerhon talletukset
16. Kerho-ohjelman rakenne
16.1 Jäsen ja kentät
16.1.1 Algoritmi näytön ja jäsenen keskustelulle
16.2 Näytön ja jäsenen välinen rajapinta
16.3 Kerhon rakenne
16.3.1 KerhoSwingin ja käyttöliittymän yhteistoiminta
16.4 Jäsenien selaaminen
16.5 Jäsenkenttien lisääminen
16.6 Oikeellisuustarkistukset
16.6.1 Säännölliset lausekkeet
16.6.2 Säännöllisten lausekkeiden käyttäminen
16.7 Kentät graafiseen käyttöliittymään
16.8 Etsiminen
16.9 Lajittelu avaimen kentän mukaan
16.10 Tulostaminen
Hakemisto
Tehtävät:
Tehtävä 2.1 Ketkä harrastavat?
Tehtävä 2.2 Mikä on tilaa säästävin tallennusmuoto
Tehtävä 3.1 Kävelyohjeet
Tehtävä 3.2 Muita lajittelualgoritmeja
Tehtävä 3.3 Algoritmin kompleksisuus
Tehtävä 3.4 Lajittelujärjestys
Tehtävä 3.5 Kuplalajittelu
Tehtävä 3.6 Loppuminen erikoistapauksessa
Tehtävä 3.7 QuickSortin kompleksisuus
Tehtävä 3.8 Lisäys oikealle paikalleen vaiko lisäys loppuun ja lajittelu?
Tehtävä 3.9 Puolitushaku
Tehtävä 3.10 Puolitushaun kompleksisuus
Tehtävä 3.11 Kumin paikkaus
Tehtävä 3.12 Sunnuntai–ilta
Tehtävä 3.13 Onkiminen
Tehtävä 3.14 Järjestyksen kääntäminen päinvastaiseksi
Tehtävä 4.1 Ajanlisäys
Tehtävä 4.2 Postimaksu
Tehtävä 4.3 Korvaaminen ehtolauseilla
Tehtävä 4.4 Uiminen
Tehtävä 4.5 Ynnää luvut 1–100
Tehtävä 4.6 Vuokaavio
Tehtävä 4.7 Algoritmin parantaminen
Tehtävä 4.8 Pöytätesti
Tehtävä 4.9 Lajittelun testaus
Tehtävä 4.10 Korttien poisto
Tehtävä 4.11 Korttien poisto osoittimia käyttäen
Tehtävä 4.12 Kaksiulotteisen taulukon indeksit
Tehtävä 4.13 Sijoitus 3–ulotteiseen taulukkoon
Tehtävä 4.14 3–ulotteinen taulukko 1–ulotteiseksi
Tehtävä 4.15 Kolmiulotteinen taulukko
Tehtävä 4.16 Neliulotteinen taulukko
Tehtävä 4.17 Sanojen muuttaminen
Tehtävä 4.18 Lihapullan paistaminen
Tehtävä 4.19 Kombinaatioiden lukumäärä
Tehtävä 4.20 BAL=kyllä?
Tehtävä 4.21 Kuka valehtelee?
Tehtävä 4.22 de Morganin kaava
Tehtävä 4.23 Osittelulaki
Tehtävä 4.24 Ehtojen sieventäminen
Tehtävä 4.25 Merkkijonot
Tehtävä 4.26 Päivämäärät
Tehtävä 6.1 Nimi ja osoite
Tehtävä 6.2 Terve maailma!
Tehtävä 6.3 Nimi ja osoite vakioksi
Tehtävä 6.4 Tetraedri
Tehtävä 7.1 Vakion korvaaminen
Tehtävä 7.2 Avainsanat
Tehtävä 7.3 Muuttujan nimeäminen
Tehtävä 7.4 Muuttujien esittely
Tehtävä 7.5 Oletuksen tulostaminen
Tehtävä 7.6 Muiden tyyppien lukeminen
Tehtävä 7.7 Mittakaavan kysyminen
Tehtävä 7.8 Funktio ja osoitin
Tehtävä 7.9 String vs. StringBuffer
Tehtävä 7.10 Math-luokka
Tehtävä 7.11 Funktiot
Tehtävä 7.12 Ympyrän ala ja pallon tilavuus
Tehtävä 7.13 Pääohjelma yhtenä funktiokutsuna
Tehtävä 7.14 Päämenuun kerhon nimi
Tehtävä 7.15 Toisen asteen yhtälön juuri
Tehtävä 7.16 Toisen asteen polynomi, root_1
Tehtävä 7.17 root_1 testaus
Tehtävä 7.18 Toisiaan kutsuvat aliohjelmat
Tehtävä 7.19 Eri nimet
Tehtävä 7.20 Muotoilu?
Tehtävä 7.21 Tiedon lukeminen
Tehtävä 7.22 Muuttujien näkyvyys
Tehtävä 8.1 Tulostus
Tehtävä 8.2 Negatiivinen minuuttiasetus
Tehtävä 8.3 Päivämääräluokka
Tehtävä 8.4 Päivämääräluokan toteutus
Tehtävä 8.5 Mitäs me tehtiin kun ei ollut kuormitusta?
Tehtävä 8.6 Lisäys yhdellä
Tehtävä 8.7 Vain tuntien asettaminen
Tehtävä 8.8 Luokan muuttaminen
Tehtävä 8.9 Sekuntien tulostus aina tai oletuksena
Tehtävä 8.10 Miksi vielä yksi lisaa-kutsu?
Tehtävä 8.11 Ei turhaa lisaa-kutsua
Tehtävä 8.12 Saantimetodi sekunneille
Tehtävä 8.13 Saantimetodien käyttäminen
Tehtävä 8.14 minuutteina()
Tehtävä 8.15 equals toString avulla
Tehtävä 8.16 equals AikaSek-luokkaan
Tehtävä 8.17 AikaSek perimällä
Tehtävä 8.18 Vertailu
Tehtävä 8.19 Ensimmäinen melkein järkevä olio
Tehtävä 9.1 vaihda
Tehtävä 9.2 abs
Tehtävä 9.3 jarjesta2
Tehtävä 9.4 maksimi ja minimi
Tehtävä 9.5 Loogiset/bittitason operaattorit
Tehtävä 9.6 Luku parilliseksi
Tehtävä 9.7 +=
Tehtävä 9.8 1+2++i
Tehtävä 9.9 Tarvitaanko sisäkkäisiä silmukoita?
Tehtävä 9.10 continuen korvaaminen
Tehtävä 9.11 Eri silmukoiden vertailu
Tehtävä 9.12 switch –> if
Tehtävä 9.13 Päävalinta
Tehtävä 9.14 lääni, versio 2
Tehtävä 11.1 Lisäys
Tehtävä 11.2 Etsiminen
Tehtävä 11.3 Poisto
Tehtävä 11.4 Lajittelu
Tehtävä 11.5 Lisää harrastus
Tehtävä 11.6 Mitä harrastaa
Tehtävä 11.7 Kuka harrastaa
Tehtävä 11.8 Poista harrastus
Tehtävä 11.9 Jäsenen poistaminen
Tehtävä 11.10 "Roskaharrastukset"
Tehtävä 11.11 Monta saman lajin harrastajaa
Tehtävä 12.1 Taulukon alkioiden nollaus
Tehtävä 12.2 Matriisit
Tehtävä 12.3 Matriisi 1–ulotteisena
Tehtävä 12.4 Transpoosi
Tehtävä 12.5 Palindromi
Tehtävä 15.1 Tiedoston lukujen summa
Tehtävä 15.2 Kommentit näytölle
Tehtävä 15.3 Ohjelman "sekoaminen"
Tehtävä 15.4 Tietorakenne
Tehtävä 15.5 Perintä
Tehtävä 15.6 Tunnistenumero
Tehtävä 15.7 Graafinen mittakaava
Kuvat:
Kuva 4.1 Ehtolauseet
Kuva 4.2 switch–valintalause
Kuva 4.3 do–silmukka ja do-while–silmukka
Kuva 6.1 Ohjelman kääntäminen ja linkittäminen
Kuva 6.2 Java-ohjelman kääntäminen ja linkittäminen
Kuva 7.1 Olioviitteet
Kuva 7.2 Kaksi viitettä samaan olioon
Kuva 8.1 Suojaustasot
Kuva 8.2 Aika perinnällä
Kuva 8.3 Musta laatikko
Kuva 11.1 Taulukko C++ -kielessä
Kuva 11.2 Javan taulukko
Kuva 11.3 Linkitetty lista
Kuva 11.4 Tietorakenne kun kerho tallettaa jäsenet
Kuva 11.5 Harrastukset linkitettynä listana
Kuva 11.6 Harrastukset relaation avulla
Kuva 13.1 Javan tärkeimmät tietorakennerajapinnat
Malliohjelmat:
nimet.dat - ensimmäinen ehdotus tiedostoksi
nimet.dat - sarakkeet linjaan
nimet.dat – ei näin
nimet.dat - harrasteet samalle riville
nimet.dat - harrasteet omalle riville
nimet.dat - relaatiokannan päätaulu
harrastukset.dat - harrasteet relaation avulla
kelmit.xml – kerho XML-muodossa
alkeet.hello.Hello.java - ensimmäinen Java ohjelma
C#-versio
alkeet.hello.Hello2.java - malliohjelma
alkeet.hello.Hello3.java - tervehdys parametrina
C#-versio tervehdyksestä parametrina
alkeet.hello.Hello7.java - tervehdys vakioksi
alkeet.kuutio.Kuutio.java - monikulmion tiedot vakioksi
C#-versio Kuutio-ohjelmasta
muuttujat.matka.MatkaScan.java - mittakaavamuunnos 1:200000 kartalta
muuttujat.matka.Matka.java - mittakaavamuunnos 1:200000 kartalta
muuttujat.syotto.Syotto.java – kokonaisluvun lukeminen päätteeltä
muuttujat.jono.Jonotesti.java - merkkijonoviitteet
muuttujat.matka.Matka_a1.java - ohjeet aliohjelmaksi
muuttujat.matka.Matka_a3.java - erilaisia funktioita /**
muuttujat.matka.Matka_a4.java - erilaisia tapoja kutsua funktiota
muuttujat.funktio.FunJaOlio.java - sivuvaikutuksellinen funktio
muuttujat.tulostus.Tulostustesti.java - tulostus näytölle ja tiedostoon
HT3 KerhoGUI.java – tulostamisikkunan avaaminen
HT3 KerhoSwing.java – viedään tulostusikkunalle
muuttujat.funktio.Parampaikka.java - parametrin paikka kutsussa ratkaisee
muuttujat.nakyvyys.Lokaali.java - lokaalien muuttujien näkyvyys
muuttujat.funktio.Aikalisa.java - yritys lisätä arvoja
muuttujat.funktio.Alisotku.java - parametrin välitystä
muuttujat.funktio.Alisotk2.java - parametrin välitystä
muuttujat.testaus.Alkuluku.java
muuttujat.testaus.Esiintymat.java
muuttujat.graafinen.Mittakaava.java
oliot.muut.Aikalis4.java - useita aika "muuttujia"
oliot.aika.olio.Aika.java - kunnon olioksi
oliot.aika.olio.Aikatesti.java - testiluokka Aika-luokalle
oliot.aika.olio.Aika.java - muodostaja alustamaan tiedot
oliot.aika.muodostaja.Aika.java - lisätään oletusmuodostaja
oliot.aika.valvonta.Aika.java - sisäinen tilan valvonta asetuksessa
oliot.aika.metodi.Aika.java - aliohjelma vastaan metodi
oliot.aika.koostaminen.AikaSek.java - laajentaminen koostamalla
oliot.aika.perinta.AikaSek.java - laajentaminen perimällä
oliot.aika.sisesitys.Aika.java - sisäinen toteutus minuutteina
oliot.aika.perinta.AikaSek.java - esimerkki polymorfisesta taulukosta
oliot.aika.koostaminen.AikaSek.java - kömpelö esimerkki polymorfisesta taulukosta
oliot.aika.rajapinta.AikaRajapinta.java - malli kaikkien Aika-luokkien rajapinnasta
oliot.aika.rajapinta.Aika.java - luokka joka toteuttaa rajapinnan
oliot.aika.rajapinta.AikaSek.java - luokka joka toteuttaa rajapinnan => polymorfismi
oliot.aika.object.Aika.java - luokka joka toteuttaa Object
oliot.henkilo.Henkilo.java - 1. järkevä olio
oliot.henkilo.Opiskelija.java - 1. järkevä olio
ohjausrak.Ifsij2.java - esimerkki tahallisesta sijoituksesta ehdossa
ohjausrak.polynomi.v1.Polynomi2.java - esimerkki 2. asteen yhtälön ratkaisemiseta
ohjausrak.polynomi.v2.Polynomi2.java - karsittu versio 2. asteen yhtälöstä
ohjausrak.polynomi.v3.Polynomi2.java - normaalit tapaukset ensin ratkaisussa
ohjausrak.polynomi.v4.Polynomi2.java - else -osat pois
ohjausrak.Postimaksu.java - esimerkki samanarvoisista ehtolauseista
alkeet.alkuluku.Alkuluku.java - testataan onko luku alkuluku
ohjausrak.Dowhile.java - lukujen lukeminen kunnes halutulla välillä
ohjausrak.alkuluku2.Alkuluku2.java - alkulukutesti while-silmukalla
ohjausrak.vali.Valinsum.java - esimerkki for-silmukasta
ohjausrak.Plusplus.java - esimerkki ei-yksikäsitteisestä ++ operaattorin käytöstä
ohjausrak.Valinsum.java - useita alustuslauseita for-silmukassa
ohjausrak.Valinsum.java - C:mäinen silmukka
ohjausrak.Break.java - silmukan katkaisu keskeltä
ohjausrak.Break.java - ulomman silmukan katkaisu keskeltä
ohjausrak.Continue.java - silmukan lopun ohittaminen
ohjausrak.SwingAanestys.java – esimerkki switch-lauseesta
ohjausrak.Switch.java - switch, jossa break tahallaan jätetty pois
taulukot.Mat2.c - matriisi parametrina riviosoittimen avulla
taulukot.Mat3.java - matriisi osoitintaulukon avulla
taulukot.Argv.java - komentorivin parametrit
dynaaminen.Taulukko.java -esimerkki dynaamisesta taulukosta
dynaaminen.TaulukkoGen.java -esimerkki dynaamisesta taulukosta
dynaaminen.ArrayListMalliGen.java –ArrayList-luokka
dynaaminen. AlgoritmiMalliGen.java – Collections-luokka
funktio.integroi.Integroi.java – Sinifunktion numeerinen integrointi
funktio.integroi.Integroi2.java – funktio-oliot, rajapinta
funktio.integroi.Integroi2.java – funktio-oliot, funktio
funktio.integroi.Integroi2.java – funktio-oliot, integrointi
funktio.integroi.Integroi2.java – Toisen asteen polynomi
tiedosto.TiedKaScanner.java - Lukujen lukeminen tiedostosta
tiedosto.Kertotaulu.java - Tiedostoon tulostaminen
tuotteet.dat - esimerkkitiedosto
tiedosto.ErotaEsim.java - esimerkki erota-funktion käytöstä
tiedosto.LueTuote.java - esimerkki tiedoston lukemisesta
tiedosto.LueRek.java - esimerkki oliosta joka käsittelee tiedostoa
tiedosto.LueTRek.java - esimerkki tiedoston lukemisesta
KerhoSwing.java – Harjoitustyö vaihe 7 – get ja set-metodit
Jasen.java – Harjoitustyö vaihe 7
Kentta.java – Harjoitustyö vaihe 7
PerusKentta.java – Harjoitustyö vaihe 7
JonoKentta.java – Harjoitustyö vaihe 7
Tarkistaja.java – Harjoitustyö vaihe 7
PuhelinKentta.java – Harjoitustyö vaihe 7
KerhoSwing.java – Harjoitustyö vaihe 7 – luoNaytto()-metodi
KerhoSwing.java – Harjoitustyö vaihe 7 – Jäsenen muuttaminen