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.

Ladda ner kod från GitHub.

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

Ladda ny koden från GitHub

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.