Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

1 Javan perusteet 2002 2 ov Kuopion yliopisto, tietojenkäsittelytieteen ja sov. matematiikan laitos Tomi Keinonen

Samankaltaiset esitykset


Esitys aiheesta: "1 Javan perusteet 2002 2 ov Kuopion yliopisto, tietojenkäsittelytieteen ja sov. matematiikan laitos Tomi Keinonen"— Esityksen transkriptio:

1 1 Javan perusteet 2002 2 ov Kuopion yliopisto, tietojenkäsittelytieteen ja sov. matematiikan laitos Tomi Keinonen tkeinone@cs.uku.fi

2 2 Kurssin suoritus Luennot 20 h Harjoitukset 10 h Lopputentti 27.11.2002 Harjoituksista jaettavat hyvityspisteet 75 % - 100 % +2 arvosanaa 50 % - 75 % +1 arvosana Vähintään 25 % tehtävä tai suoritettava laskuharjoitustentti

3 3 Kurssimateriaali Kurssikirja David D. Riley: The Object of Java (2002) ISBN: 0-321-12173-2 Hinta n. 63 euroa (KYY:n kioskilta) Verkkosivut http://www.cs.uku.fi/~tkeinone/java2002/

4 4 Kurssin aikataulu 11.10.200216-18L1-2L21 12.10.200210-12L3-4S21 17.10.200216-18L5-6MT2 23.10.200218-20L7-8MT2 29.10.200216-18L9-10S23 30.10.200218-20L11-12MT2 4.11.200216-18L13-14MT2 5.11.200216-18L15-16MT2 11.11.200216-18L17-18MT2 12.11.200216-18L19-20MT2 22.10.200218-20 25.10.200216-18 1.11.200216-18 8.11.200216-18 19.11.200216-18 MT6 LuennotHarjoitukset

5 5 Tehtävät nettisivuilla Mikroluokka MT6 Ohjelmalliset ratkaisut mukaan levykkeellä tai tallennettuna verkkolevylle Huomattavaa Kulkulupa Käyttäjätunnus NT-verkkoon

6 6 Kurssin sisältö Oliot ja luokat Oliot Java- kielessä Ehdot Aritmetiikka Toisto Metodit Taulukot J2SE API Graafiset käyttöliittymät Tiedostot J2SE ja BlueJ-kehitysympäristö

7 7 Ympäristö Sunin J2SE API, versio 1.4 http://java.sun.com/ http://java.sun.com/ BlueJ-kehitysympäristö http://www.bluej.org http://www.bluej.org

8 8 Ohjelma? Hyvä ohjelma? Toimii oikein Rakenne on selkeä ja ymmärrettävä Java Puhdas olio-ohjelmointikieli

9 9 Lähdekoodista ohjelmaksi Tekstieditori Kääntäjä Virtuaalikone (JRE) Lähdekoodi (*.java) Tavukoodi (*.class) 1 2 3 4 5 Suunnitelmasta lähdekoodiksi Jokainen luokka kirjoitetaan omaan lähdekooditiedostoon. Esimerkiksi luokka Director kirjoitetaan tiedostoon Director.java Koodia selkeyttämään käytetään sisennyksiä, kommentteja ja yhtenäistä nimeämiskäytäntöä. Isot ja pienet kirjaimet tarkoittavat eri asiaa. Luokkien ja niissä olevien metodien kokoa pyritään rajoittamaan. Suuret luokat ja pitkät metodit kannattaa jakaa pienempiin osiin.

10 10 Lähdekoodista ohjelmaksi Tekstieditori Kääntäjä Virtuaalikone (JRE) Lähdekoodi (*.java) Tavukoodi (*.class) 1 2 3 4 5 Lähdekoodista tavukoodiksi Kääntäjä kääntää lähdekoodin JRE:n ymmärtämäksi tavukoodiksi ( javac tiedosto ). Kääntäjä tarkastaa lähdekoodin oikeellisuuden ja pysähtyy virheeseen, mikäli lähdekoodia ei voida kääntää. Onnistunut käännös tuottaa.class- päätteisen tavukooditiedoston jokaisesta lähdekooditiedostosta. Ohjelmoija ei muokkaa tavukoodia, vaan muutokset tehdään aina lähdekoodiin.

