Till KTH:s startsida Till KTH:s startsida

Föreläsningar

På denna sida hittar, för respektive föreläsning

  • eventuellt material som du bör gå igenom före föreläsningen så att du är förberedd
  • kodexempel som jag tar upp på föreläsningar, samt i vissa fall texter som kompletterar kurslitteraturen

Efter föreläsningen kan du läsa rekommenderade kapitel i kursboken, se kurs-PM, samt göra de rekommenderade övningarna.

De flesta introduktionsfilmerna kommer från iTunes U(niversity) och kräver att du har installerat iTunes.

F01 31/8, Objektorienterad programmering, språket Java

Förbered dig genom att se dessa filmer via iTunes U:
Freed-Hardeman University, kursen Introduction to Java:
- 1 Java Fundamentals (39 min)
- 2 Data types and operators (22 min)
- 3 Program control statements (10 min)
Film 2 och 3 tar upp Java-syntax som du måste kunna men som jag inte tar tid med på föreläsningen.

Mina slides:
Språket Java.pdf

Kodexemepel att studera på egen hand: Exempel_pa_javasyntax.zip

F02 2/9, Klasser, inkapsling, m.m.

Förbered dig genom att se dessa filmer via iTunes U:
Freed-Hardeman University, kursen Introduction to Java:
- 4 Classes, objects and methods (18 min)
- 6 A closer look at... Fram till 3:50
- 5 Array and strings (19 min)

Mitt material:
Objektorienterad programmering grundläggande begrepp.pdf
Acccount.javaAccountMain.java
Card.java (exempel på en klass vars objekt är "immutable")

En (något utdaterad) introduktion till klasser och inkapsling: Klasser_och_objekt.pdf

F03 5/9,  Mer om klasser (static, this, arrayer, String, ... )

Förbered dig genom att läsa punkterna under rubriken "More on Classes" på sidan https://docs.oracle.com/javase/tutorial/java/javaOO/more.html 
Denna föreläsning tar upp en del detaljer om klasser/objekt som behövs för en fullständig bild, samt enum (enumerations).

Kodexempel:
Kodex this, static, arrayer.zip
Kodex String.zip
enum examples.zip

En (något utdaterad) text om samma ämne: Klasser_Objekt_forts.pdf

F04, 9/9 Relationer mellan objekt: association och aggregat. UML 

Relationer mellan objekt.pdf
Kodex Shared aggregation.zipKodex Composite aggregation.zip

ArrayList.pdf
TestArrayList.java

F05 12/9, Arv

Förbered dig genom att se dessa filmer via iTunes U:
Freed-Hardeman University, kursen Introduction to Java:
- 7 Inheritance, fram till 13:40. Notera att det, efter 6 min, felaktigt påstås att "private members are not inherited" - vad som menas är att det inte är möjligt accessa privata datamedlemmar direkt i en subklass.

Bilder från föreläsningen: Arv, grunder (slides).pdf
Kodexempel: Account.zipPerson.zipCanonical form.zip

Det är lämpligt att efter föreläsningen läsa en introduktion till klass-diagram enligt Unified Modeling Language, http://dn.codegear.com/article/31863, under rubriken "Class diagrams".

En (något utdaterad) text om ämnet arv (här kallas superklass för basklass): Arv grunder.pdf

F06 21/9, Arv och polymorfism, interface

Förbered dig genom att se dessa filmer via iTunes U:
Freed-Hardeman University, kursen Introduction to Java:
- 7 Inheritance, från13:40 till slutet. 

Polymorfism (slides).pdf
Kodexempel: Polymorfism.zipAbstract super class.zip

En något utdaterad text om ämnet: Arv_polymorfism.pdf

Interface.pdfInterface slides.pdf
Kodexempel: interface Printable.zipinterface Playable.zipinterface java.lang.Comparable.zip

F07 22/9, Collections Framework, speciellt ArrayList. Enhetstestning

ArrayList.pdf
Kodexempel: TestArrayList.java

Enhetstestning: Enhetstestning.pdf
På sidan "Övningar" finns en introduktionsfilm till ett ramverk för enhetstestning, JUnit.

F08 23/9, Exceptions. Strömmar 

Exceptions Strömmar.pdf (ej fullständig, läs vidare i kurslitteraturen).

Kodexempel: Exceptions.zipStreams.zip
V
issa av applikationerna kräver argument till main (ex. filnamn) när de exekveras - se motsvarande övning för information om hur du åstadkommer detta.

F09 26/9, Generics 

Generics, slides.pdfGenerics.pdf
Kodexempel, generics.zip

F10 29/9 OO Analys och Design

Obligatorisk övning om OO Analys och Design, se laboration 4.

F11-12, 5-6/10, Introduktion till GUI och Event-handling. Model-View-Controller 

GUI, EventHandlers.pdf

Kodexempel: Basic JavaFX GUI.zipEvent examples.zip

Model-View-Controller

GUI, Model-View-Controller, Subject-Observer.pdf 
Kodexempel:  
MVC example.zip - ett enkelt exempel ("guess my word")
MVC example, alternative init.zip - samma som ovan, men med en något annorlunda initiering i Main. notera att i båda exemplen har jag valt att implementera EventHandlers i vyn (dessa anropar sedan metoder i controllern).

Temperature_JavaFX.zip - tre exempel i en applikation: MVC, Subject-Observer samt FXML (för SceneBuilder)

Några fler komponent-exempel

More components.zip (ComboBox, FileChooser, TextArea, Image och ImageView, AnimationTimer, "property bindings"). Notera att dessa exempel endast ska demonstrera användandet av några grafiska komponenter och inte följer M-V-C-mönstret.

Dialogfönster: JavaFXDialogExample.java (uppdaterad 2016-10-13)
Det går också att skapa dialogfönster med Stage-objekt: DialogUsingJavaFxStage.java

Tutorials om JavaFX

Getting started: https://docs.oracle.com/javafx/2/get_started/jfxpub-get_started.htm

Events, tutorial: http://docs.oracle.com/javafx/2/events/jfxpub-events.htm

Kodexempel för alla "controls" i JavaFX: http://docs.oracle.com/javafx/2/ui_controls/jfxpub-ui_controls.htm

JavaFX Scene Builder (inget som tas upp i denna kurs, men för den vetgirige...)

Det finns ett antal verktyg för att med hjälp av "drag and drop" skapa sammansatta vyer. Källkoden för vyerna genereras då i bakgrunden. Ett sådant verktyg är "Scene Builder", som finns integrerat i Netbeans.

Scene Builder använder sig också av det faktum att man kan definiera vyer via XML-dokument (.fxml) som sedan används för att generera källkod för de verkliga vyerna.

En tutorial för Scene Builder: http://docs.oracle.com/javafx/scenebuilder/1/use_java_ides/sb-with-nb.htm

F13 7/10, Trådar och synkronisering 

Threads.pdf

Thread examples.zip, Synchronization.zip

F14 12/10, Designmönster 

Design Patterns.pdf

Singleton.java, Comparator.zipSubject-Observer example.zip

F15, 13/10

Reserv. Frågor om laborationer.

F16 14/10, Inför tentamen + andra objektorienterade språk 

Information om tentamen: se kurswebben/Tentamen, speciellt dokumenten "Viktiga begrepp" och "Java - snabbreferens".

Andra OO språk: OO languages.pdf

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 inloggade användare 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.