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.java, AccountMain.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.zip, Kodex 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.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).pdf
Kodexempel: Polymorfism.zip, Abstract super class.zip
En något utdaterad text om ämnet: Arv_polymorfism.pdf
Interface.pdf, Interface slides.pdf
Kodexempel: interface Printable.zip, interface Playable.zip, interface 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.zip, Streams.zip
Vissa 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.pdf, Generics.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
Kodexempel: Basic JavaFX GUI.zip, Event 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
Thread examples.zip, Synchronization.zip
F14 12/10, Designmönster
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