Övningar
Övningarna är inte obligatoriska men jag rekommenderar starkt att du följer dessa och att du även löser många uppgifter på egen hand. Du kan inte lära dig programmera enbart genom att läsa kursboken.
På denna sida kan du se vad jag tar upp och vad som är lämpligt att arbeta med under övningarna och på egen hand hemma.
Övning 1, 1/9
Det är viktigt att du har installerat programvaran inför denna övning, speciellt att du har satt sökvägen till din kompilator, javac. Instruktioner finns på sidan "Resurser".
En introduktion till kompilering och exekvering av java-applikationer via ett terminal-fönster.
Kompilera och exekvera Javakod.pdf
Att utgå ifrån i första exemplet (öppna i t.ex. WordPad): WelcomeToJava.java
Lösningar kompilera och exekvera.zip
Öppna ett terminalfönster i Windows
Startmenyn -> skriv längst ned "Command Prompt" eller "PowerShell".
Byta directory: cd "namn/sökväg"; byta enhet C: (eller D:, ...); lista innehåll i directory: dir; Skapa directory: md "namn"
Kontrollera att att sökvägen till java-kompilatorn är korrekt genom att skriva "javac" vid prompten. Om programmet inte hittas, se sidan "Resurser" på kurswebben.
Övning 2, 2/9
Jag introducerar utvecklingsmiljön NetBeans. Det är viktigt att du har installerat NetBeans inför denna övning (se Resurser/Programvara).
En kort introduktion: Komma igång med Netbeans.pdf. På sidan "Resurser" finns mer information.
Jag ger under denna övning även en kort introduktion till laboration 1, uppgift A.
Arbeta på egen hand med uppgifterna från Övning klasser och objekt.pdf, uppgift 1-4.
Att utgå ifrån i uppgift 3: Account.java
Lösningar klasser och objekt.zip (lösningar till uppgift 5 och 6 finns under övning 3)
Övning 3, 5/9
Jag ger under denna övning även en kort introduktion till laboration 1 uppgift B (uppgiften med grafik).
Jag visar hur man hittar information om Javas standardklasser i API (Application Programmers Interface). Dokumentation av Javas API, http://docs.oracle.com/javase/8/docs/api/. Arbeta med uppgifterna från övning 2, "Klasser och objekt", uppgift 1-8.
Lösningsförslag till uppgift 5, PostIt: PostIt.java, TestPostIt.java
Lösningsförslag till uppgift 6, PostIt med objekträknare: PostIt.java, TestPostIt.java
En kommentar till uppgift 7, bråk: Varje bråk har en täljare och en nämnare. I fallet med 2 parametrar ska konstruktorn ha parametar för både täljare och nämnare. Konstruktorn med en parameter kan användas om man vill skapa ett bråk som också är ett heltal, t.ex. 5/1. I detta fall representerar den enda paramtern täljaren (nämnaren sätts till 1). Den parameterlösa konstruktorn sätter täljaren till 0 och nämnaren till 1.
Övningen förmiddagen den 7/9
...är till för frågor om laboration 1.
Övning 4, 9/9
Jag ger en kort introduktion till laboration 2.Jag introducerar också ett verktyg för att rita UML-diagram, Dia, http://dia-installer.de/download/index.html.en
https://play.kth.se/media/Anv%C3%A4nda+Dia+f%C3%B6r+UML%2C+klassdiagram/0_em4ik07kArbeta med uppgifterna från Relationer mellan objekt.pdf, 1-3. AccountList och Account som du behöver i första uppgiften finns bland kodexemplen till föreläsning 4 (shared aggregation.zip).
Har du något kvar från "Klasser och objekt" så gör färdigt även det (uppgift 1 - 8).
Lösningsförslag: Relationer mellan objekt.zip
Övning 5, 14/9
Lös uppgift 1, Arv och polymorfism.pdf
De klasser du ska utgå ifrån i uppgifterna finns under motsvarande föreläsning.
En introduktion till första uppgiften:
https://play.kth.se/media/%C3%96vning%2C+introduktion+till+arv+%28Netbeans%29/0_yh5i0imhLösningsförslag: Arv och polymorfism.zip
Övning 6, 21/9
Lös uppgift 1 - 3, Interface.pdf.
Lösningsförslag: Interface.zip
Det är också lämpligt att du sätter dig in i hur Javas debugger fungerar tillsammans med Netbeans. En bra introduktion:
Övning 7, 22/9
En kort introduktion till enhetstestning med JUnit i NetBeans:
https://play.kth.se/media/Introduktion+till+JUnit/0_xaq5c23zVill du fördjupa dig i hur du använder JUnit tillsammans med NetBeans kan du läsa mer på https://netbeans.org/kb/docs/java/junit-intro.html (läs de delar som tar upp JUnit version 4).
Att fundera över: vad bör du testa för metoden equals i klassen MString från laboration 1? Försök skriva enhetstester för denna metod.
Övning 8, 23/9
Lös uppgift 1 - 2, Strömmar.pdf. Jag går igenom uppgift 1 om strömmar.
Lösningsförslag: Strömmar.zip
Skicka argument till main-metoden:
Argument som vid exekvering skickas till main hamnar i arrayen String[] args och kan sedan användas i applikationen.
I ett terminalfönster, vid prompten: > java MainClassName argument1 argument2 ...
I Netbeans: Högerklicka på projektet i fönstret ”Projects”, och välj sedan ”Properties”. Markera raden ”Run” och fyll i argumenten vid ”Arguments”.
NB: I Netbeans placeras filer som en applikation ska läsa ifrån/skriva till i roten av projektmappen. För att se filstrukturen via Netbeans, markera tabben märkt "Files" i övre vänstra fönstret.
Övning 9, 26/9
Frågestund inför laboration 3
Övning 10, 29/9
Obligatorisk övning om OO Analys och Design, se laboration 4.
Övning 11-12; 5/10, 6/10
Introduktion till JavaFx och NetBeans:
https://play.kth.se/media/JavaFX+med+NetBeans/0_bokpm7slGör sedan dessa uppgifter på egen hand:
GUI och EventHandler, JavaFX.pdf
Filer att utgå ifrån i uppgifterna: GuessMyWordApp_0.zip, MouseEventExample.java
Lösningsförslag: GuessMyWordApp.zip, MouseEventDrawLine.java, scribble.zip
Övning 13, 7/10
Arbeta med uppgifter från Threads.pdf
lösningsförslag: TimeThreads.java, ProdConsTest.java
Övning 14, 12/10
Frågor inför laboration 5, X och Y