Inkapsling (encapsulation)

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

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

Föreläsning 15: Repetition DVGA02

Objektorientering Användning

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

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

UML. Tomas Czarnecki Institutionen för Informationsbehandling Åbo Akademi,FIN Åbo, Finland url:

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

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

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

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

Analys och design. Objekt. Klass. med hjälp av CRC. Klassdiagram

Objektorientering. Grunderna i OO

Imperativ programmering. Föreläsning 4

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

729G75: Programmering och algoritmiskt tänkande. Tema 3, föreläsning 2

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

F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander

Tentamen i EDAF25. 1 juni Skrivtid: Skriv inte med färgpenna enda tillåtna färg är svart/blyerts.

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 14

Objektorienterad Programmering (OOP) Murach s: kap 12-16

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

Relationer mellan objekt

Introduktion. Byggstenar TDBA

Interaktions- och klassdiagram, kap F4 ht -10

Lösningar till Fiktiv Tentamen på kursen. 2D4135 Objektorienterad programmering, design och analys med Java vt2004. Teoridel

Begreppsmodellering i UML

Objektorienterad Programmering (TDDC77)

Interaktions- och klassdiagram, kap F4 vt -07

Lite om databasdesign och modellering

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Översikt. Introduktion. Objektorienterad programutveckling UML UML. Analys Design. Klassdiagram Aktivitetsdiagram

Inledande programmering med C# (1DV402) Tärningarna ska kastas

Objektorienterad Programmering (TDDC77)

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

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

TDDI82 - Projekt. Christoffer Holm. Institutionen för datavetenskap (IDA)

Objektorienterad konstruktion

Vad är ett objekt? Tillstånd och beteende. Vad är ett objekt? Exempel

Laboration 1 - Grunderna för OOP i Java

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

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

Översikt. Introduktion. Objektorienterad programutveckling UML UML. Analys Design. Klassdiagram Aktivitetsdiagram

UML 1(5) Introduktion till Unified Modeling Language. 1 Bakgrund och historik

Frågor och svar till tentamen i Kravhantering

Tentamen i Objektorienterad modellering och design

TDDE10 TDDE11, 725G90. Objektorienterad programmering i Java, Föreläsning 3 Erik Nilsson, Institutionen för Datavetenskap, LiU

TDP005 Projekt: objektorienterade system

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

Objekt-orienterad programmering. Klassbegreppet och C++ UML. UMLs fördelar

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

Ett objekt... Exempel: Om ni tittar er runt i föreläsningssalen ser in många olika fysiska föremål:

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här:

Introduktion. Klasser. TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder

UML. Översikt UML. Relationer mellan klasser. A är ett aggregerat av B:n. Kontor aggregat av Enheter. 12 olika diagramtyper, bl.a.

Objektorienterad Programkonstruktion. Föreläsning 7 24 nov 2015

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

Mutability och State. Objekt-orienterad programmering och design (DIT953) Niklas Broberg / Johannes Åman Pohjola, 2018

Classes och Interfaces, Objects och References, Initialization

Teoridel (svaren direkt på lydelsen)

Tentamen i Objektorienterad modellering och design Helsingborg

Programmering = modellering

Laboration 2: Designmönster

Objektorienterad analys och design

Objektinteraktion. Objektorienterad programmering Laboration 2. Syfte Att konstruera ett litet objektorienterat program med flera samverkande objekt.

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

Objektorienterad programmering

Outline. Objektorienterad Programmering (TDDC77) Att instansiera en klass. Objekt. Instansiering. Åtkomst. Abstrakt datatyp.

UML: Exempel. Ett modelleringsspråk. UML: Ansvar. UML: tre huvudanvändningar. Exempel: En klass position storlek. UML Unified Modelling Language

Objektinteraktion. Objektorienterad programmering Laboration 2. Syfte Att konstruera ett litet objektorienterat program med flera samverkande objekt.

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

Föreläsning 5. Föreläsning 5. Klasser och objekt. Klasser och objekt. Klasser och objekt

Arv och polymorfism i Java

Laboration 2: Designmönster

Föreläsning 5. Föreläsning 5

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

Outline. Objektorienterad Programmering (TDDC77) Laborationsserie del två. Vad händer under HT2. Introduktion HT2 UML.

Objektorienterad programmering

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document

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

Begreppsmodellering i UML

Föreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt

Arkitektur Michael Åhs

1 Egna klasser. 1.1 En punkt-klass

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Objektorienterad programmering, allmänt

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

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

Historik: OOP. Objektorientering. Historik: OOP (forts) En Dum Fråga

Objektorienterad Programkonstruktion. Föreläsning 6 23 nov 2015

Outline. Objektorienterad Programmering (TDDC77) Åsidosättning. Signatur. Åsidosättning. Abstrakta klasser. Ahmed Rezine.

Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser

