4421 UWP klasser och objekt
Lärandemål
- Veta vad en klass och ett objekt är.
- Kunna läsa och rita klass- och objektdiagram.
- Kunna skriva kod för att skapa objekt.
- Kunna spara objekten i en variabel.
- Kunna ändra objektvariabler i objekten med hjälp av egenskaper (eng. properties).
- Känna till att data sparas i objekt.
Kör programmet. Då visas följande bild.
Avsluta programmet.
Öppna filen Picture.cs.
Sätt en breakpoint på "sista" raden i Picture.cs, se bild nedan.
Kör programmet.
Om du inte har fönstret Locals öppet så öppnar du det genom att klicka: Debug > Windows > Locals
Klicka sedan på de små pilarna för att visa innehållet i this och sedan i roof och så vidare. Det bör bli som i bilden nedan.
Objektdiagram
Klassdiagram
Utmaning
Gör ett slott
Ändra på koden i Picture så att ett slott ritas. Du kan också rita något annat. Det måste vara minst två trianglar, två cirklar och två kvadrater. Det är bara dessa tre former som finns tillgängliga.
Rita klassdiagram
Se länk nedan för hur man gör i Visual Paradigm.
Rita objektdiagram
När du är klar sätter du en breakpoint i slutet av Picture. Kör koden.
Kolla I locals.
Gör ett objektdiagram av ditt pictureobjekt samt av de objekt som finns i detta. Gör diagrammet på papper eller i Visual Paradigm.
Länkar
How to Draw Object Diagram?, Visual Paradigm
How to Draw Class Diagram?, Visual Paradigm
Med getters och setters istället för egenskaper
Rita ansikte
Ändra i klassen Picture.cs så att ett ansikte målas. Använd minst två cirklar, två kvadrater och två trianglar.
Objektdiagram
Sätt en breakpoint och studera vad picture-objektet innehåller.
Rita ett nytt objektdiagram för picture-objektet samt de objekt som det innehåller.
Reflektion
Vad ser du för likheter och skillnader på att använda egenskaper respektive getters och setters? Ni har egentligen inte använt er av getters utan bara utav setters. Getters används på annat håll i koden.
// med egenskap (eng. property)
sun.Size = 100;
// med setter
sun.SetSize(100);
Vilket gillar du bäst: egenskaper eller setters? Varför?
Har du nått lärandemålen
Lärandemålen finns överst i dokumentet.