Till KTH:s startsida Till KTH:s startsida

Ändringar mellan två versioner

Här visas ändringar i "Föreläsningar" mellan 2016-09-22 16:36 av Anders Lindström och 2016-09-22 16:51 av Anders Lindström.

Visa < föregående | nästa > ändring.

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.pdfAcccount.java, AccountMain.javaCard.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.zipKodex String.zipenum 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.pdfKodex Shared aggregation.zip, Kodex Composite aggregation.zip

ArrayList.pdfTestArrayList.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).pdfKodexempel: Account.zip, Person.zip, Canonical 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).pdfKodexempel: Polymorfism.zip, Abstract super class.zip

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

Interface.pdf, Interface slides.pdfKodexempel: interface Printable.zip, interface Playable.zip, interface java.lang.Comparable.zip

F07 22/9, Collections Framework, speciellt ArrayList. Enhetstestning ArrayList.pdfKodexempel: TestArrayList.java

Enhetstestning: Enhetstestning.pdfPå 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.zip, Streams.zipVissa 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.pdfKodexempel, 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.zip, Event examples.zip

Model-View-Controller Model-View-Controller.pdf

Kodexempel: Simple MVC example.zip, MVC example.zip (det senare med en separat controller-klass)

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 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.zip, Subject-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