Arv. Objektorienterad och komponentbaserad programmering

Målen med OOSU. Objektorienterad programmering. Objektorienterad programmering. Karlstads Universitet, Johan Öfverberg 1

729G75: Programmering och algoritmiskt tänkande. Tema 3, föreläsning 2

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

Systemvetarutbildningen och dataekonomutbildningen

Programmering B med Visual C

Tentamen i Objektorienterad modellering och design Helsingborg

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Transkript:

UML UML är en standard för att dokumentera och visualisera sina tankar och beslut under analys och design. Att lära sig allt om UML får inte plats i den här kursen, men vi kommer lära oss vissa delar. Börja med att titta igenom Appendix C i boken för att se exempel på olika UML diagram. Titta gärna på den här sidan som har massor av exempel och förklaringar! http://www.uml diagrams.org/ Om ni blir riktigt nyfikna kan ni även titta på OMGs hemsida: http://www.omg.org/spec/uml/2.4.1/ (OMG står här för Object Management Group och inget annat. Det är de som står för att hela tiden vidareutveckla UML standarden.)

Vad är ett objekt? Ett objekt är ofta en sak, t.ex. en boll, en bil, ett hus, etc Ett objekt har egenskaper. Dessa kallas attribut och är våra variabler i java. Ett objekt har även sätt man kan använda det. Dessa kallas objektets operationer och är våra metoder i java.

Objekt vs Klasser En klass är som en ritning för objekt, som anger vad objektet kan göra Ett objekt är i stort sett ett minnesblock som har allokerats och ställts in efter klassens specifikation Man kan skapa många objekt av samma klass istället för att behöva skriva samma kod flera gånger Objekt kallas också instanser (eller klassinstanser)

Inkapsling (encapsulation) Objektets variabler utgör objektets kärna. Metoderna omger och skyddar kärnan från andra objekt. Att paketera objektets variabler i en skyddad miljö med hjälp av metoder kallas dataabstraktion (inkapsling/ encapsulation).

Exempel Du startar din bil genom att sätta in nyckeln och vrida på nyckeln. (Du anropar en publik metod.) Detaljerna av vad som händer när du vrider på nyckeln göms från dig. Du behöver inte kunna något om detta för att starta bilden. Du kan heller inte påverka det interna tillståndet förutom att vrida på nyckeln.

Dataabstraktion Dataabstraktion är en enkel och kraftfull idé som ger utvecklaren framförallt två fördelar: Modularitet: Ett objekts källkod kan skrivas och underhållas självständigt från andra objekts källkod. Detta låter ett objekt att förflyttas och återanvändas. Du kan låna ut ditt objekt (t.ex. en klocka) till någon annan, och det ändras inte. Gömma information Ett objekt använder ett publikt gränssnitt för att kommunicera med andra objekt. Det kan bara användas på rätt sätt. Objektet kan ha privat information och metoder som kan ändras när som helst utan att påverka andra objekt som är beroende av det. Även om urverket byts ut så kollar du tiden på samma sätt.

Några fördelar med inkapsling Enkla att använda. Eftersom man bara kan använda de publika metoderna så behöver man inte fundera på om man använder en metod man borde låta bli. Enkla att underhålla. Om du ändrar på din privata kod så påverkar detta normalt inte hur dina publika metoder används. Flexibla. Av anledningen ovan blir det även lättare att lägga till ny funktionalitet.

Associations, Aggregations och Composition Alla objekt är kopplade till andra objekt Man kan koppla ihop objekt på olika sätt association, aggregering eller komposition Association betyder att de är löst grupperade. De samarbetar på nåt sätt. Aggregation betyder att sammanfoga objekt till ett större helhetsobjekt men där delarna fortfarande kan klara sig på egen hand. Composition är den starkaste formen av koppling. Här sammanfogar man några delar till ett större objekt där delarna är beroende av det större objektet.

Kopplingar i UML Kopplingarna, eller länkarna, visas som streck som eventuellt har extra symboler Man kan navigera i koden genom att använda länkarna Man ska detaljera så mycket som behövs för att illustrera det som är viktigast Olika personer ritar diagram olika!

Visio För att rita klassdiagram i Visio så gör ni såhär: Välj New, Software & Database, UML Model Diagram. Ni hittar symboler för Class (Klasser) och olika pilar/streck för att visa de olika klassernas förhållande till varandra under UML Static Structure i vänsterkanten. Under UML Deployment hittar ni Component symbolen som ni kan använda er av när ni vill representera en större del som innehåller flera klasser men som ni valt att inte modellera i detalj. Här kan ni tydligt se vad de olika pilarna symboliserar: http://www.csci.csusb.edu/dick/samples/uml0.html, klicka på Connections between classes in a UML class diagram.

Läshänvisning Kapitel 2.1 2.8 Kapitel 2.14 2.20