11 11 Lähdekoodista ohjelmaksi Tekstieditori Kääntäjä Virtuaalikone (JRE) Lähdekoodi (*.java) Tavukoodi (*.class) 1 2 3 4 5 Tavukoodin suorittaminen Tavukoodia ei ole konekieltä eli sitä ei voida suorittaa suoraan prosessorilla. Suorittamiseen käytetään Java- virtuaalikonetta (Java VM, JRE). ( java luokannimi ) Samaa tavukoodia voidaan suorittaa missä tahansa laiteympäristössä, mihin on saatavilla Java VM. Ohjelmassa olevat loogiset virheet ilmenevät vasta ajon aikana. Virheitä vähennetään ja tutkitaan testauksella ja debuggauksella.

12 12 Oliot ja luokat Olio on luokan ilmentymä, jolla on tila ja käyttäytyminen. Luokan ja olion erot? Luokista yksinkertaiseksi ohjelmaksi. UML-luokkakaavio.

13 13 Oliot ja luokat Olio on yleinen käsite, jolla on tila käyttäytyminen Jokaisella oliolla on yksikäsitteisesti määritelty luokka, johon se kuuluu

14 14 Oliot ja luokat Maitopurkki Jääkaappi Tomaatti Omena File Timestamp Duration User

15 15 Oliot ohjelmissa Olio-ohjelmointikieliä: Java, C++, Oberon 2, Smalltalk, Eiffel Ohjelmistokehittäjä rakentaa tarvittavat luokat vaatimusten perusteella

16 16 Miksi luokat? Luokat suunnitellaan ja testataan hyvin (hyvä laatu) Luokkia uudelleenkäytetään ja peritään (kehityksen nopeus) Väärän käytön estäminen (ohjelmoijan virheiden vähentäminen) Asiakokonaisuudet erillään (selkeys ja ymmärrettävyys)

17 17 Luokan ja olion erot Luokka määrittelee attribuutit ja metodit ohjelmoijan tekemä ei ole olemassa ajon aikana kuin oliomuodossa kiinteä ajon aikana, ei voida muuttaa ohjelman pyöriessä nimetty luokan nimen mukaan Olio on luotu jostakin luokasta on olemassa vain ajon aikana täytyy määritellä ja luoda ohjelmassa sisältää attribuutteja ja metodeja, joita voidaan suorittaa ohjelmasta nimetty muuttujaksi

18 18 UML-luokkakaavio Universal Modeling Language Luokasta kuvataan Nimi Attribuutit Metodit Yleisesti käytetty standardisoitu kuvaustapa Kommentteja voidaan laittaa « » -merkkien väliin Director SimpleWindow window GrayCircle circle «constructor» Director()

19 19 Metodikutsut olio.metodi(); Esimerkkejä pen.moveForward(); pen.turnClockwise(); pen.draw(); DrawingTool «constructor» DrawingTool() «update» void moveForward() void turnClockwise() void dontDraw() void draw()

20 20 Olioiden luonti ja sijoittaminen Oliota ei ole olemassa ennen sen luontia muuttuja = new Olio(); Esimerkki DrawingTool pen; pen = new DrawingTool(); pen.moveForward();

21 21 Attribuutit (luokan muuttujat) Jokaisella luokan attribuuttilla on määritelty näkyvyysalue (scope) Attrubuuttien nimien tulee olla yksilöllisiä Esimerkki private DrawingTool pencil; private DrawingTool pen;

