Course Contents. Objektorienterad programmering. Goals. Buzzwords. Course overview (1) Book. Objektorienterad programmering d2. DAT050, 16/17, lp 2 1

Relevanta dokument
Objekt-orienterad Programmering och Design. TDA551 Alex Gerdes, HT-2016

Objekt-orienterad programmering och design. DIT953 Niklas Broberg, 2018

Objekt-orienterad Programmering och Design. TDA552 Alex Gerdes, HT-2018

Kursplan. IK1004 Java - Grafiska användargränssnitt med Swing. 7,5 högskolepoäng, Grundnivå 1. Java - GUI Programming with Swing - Undergraduate Level

Objekt, klasser. Tillstånd Signatur Kommunikation Typ. Fält, parametrar och lokala variabler. Konstruktorer Metoder DAVA15

Mer OOP. Variation i typ. Medlen repetition. Generiska klasser. Gränssnitt - Interface. Mer om klasser Några exempel UML

EDAA01 Programmeringsteknik - fördjupningskurs

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

TDDC74 FÖRELÄSNING 9 ANDERS MÄRAK LEFFLER IDA/HCS

Kursplan. MT1051 3D CAD Grundläggande. 7,5 högskolepoäng, Grundnivå 1. 3D-CAD Basic Course

Informatik med systemvetenskaplig inriktning A, 30 högskolepoäng Informatics, Basic Course, 30 Credits

Introduktionsmöte Innehåll

Datavetenskapligt program, N1COS

Arv och klassbibliotek

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt Kursprogram

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning

Föreläsning 15: Repetition DVGA02

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Informatik med systemvetenskaplig inriktning A, 30 högskolepoäng Informatics, Basic Course, 30 Credits

Sammanfattning och Tentamensinfo Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018

Kursplanering Objektorienterad programmering

Datavetenskapligt program, N1COS

HT1 2013, FÖRELÄSNING 14 (INFÖR TENTAN)

JUnit. Ska kompletteras med kodexempel på JUnit. DD2385 Programutvecklingsteknik Några bilder till föreläsning 12 21/5 2012

Classes och Interfaces, Objects och References, Initialization

Kurs-PM fo r HI1027, Objektorienterad programmering, period 1 HT15

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Vad kännetecknar en god klass. Vad kännetecknar en god klass. F12 Nested & Inner Classes

Kurs-PM fo r HI1027, Objektorienterad programmering, period 1 HT14

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt Kursprogram

Innehåll. dynamisk bindning. och programmering CRC) u Arv, polymorfi och

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Kurs-PM fo r HI1027, Objektorienterad programmering, period 1 HT17

Objektorienterad programmering

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Lösningsförslag. Programmeringsmetodik, KV: Java och OOP. 17 januari 2004

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

Ingenjörsfirman Stéen Java Sida 1 av 1

Objektorienterad programmering

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Innehåll. 5. More sophisticated behavior. Javas klassbibliotek. Arbete med klassbibliotek. A Technical Support System. Huvudloopens struktur

Kursutvärderare: IT-kansliet/Christina Waller. General opinions: 1. What is your general feeling about the course? Antal svar: 17 Medelvärde: 2.

Objektorienterad Programkonstruktion. Föreläsning 2 2 nov 2016

Objektsamlingar i Java

Programinformation VT 2012 för

Introduktion och OO. Objekt-orienterad Programmering och Design (TDA552) Alex Gerdes, HT-2018

Abstrakta Klasser 2. Kodning är bara en liten del i programvaruutvecklingen 6% 1% 6% Abstrakta Klasser - deklaration. Programutveckling sker i faser

DVG C01 TENTAMEN I PROGRAMSPRÅK PROGRAMMING LANGUAGES EXAMINATION :15-13: 15

Typecasting - primitiva typer. Innehåll. DoME klasser

Objektorienterad modellering och diskreta strukturer (EDAF10/EDA061)

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt Kursprogram

Tentamen. Programmeringsmetodik, KV: Java och OOP. 20 januari 2005

Michael Q. Jones & Matt B. Pedersen University of Nevada Las Vegas

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack

Objektorienterad programmering, allmänt

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?

