Skip to content

Latest commit

 

History

History
83 lines (59 loc) · 2.53 KB

klasser-och-instanser.md

File metadata and controls

83 lines (59 loc) · 2.53 KB

Klasser och instanser

Klasser är ett sätt att klumpa ihop variabler och metoder som hör till samma "sak" i ett spel eller ett program. De gör det lättare att felsöka och lättare att hålla god struktur.

Man kan betrakta en klass som en ritning för något - "såhär ska fiender i spelet se ut - de ska ha de här egenskaperna".

Sedan skapar man instanser av klassen - de konkreta, faktiska fienderna. Alla goombas i Super Mario Bros och alla paladiner i World of Warcraft bygger på samma ritning. De har samma egenskaper och utseende i grunden, även om de skiljer sig åt i vilka värden en del av egenskaperna har. De befinner sig till exempel på olika positioner, även om de alla har en position.

Skapa klasser

Generellt bör varje klass läggas i sin egen fil. Med C# Dev Kit finns ett snabbt och enkelt sätt:

  • Gå till Explorer och öppna Solution Explorer.
  • Högerklicka på projektet klassen/filen ska läggas till i.
  • Välj "Add new File".
  • Välj "Class".
  • Skriv in namnet på klassen – glöm inte namngivning med PascalCase!
  • Skriv in skriv in using och namnet på klassens namespace högst upp i Program.cs

{% code title="Goomba.cs" lineNumbers="true" %}

namespace PlumberPlatformer

class Goomba
{
  // Klassvariabler
  public int X = 0;
  public int Y = 0;
  public bool IsDead = false;
}

{% endcode %}

{% code title="Program.cs" %}

using PlumberPlatformer;

{% endcode %}

Skapa instanser

Kodordet new skapar nya instanser i minnet (heapen).

Därefter behöver en referens till instansen lagras någonstans, till exempel i en variabel.

{% code lineNumbers="true" %}

Goomba g1 = new Goomba();
Goomba g2 = new Goomba();

{% endcode %}

Därefter kan man ändra på de individuella instansernas variabler separat:

{% code lineNumbers="true" %}

g1.X = 60;
g1.Y = 20;
g2.X = 80;
g2.Y = 25;

{% endcode %}

Man kan också tilldela värden till variablerna direkt när instansen skapas:

Goomba g3 = new Goomba() {x = 10, y = 6};

New()

Om man (som ovan) skapar en instans av exakt samma klass som variabeln så kan koden förenklas. Det gäller med andra ord nästan jämt – undantaget är vid polymorfism.

{% code lineNumbers="true" %}

Goomba g4 = new();
Goomba g5 = new() {X = 100};

{% endcode %}