class: center, middle, lnu-background-yellow ### Objektorienterad programmering (1DV024) # Klasser och objekt --- class: lnu-background-cc ### Upphovsrätt för detta verk Detta verk är framtaget av Mats Loock i anslutning till kursen Objektorienterad programmering (1DV024) vid Linnéuniversitetet. Allt innehåll i detta verk förutom fotografier, ikoner, bild på kurslitteraturen samt Linnéuniversitetets logotyp och symbol, är licensierad under en
Creative Commons Erkännande 4.0 Internationell Licens
. #### Du får använda detta verk så här - kopiera hela eller delar av innehållet - sprida hela eller delar av innehållet - visa hela eller delar av innehållet offentligt och digitalt - konvertera innehållet till annat format - du får även göra om innehållet Om du förändrar innehållet så ta inte med fotografier, ikoner samt Linnéuniversitetets logotyp och symbol i din nya version! Vid all användning måste du ange källan: ”Linnéuniversitetet – Objektorienterad programmering (1DV024)” och en länk till https://coursepress.lnu.se/kurs/objektorienterad-programmering och till Creative Common-licensen här ovan. --- # Vilka typer av objekt har vi? (1 av 2)
--- # Vilka typer av objekt har vi? (2 av 2)
--- # Klassificering av objekt
--- # Klassificering av figurer
--- # Vad utmärker en rektangel?
--- # Vad en rektangel "har" och "kan" - En rektangel __har__ (_attribut_, kännetecken): - bredd - höjd - färg - En rektangel __kan__ (_operationer_, sätt att ändra på kännetecken): - ändra bredd - ändra höjd - ändra färg --- # Rektangel som klass - Ett klassdiagram beskriver klassens namn, attribut och operationer.
Rektangel
namn
bredd
höjd
färg
attribut
ändraBredd()
ändraHöjd()
ändraFärg()
operationer
--- # Klassdeklaration i C# #
.smaller[ ``` public class Rectangle { private int _height; private int _width; public Rectangle(int width, int height, Color color) { Width = width; Height = height; Color = color; } public Color Color { get; set; } public int Width { get { return _width; } set { if (value <= 0) { throw new ArgumentOutOfRangeException(nameof(value)); } _width = value; } } public int Height { get { return _height; } set { if (value <= 0) { throw new ArgumentOutOfRangeException(nameof(value)); } _height = value; } } public override string ToString() => $"Width: {Width}, Height: {Height}, Color: {Color.ToArgb()}"; } ``` ] --- # Du använder en klass för att skapa objekt
--- #
När du skapar ett nytt objekt av en klass...
- ...kallas det att du skapar en __instans__ av den klassen.