DVA336 (Parallella system, H15, Västerås, 24053)

Objektorientering i liten skala

Programmering för språkteknologer II, HT2011. Rum

729G06 Föreläsning 1 Objektorienterad programmering

Programmeringsteknik II

Klicka här för att ändra format

"Är en"-relation. "Har en"-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde

Arv och polymorfism i Java

Objektorienterad programmering Föreläsning 12. Copyright Mahmud Al Hakim

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018

Kursplan. AB1029 Introduktion till Professionell kommunikation - mer än bara samtal. 7,5 högskolepoäng, Grundnivå 1

Kursplan. NA3009 Ekonomi och ledarskap. 7,5 högskolepoäng, Avancerad nivå 1. Economics of Leadership

Instuderingsuppgifter läsvecka 2

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

Föreläsning 8. Designmönster

Kopiering av objekt i Java

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Programmering i C++ EDA623 Objektorienterad programutveckling. EDA623 (Föreläsning 5) HT / 33

The Finite Element Method, FHL064

TDP005. Föreläsning 3 - UML. Filip Strömbäck

Klasshierarkier - repetition

UML Objektdiagram. Objektorienterad modellering och design (EDAF25) Föreläsning 3. UML Sekvensdiagram. UML Objektdiagram. Agenda

Preschool Kindergarten

Objektorientering. Grunderna i OO

Föreläsning 1, vecka 6: Abstraktion genom objektorientering

Tentamen. DD2385 Programutvecklingsteknik vt 2013 Onsdagen den 22 maj 2013 kl Hjälpmedel: penna, suddgummi, linjal

TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java

Objektorienterad programmering. Grundläggande begrepp

Java-syntax (arv) Exempel: public class Crow extends Bird {... } Jämför med Lab 1: public class FirstApp extends Frame {... }

Programmeringsteknik F1/TM1

UML. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

TDDD78, TDDE30, 729A Typhierarkier del 2 Vad krävs? Hur fungerar det?

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Kursplanering fo r HI1027, Objektorienterad programmering, P1 HT112

Design för användbarhet Designexempel, hur tänkte man vid designen?

Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Jonas Lindgren, Institutionen för Datavetenskap, LiU

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design Alex Gerdes, 2016

The Last Adventure. Innehåll. Objektorientering. Språket Java. Java - Paket. Java - synlighet. Den sista lektionen. Repetition.

Föreläsning 2. Objektorienterad analys och design. Analys: att modellera världen. Design: att strukturera program.

Transkript:

Objektorienterad programmering DAT050 DAI2 lp1 2016/2017 Uno Holmer Andreas Wieden Robin Åstedt Course Contents Introduction to object-oriented programming with a strong software engineering foundation aimed at producing and maintaining large, high-quality software systems. 2 Buzzwords responsibility-driven design inheritance encapsulation overriding coupling iterators javadoc interface cohesion refactoring abstraction collection classes mutator methods regression testing design patterns polymorphic method calls Goals Sound knowledge of programming principles Sound knowledge of object-orientation Able to critically assess the quality of a (small) software system Able to implement a small software system in Java 3 4 Book David J. Barnes & Michael Kölling Objects First with Java A Practical Introduction using BlueJ 6th edition, Pearson Education, 2016 ISBN 978-1-292-15904-1 Course overview (1) Objects and classes Class definitions Object cooperation Collections of objects Class libraries Class documentation methods Well-behaved objects automatic testing and debugging Well-designed programs 5 6 DAT050, 16/17, lp 2 1