22 22 Ensimmäinen ohjelma public class Director { private DrawingTool pen; public Director() { pen = new DrawingTool(); pen.draw(); pen.moveForward(); pen.turnClockwise(); pen.moveForward(); pen.turnClockwise(); pen.moveForward(); pen.turnClockwise(); pen.moveForward(); }

23 23 Nimeämiskäytännöt Java- kielessä Luokkien, metodien ja attribuuttien nimissä (identifiers) on rajoitteita alkaa kirjaimella a-z tai A-Z, jonka jälkeen voi olla numeroita tai kirjaimia, mutta ei erikoismerkkejä isot ja pienet kirjaimet eri merkkejä nimeäminen kannattaa tehdä kuvaavasti eri käytäntöjä olemassa, yhtenäisyys ohjelman sisällä kannattaa säilyttää

24 24 Nimeämiskäytännöt - esimerkki Luokkien nimet: DrawingTool Luokan metodit: drawLine Attribuutit: m_pencilColor Muuttujat metodien sisällä: pencilColor

25 25 Kommentit Kommentteja voi koodiin laittaa kahdella tavalla: // yksirivinen kommentti /* Monirivinen kommentti */ Sopivat kommentit selkeyttävät koodia

26 26 Muuttujat, oliot ja roskienkeruu Kun muuttua esitellään ensimmäisen kerran, se ei osoita mihinkään olioon vaan null- arvoon Kun olioon ei osoita enää yksikään muuttuja, Java-kielen roskienkeruu tuhoaa sen DrawingTool pen; // pen osoittaa null-arvoon pen = new DrawingTool(); // pen osoittaa luotuun olioon pen = null; // luotuun DrawingTool-olioon ei osoita enää // yksikään muuttuja -> se tuhotaan

27 27 myPen = new Pencil(); myPen = null; borrowedPen = new Pencil(); missingPen = borrowedPen; missingPen = myPen; borrowedPen = new Pencil(); suoritus- kohta myPen missingPen borrowedPen ( null ) Muuttujat, oliot ja roskienkeruu

28 28 suoritus- kohta myPen : Pencil m_color = = ? m_width = = ? Muuttujat, oliot ja roskienkeruu myPen = new Pencil(); myPen = null; borrowedPen = new Pencil(); missingPen = borrowedPen; missingPen = myPen; borrowedPen = new Pencil(); myPen missingPen borrowedPen ( null )

29 29 suoritus- kohta Muuttujat, oliot ja roskienkeruu myPen = new Pencil(); myPen = null; borrowedPen = new Pencil(); missingPen = borrowedPen; missingPen = myPen; borrowedPen = new Pencil(); : Pencil m_color = = ? m_width = = ? myPen missingPen borrowedPen ( null )

30 30 suoritus- kohta Muuttujat, oliot ja roskienkeruu myPen = new Pencil(); myPen = null; borrowedPen = new Pencil(); missingPen = borrowedPen; missingPen = myPen; borrowedPen = new Pencil(); : Pencil m_color = = ? m_width = = ? myPen missingPen borrowedPen ( null ) borrowedPen : Pencil m_color = = ? m_width = = ?

31 31 suoritus- kohta Muuttujat, oliot ja roskienkeruu myPen = new Pencil(); myPen = null; borrowedPen = new Pencil(); missingPen = borrowedPen; missingPen = myPen; borrowedPen = new Pencil(); : Pencil m_color = = ? m_width = = ? myPen missingPen borrowedPen ( null ) borrowedPen : Pencil m_color = = ? m_width = = ?

32 32 suoritus- kohta Muuttujat, oliot ja roskienkeruu myPen = new Pencil(); myPen = null; borrowedPen = new Pencil(); missingPen = borrowedPen; missingPen = myPen; borrowedPen = new Pencil(); : Pencil m_color = = ? m_width = = ? myPen missingPen borrowedPen ( null ) borrowedPen : Pencil m_color = = ? m_width = = ?

33 33 suoritus- kohta Muuttujat, oliot ja roskienkeruu myPen = new Pencil(); myPen = null; borrowedPen = new Pencil(); missingPen = borrowedPen; missingPen = myPen; borrowedPen = new Pencil(); : Pencil m_color = = ? m_width = = ? myPen missingPen borrowedPen ( null ) : Pencil m_color = = ? m_width = = ? borrowedPen : Pencil m_color = = ? m_width = = ?


Lataa ppt "1 Javan perusteet 2002 2 ov Kuopion yliopisto, tietojenkäsittelytieteen ja sov. matematiikan laitos Tomi Keinonen"

Samankaltaiset esitykset


Iklan oleh Google