Till KTH:s startsida Till KTH:s startsida

Ö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.javaTestPostIt.java  
Lösningsförslag till uppgift 6, PostIt med objekträknare: PostIt.javaTestPostIt.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, Diahttp://dia-installer.de/download/index.html.en

https://play.kth.se/media/Anv%C3%A4nda+Dia+f%C3%B6r+UML%2C+klassdiagram/0_em4ik07k

Arbeta 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_yh5i0imh

Lö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_xaq5c23z

Vill 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

Övning Generics

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_bokpm7sl

Gör sedan dessa uppgifter på egen hand:
GUI och EventHandler, JavaFX.pdf

Filer att utgå ifrån i uppgifterna: GuessMyWordApp_0.zipMouseEventExample.java

Lösningsförslag: GuessMyWordApp.zipMouseEventDrawLine.javascribble.zip

Övning 13, 7/10

Arbeta med uppgifter från Threads.pdf

lösningsförslag: TimeThreads.javaProdConsTest.java

Övning 14, 12/10

Frågor inför laboration 5, X och Y

Anders Lindström skapade sidan 11 augusti 2016

Lärare Anders Lindström ändrade rättigheterna 11 augusti 2016

Kan därmed läsas av lärare och ändras av lärare.

Lärare Anders Lindström ändrade rättigheterna 26 augusti 2016

Kan därmed läsas av alla och ändras av lärare.