Sisällysluettelo:
Laajenna
-
Kutista
Esipuhe
1. Mitä ohjelmointi on?
2. Ensimmäinen Java-ohjelma
2.1 Ohjelman kirjoittaminen
2.2 Ohjelman kääntäminen ja ajaminen
2.3 Ohjelman rakenne
2.3.1 Virhetyypit
2.3.2 Tyhjät merkit (White spaces)
2.4 Kommentointi
2.4.1 Dokumentointi
3. Algoritmit
3.1 Mikä on algoritmi?
3.2 Tarkentaminen
3.3 Yleistäminen
3.4 Peräkkäisyys
4. Yksinkertainen graafinen Java-ohjelma
4.1 Mikä on kirjasto?
4.2 Esimerkki piirtämisestä Jyväskylän yliopiston Graphics-kirjastolla
4.2.1 Ohjelman suoritus
4.2.2 Ohjelman oleellisemmat kohdat
5. Lähdekoodista prosessorille
5.1 Kääntäminen
5.2 Suorittaminen
6. Aliohjelmat
6.1 Aliohjelman kutsuminen
6.2 Aliohjelman kirjoittaminen
6.3 Aliohjelmien dokumentointi
6.4 Aliohjelmat, metodit ja funktiot
7. Muuttujat
7.1 Muuttujan määrittely
7.1.1 Javan alkeistietotyypit
7.1.2 Muuttujan nimeäminen
7.1.3 Javan varatut sanat
7.2 Arvon asettaminen muuttujaan
7.3 Muuttujien näkyvyys
7.4 Vakiot
7.5 Aritmeettiset lausekkeet
7.5.1 Javan aritmeettiset operaatiot
7.5.2 Aritmeettisten operaatioiden suoritusjärjestys
7.5.3 Huomautuksia
7.6 Esimerkki: Painoindeksi
8. Oliotietotyypit
8.1 Mitä oliot ovat?
8.2 Olion luominen
8.3 Oliotietotyyppien ja alkeistietotyyppien ero
8.4 Metodin kutsuminen
8.5 Olion tuhoamisen hoitaa roskienkeruu
8.6 Olioluokkien dokumentaatio
8.6.1 ConstructorSummary
8.6.2 MethodSummary
8.6.3 Huomautus: Luokkien dokumentaation googlettaminen
8.7 Tyyppimuunnokset
9. Aliohjelman paluuarvo
10. Eclipse
10.1 Asennus
10.2 Käyttö
10.2.1 Ensimmäinen käyttökerta
10.2.2 Ohjelman kirjoittaminen
10.2.3 Ohjelman kääntäminen ja ajaminen
10.2.4 Debuggaus
10.2.5 Paketit
10.2.6 Jar-tiedostojen käyttäminen
10.3 Hyödyllisiä ominaisuuksia
10.3.1 Syntaksivirheiden etsintä
10.3.2 Quick Fix
10.3.3 Kooditäydennys (content assist)
10.3.4 Koodimallit (Templates)
11. ComTest
11.1 ComTest:n käyttö
11.2 Liukulukujen testaaminen
12. Merkkijonot
12.1 String
12.1.1 Hyödyllisiä metodeja
12.2 Muokattavat merkkijonot: esimerkkinä StringBuilder
12.2.1 Muita hyödyllisiä metodeja
12.2.2 StringBuffer
12.3 Merkkijonojen tulostaminen
12.3.1 Huomautus: Aritmeettinen+ vs. merkkijonoja yhdistelevä+
12.3.2 Vinkki: Näppärä tyyppimuunnos String-tyypiksi
12.3.3 Metodi: Reaalilukujen muotoilu String.format-metodilla
12.3.4 Metodi: Muotoilujen tulostaminen System.out.printf-metodilla
13. Ehtolauseet (Valintalauseet)
13.1 Mihin ehtolauseita tarvitaan?
13.2 if-rakenne: ”Jos aurinko paistaa, mene ulos.”
13.3 Vertailuoperaattorit
13.3.1 Huomautus: Sijoitusoperaattori (=) ja vertailuoperaattori (==)
13.3.2 Vertailuoperaattoreiden käyttö
13.4 if-else -rakenne
13.4.1 Esimerkki: Pariton vai parillinen
13.5 Loogiset operaatiot
13.5.1 De Morganin lait
13.5.2 Osittelulaki
13.6 else if-rakenne
13.6.1 Esimerkki: Tenttiarvosanan laskeminen
13.7 switch-rakenne
13.7.1 Esimerkki: Arvosana kirjalliseksi
13.8 Esimerkki: Olioiden ja alkeistietotyyppien erot
14. Taulukot
14.1 Taulukon luominen
14.2 Taulukon alkioon viittaaminen
14.3 Esimerkki: Arvosana kirjalliseksi
14.4 Moniulotteiset taulukot
14.5 Taulukon kopioiminen
14.6 Taulukot parametreina
15. Toistorakenteet (silmukat)
15.1 Idea
15.2 while-silmukka
15.2.1 Esimerkki: Taulukon tulostaminen
15.3 do-while-silmukka
15.3.1 Esimerkki: Tikkataulu
15.4 for-silmukka
15.4.1 Esimerkki: keskiarvo-aliohjelma
15.4.2 Esimerkki: Taulukon kääntäminen käänteiseen järjestykseen
15.4.3 Esimerkki: Arvosanan laskeminen taulukoilla
15.5 For-each -silmukka
15.5.1 Esimerkki: Sisäkkäiset silmukat
15.6 Silmukan suorituksen kontrollointi break- ja continue-lauseilla
15.6.1 break
15.6.2 continue
15.7 Ohjelmointikielistä puuttuva silmukkarakenne
15.8 Yhteenveto
16. Merkkijonojen pilkkominen
16.1 StringTokenizer
16.1.1 Esimerkki: Merkkijonon pilkkominen StringTokenizerilla
16.2 split
17. Järjestäminen
18. Konsoliohjelmien tekeminen
18.1 Tietovirrat
18.1.1 Standardivirrat
18.2 Käyttäjän syötteen lukeminen
18.2.1 Esimerkki: Yksinkertainen käyttöliittymä switch-case -rakenteen avulla
18.3 Käyttäjän syötteen lukeminen Ali.jar kirjastoa käyttämällä
18.4 Parametrien antaminen ohjelmaa käynnistettäessä (args-taulukko)
19. Rekursio
19.1 Sierpinskin kolmio
19.2 Nopeampi Sierpinskin Kolmio
20. Dynaamiset tietorakenteet
20.1 Rajapinnat
20.2 ArrayList
20.2.1 Tietorakenteen määrittäminen
20.2.2 Peruskäyttö
20.2.3 Lukujen tallentaminen tietorakenteeseen, autoboxing
21. Esimerkki: Hirsipuupeli
21.1 Simppeli versio
21.2 EasyWindow-luokasta Window-luokkaan
21.2.1 Esimerkki: Hirsipuun piirto
21.3 Hirsipuun piirtäminen pelissä
22. Tiedostot
22.1 Tiedostot Ali.jar -kirjaston avulla
22.2 Sanojen lukeminen tiedostosta hirsipuupelissä
22.2.1 Luokka: Random
22.2.2 Arpomisaliohjelma hirsipuupeliin
23. Poikkeukset
23.1 try-catch
23.2 finally-lohko
23.3 Yleistä
24. Lukujen esitys tietokoneessa
24.1 Lukujärjestelmät
24.2 Paikkajärjestelmät
24.3 Binääriluvut
24.3.1 Binääriluku 10-järjestelmän luvuksi
24.3.2 10-järjestelmän luku binääriluvuksi
24.4 Negatiiviset binääriluvut
24.4.1 Suora tulkinta
24.4.2 1-komplementti
24.4.3 2-komplementti
24.4.4 2-komplementin yhteenlasku
24.5 Lukujärjestelmien suhde toisiinsa
24.6 Liukuluku (floating-point)
24.6.1 Liukuluvun binääriesityksen muuttaminen 10-järjestelmään
24.6.2 10-järjestelmän luku liukuluvun binääriesitykseksi
24.6.3 Huomio: doublen lukualue
24.6.4 Liukulukujen tarkkuus
24.6.5 Intelin prosessorikaan ei ole aina osannut laskea liukulukuja oikein
25. ASCII-koodi
26. Syntaksin kuvaaminen
26.1 BNF
26.2 Laajennettu BNF (EBNF)
27. Jälkisanat
Liite: Hirsipuu olioilla tehtynä
Liite: Sanasto
Liite: Yleisimmät virheilmoitukset ja niiden syyt
27.1 ArrayIndexOutOfBoundsException
27.2 Unresolved compilation problem
27.3 NullPointerException
27.4 NoSuchElementException