Course overview (2) Handling errors Inheritance Polymorphism Abstract classes and interfaces How to build flexible and extendable class structures using inheritance Course overview (3) OOA DAT055 lp III Design process and modelling Graphical user interfaces Design patterns Streams and files Parallel computing with threads Communication Reflection and meta programming Software project 7 8 Activities Lectures Supervised class excercises Laborations (5) Your own work (plenty) V. Föreläsning BK kap. Laboration/ 35 Mån: F1 Introduktion till kursen och OOP App. A, B, C, D 1 Lab 1 Java och BlueJ Ons: F2 Objekt och klass, instansvariabler, konstruktorer och 2 metoder Sön 8/9 36 Mån: F3 Objektinteraktion, objektsamlingar Ons: F4 Objektsamlingar forts. 3, 4.1-4.8 4.9-4.17 Lab 2 Objektinteraktion Sön 15/9 37 Mån: F5 Associativa objektsamlingar och mängder, likhet och 5 identitet, klassvariabler, konstanter Ons: F6 Testning, enhetstestning, regressionstestning, JUnit, 7, App. G testautomatisering, avlusning Lab 3 Objektsamlingar Sön 22/9 38 Mån: F7 Dokumentation av program, JavaDoc, kompilering, modularisering av program Ons: F8 Designprinciper, koppling, kohesion, refaktorering App. I, J, K App. E, F. OH 6 Lab 4 Testning 39 Mån: F9 Arv, subtypning, substitutionsprincipen 8 Ons: F10 Polymorfism, statisk och dynamisk typ, dynamisk bindning 40 Mån: F11 Abstrakta klasser och gränssnitt 9 10 Sön 2/10 Lab 5 Arv Ons: F12 Kopiering av objekt, grund och djup kopiering 41 Mån: F13 Strukturerad felhantering OH 12 9 Ons: F14 Likhets- och jämförelserelationer för objekt, hashfunktioner 42 Ons Repetition 43 Tentamen: Tor 27/10 OH Sön 16/10 Fundamental concepts Demo object class method parameter data type 11 12 DAT050, 16/17, lp 2 2

Objects and classes objects represent things from the real world, or from some problem domain (example: the red car down there in the car park ) classes represent all objects of a kind (example: car ) Methods and parameters Objects have operations which can be invoked (Java calls them methods). Methods may have parameters to pass additional information needed to execute. 13 14 Other observations State Many instances can be created from a single class. An object has attributes: values stored in fields. The class defines what fields an object has, but each object stores its own set of values (the state of the object). 15 16 Two circle objects Source code Each class has source code (Java code) associated with it that defines its details (fields and methods). 17 18 DAT050, 16/17, lp 2 3

Return values Methods may return a result via a return value. FunktionsOrientering och ObjektOrientering (OO) ObjektOrienterad programutveckling Analys (OOA) Design (OOD) Programmering (OOP) 19 20 Funktionsorienterat synsätt Sätter systemets funktioner i centrum Det FunktionsOrienterade synsättet stanna(hissen); hissen stanna hissen Analysen fokuserar på systemets funktionalitet: Objektorienterat synsätt Sätter systemets objekt i centrum hissen.stanna(); stanna! hissen I fokus Funktioner verkar på data Underordnade Top-Down design, stegvis förfining, algoritmisk dekomposition,... 21 22 Funktionsorienterad bankomatdesign Manövrera kort Kontantuttag Verifiera kort PIN-kod belopp Mata ut sedlar Det ObjektOrienterade synsättet Systemet analyseras med avseende på verkliga ting Tingen modelleras som objekt interaktion mellan Objekt Öppna lås Stäng lås Ring upp centraldator Meddela fel Skriv ledtext Läs siffror Meddela fel - Tillstånd - Operationer upp ner Dataformaten är troligen kända i flera funktioner => svårt att lokalisera och ändra datarepresentation (Y2K ) Bankomatens sekventiella beteende är inkodat i strukturen => svårt att lägga till nya tjänster (t.ex. saldoförfrågan) Olika begrepp hanteras utspritt, t.ex. hanteringen av displayen => svårt att lokalisera vid förändringar VAD hanteras i systemet (vilka objekt)? Vilka relationer finns mellan objekten? Hur kan objekten samarbeta för att ge önskade tjänster? Vilka operationer måste finnas i objekten? 23 24 DAT050, 16/17, lp 2 4

Objektorienterad bankomatdesign Luckmotor Skrivare KopplaUpp KopplaNer Centraldator Lucklås Öppna Upp Ner SkrivKvitto MinskaSaldo VerifieraKort Display Stäng Meddelande Styrenhet MataUtSedlar SedlarSlut Sedelutmatare TangentHändelse Tangentbord LäsTangent KortInmatat MataUtKort Kortenhet 25 DAT050, 16/17, lp 2 5