Johdatus ohjelmoinnin ajattelutapaan. Java-kielen perusajatukset. Kalvoja Java-tietorakenteista ja käyttöliittymän rakentamisesta Swingin ja AWT:n avulla.
1. Mitä on ohjelmointi?
Määrämuotoisten komentojen antamista tietyssä järjestyksessä toteutettaviksi (mukana on myös
pöytätestaus, jossa ihminen suorittaa komentoja paperia tai muuta apuvälinettä käyttäen)
Koulusta tutut algoritmit: yhteenlasku, kertolasku ja jakokulma
Tietokone suorittaa tietokoneohjelmia suorittimessa (CPU), ohjelma tulee RAM-muistista, käytetään apuna
lisälaitteita useimmiten (näppäimistö, hiiri, modeemi ja näyttö), joiden kanssa suoritin kommunikoi
Tietokoneen käyttöjärjestelmä on ohjelma
Ilman käyttöjärjestelmää ohjelmat täytyisi asettaa muistiin binäärisinä koodeina esimerkiksi
etupaneelin kautta (Seymour Cray syötti CDC:n supertietokoneen CDC 7600 buuttilataajan
konekoodin etupaneelin kautta muistin alkuun)
Tyypillisiä tietokoneohjelmia: Microsoft Word, Paint.NET, Excel, PowerPoint, Mozilla Firefox, Laskin,
Angry Birds, Pokemon Go
Ohjelmointikielen kääntäjä ja kehitysympäristö ovat myös ohjelmia
2. Mitä on ohjelmointi?
Määrämuotoisten komentojen antamista tietyssä järjestyksessä toteutettaviksi (mukana on myös
pöytätestaus, jossa ihminen suorittaa komentoja paperia tai muuta apuvälinettä käyttäen)
Koulusta tutut algoritmit: yhteenlasku, kertolasku ja jakokulma
Tietokone suorittaa tietokoneohjelmia suorittimessa (CPU), ohjelma tulee RAM-muistista, käytetään apuna
lisälaitteita useimmiten (näppäimistö, hiiri, modeemi ja näyttö), joiden kanssa suoritin kommunikoi
Tietokoneen käyttöjärjestelmä on ohjelma
Ilman käyttöjärjestelmää ohjelmat täytyisi asettaa muistiin binäärisinä koodeina esimerkiksi
etupaneelin kautta (Seymour Cray syötti CDC:n supertietokoneen CDC 7600 buuttilataajan
konekoodin etupaneelin kautta muistin alkuun)
Tyypillisiä tietokoneohjelmia: Microsoft Word, Paint.NET, Excel, PowerPoint, Mozilla Firefox, Laskin,
Angry Birds, Pokemon Go
Ohjelmointikielen kääntäjä ja kehitysympäristö ovat myös ohjelmia
3. Mitä on ohjelmointi?
Automaatilla
maksaminen
Valitse tuote
hinta = tuotteen hinta
kerätty <
hinta?
kerätty = kerätty + kolikon
arvo
Syötä kolikko
kerätty = 0
Ota tuote
kyllä
Ota vaihtorahat
Vaihtorahaa
?
Loppu
ei
kyllä
ei
9. Korkean tason ohjelmointikieli
Ihmisen helposti luettavissa ja ymmärrettävissä oleva (verrattuna ainakin konekieleen)
Ohjelmat muodostuvat englanninkielisistä käskyistä
Käskyillä on kielioppi, muodostuu yleensä komennon nimestä ja sitä seuraavista parametreistä
(esimerkiksi System.out.println(”Kolmion pinta-ala on: ” + (kanta*korkeus)/2);
Käskyjä ryhmitellään kokonaisuuksiin kieliopin mukaan
Käskyjä rajallinen määrä, kieli laajennettavissa kirjastoilla tai paketeilla jotka ovat osa kääntäjää
Kääntäjä kääntää käskyt konekielelle
Korkean tason ohjelmointikieliä: Fortran, Algol, Cobol, Basic, C, C++, Java, Python, Javascript ja R
Rakenteisia ohjelmointikieliä: Pascal, Cobol 85, Fortran 77, Visual Basic, Java, C, C++
Oliosuuntautuneita ohjelmointikieliä: Small Talk, C++, Java, Javascript, Visual Basic, C#
10. JAVA-ohjelmointikieli
Kehitystyö aloitettu jo 1991
James Gosling, Mike Sheridan ja Patrick Naughton
Sun Microsystems tarjosi ensimmäisen julkaisun 1.0 1995
Perustuu WORA arkkitehtuuriin (Write Once Run Anywhere)
Java on objektiorientoitunut kieli
Java on de facto standardi, ei perustu standardointiorganisaation kehittämään standardiin
Oracle on ostanut Sun Microsystemsin 2009
Java laajasti käytetty esimerkiksi pankeissa, sairaanhoidon sovelluksissa ja yliopistoissa
Java on ohjelmointikielten kärkikolmikossa 2018 riippumatta laskutavasta
Android sovellukset käyttävät laajasti Javaa
Javaa käytetään hyvin laajasti ohjelmoinnin opiskeluun
Java-ohjelmointitaidon perusteella oppii helposti C++ tai C# kieltä ja muita objektiorientoituneita kieliä
Javascript ei ole osa Javaa vaan on itsenäinen ohjelmointikieli, tosin myös objektiorientoitunut
11. JAVA-ohjelmointikieli
Java-kieli perustuu virtuaalikoneeseen
Ohjelmat käännetään Java-kääntäjässä tavukoodiksi
Virtuaalikone tulkitsee tavukoodeja varsinaiseksi prosessorin konekieleksi
Virtuaalikone mahdollistaa siirrettävyyden, sama tavukoodi käy eri ympäristöihin kehitettyihin
virtuaalikoneisiin (Java Run Time)
Virtuaalikone takaa ohjelmien hallitun suorittamisen ja tietoturvan
Java Run Time täytyy asentaa koneelle, jotta tavukoodiohjelmia voi suoritta omassa koneessa
Java-ohjelmien kehitykseen ladataan Java Development Kit (JDK), sisältää kääntäjän ja muita palveluita
Graafinen työkalu ohjelmistokehitykseen tarvitaan helpottamaan työskentelyä
(esimerkiksi Eclipse)
Eclipse tarjoaa kielioppivirheiden tarkistuksen ja korjauksen suoraan ohjelmaa kirjoitettaessa
Eclipse täydentää automaattisesti lausekkeita käyttäjän puolesta
13. HelloWorld.c
cout << "Hello world!" <<
endl;
C++ kääntäjä
Windows
Konekoodi
Windows/Intel
Windows 10 Intel Core i5
HelloWorld.c
cout << "Hello world!" <<
endl;
C++ kääntäjä
Linux
Konekoodi
Linux/Sun
Red Hat
Linux
UltraSPARC T2
52. KäyttöliittymäLuokka() extends JFrame implements
ActionListener
public Luojametodi() {
Käyttöliittymän täyttö ja näkyväksi tekeminen
luokan kuuntelijan lisääminen käyttöliittymäolioihin A ja B
}
public void actionPerformed(ActionEvent e) {
Onko tapahtuman lähde A vai B käyttöliittymäolio?
Toimenpiteet käyttöliittymän tiedoille ja tiedon
muuttaminen käyttöliittymässä
}
public static void main(String[] args
{
KäyttöliittymäLuokka käyttöliittymä = new
KäyttöliittymäLuokka();
}
Käyttöliittymäolio A
Käyttöliittymä
Java-virtuaalikone
Tiedon näyttöä
Kehotteita
Käyttöliittymäolio A Käyttöliittymäolio B
KäyttöliittymäLuokka/
actionPerformed
KäyttöliittymäLuokka/
actionPerformed
Käyttöliittymäolio B
Käyttäjä valitsee
hiirellä
2.
1.
3.
4.
53. MenuEsimerkki1()
public Luojametodi() {
Esitettävän tiedon määritys, käyttöliittymäolion a
määrittely
ActionListener menutoiminto = new ActionListener() {
public void actionPerformed(ActionEvent e) {
reagointi valintaan ja muuttuneiden tietojen
täyttö käyttöliittymään
}
};
a.addActionListener(menutoiminto);
käyttöliittymän täyttäminen ja näkyväksi tekeminen
}
public static void main(String[] args
{
MenuEsimerkki1 menuEsimerkki1 = new
MenuEsimerkki1();
}
Käyttöliittymäolio A
Käyttöliittymä
Java-virtuaalikone
Tiedon näyttöä
Kehotteita
Käyttöliittymäolio a
ActionListener/
actionPerformed
Käyttöliittymäolio B
Käyttäjä valitsee
hiirellä
1.
2.
3.
4.
public void actionPerformed(ActionEvent e) {
reagointi valintaan ja muuttuneiden tietojen
täyttö käyttöliittymään
}