Een klasse maak je met het sleutelwoord class. De naam begint altijd met een hoofdletter (dit is een conventie in C#).
public class Hond
{
// hier komt de inhoud
}
Waar schrijf je de klasse?
Schrijf een klasse buiten de
Program-klasse, maar binnen dezelfde namespace:namespace H9c { public class Hond // ← jouw klasse { } public class Program // ← de hoofdklasse { public static void Main(string[] args) { } } }
Een klasse zonder eigenschappen is als een ID-kaart zonder informatie. Eigenschappen slaan de data van een object op.
De kortste en eenvoudigste manier is de auto-property:
public class Hond
{
public string Naam { get; set; }
public string Ras { get; set; }
public int Leeftijd { get; set; }
}
Wat betekent elk stukje?
| Stukje | Betekenis |
|---|---|
public |
Iedereen mag dit lezen en schrijven |
string |
Het datatype |
Naam |
De naam van de eigenschap (hoofdletter!) |
{ get; set; } |
Automatisch lezen én schrijven toegestaan |
’ https://mermaid.live/edit#pako:eNpNkLluwzAMhl_F4FrDkHX40NoOGdIOHQsvQkQ7CiwpkGSgreF3r-0kRTjw-MCfJDjDyWsECadRxfhm1BCU7Vy22k6yg3c6m29ks5eYgnFD9qEefc_0U8UnaFzKjoh9Mhd9wwvkMASjQaYwYQ4Wg1VbCfuKDtIZLXYg11Rjr6YxddC5TXZV7st7-1AGPw1nkL0a41pNV60S3s__pwGdxvDqJ5dAsnKfAXKGb5CCkKKljJSCtS0RVLAcfkC —
newEen klasse is alleen een blauwdruk — ze doet nog niets. Je moet er een object van aanmaken met het sleutelwoord new:
Hond mijnHond = new Hond();
Dit maak je als volgt:
mermaid
flowchart LR
A["Hond"] -->|type| B["mijnHond"]
C["="] --> B
D["new Hond()"] -->|aanmaken| B
B --> E["Object in geheugen\nNaam: null\nRas: null\nLeeftijd: 0"]
Nu bestaat het object in het geheugen, maar de eigenschappen zijn nog leeg (null voor strings, 0 voor int).
Je leest en schrijft eigenschappen via de puntnotatie (object.Eigenschap):
Hond mijnHond = new Hond();
// Waarden instellen
mijnHond.Naam = "Rex";
mijnHond.Ras = "Labrador";
mijnHond.Leeftijd = 3;
// Waarden lezen
Console.WriteLine(mijnHond.Naam); // Rex
Console.WriteLine(mijnHond.Ras); // Labrador
Console.WriteLine(mijnHond.Leeftijd); // 3
Van dezelfde klasse kan je zo veel objecten maken als je wil. Elk object heeft zijn eigen waarden:
Hond hond1 = new Hond();
hond1.Naam = "Rex";
hond1.Ras = "Labrador";
Hond hond2 = new Hond();
hond2.Naam = "Fifi";
hond2.Ras = "Poedel";
Hond hond3 = new Hond();
hond3.Naam = "Max";
hond3.Ras = "Beagle";
flowchart TB
K["📐 Klasse: Hond\n(de blauwdruk)"]
K --> O1["🐕 hond1\nNaam: Rex\nRas: Labrador"]
K --> O2["🐩 hond2\nNaam: Fifi\nRas: Poedel"]
K --> O3["🐶 hond3\nNaam: Max\nRas: Beagle"]
Belangrijk
hond1,hond2enhond3zijn volledig onafhankelijk van elkaar. Als jehond1.Naamverandert, heeft dat geen enkel effect ophond2ofhond3.
Hier zie je alles samen: een klasse met drie objecten.
using System;
namespace H9c
{
public class Leerling
{
public string Naam { get; set; }
public string Klas { get; set; }
public int Punten { get; set; }
}
public class Program
{
public static void Main(string[] args)
{
Leerling l1 = new Leerling();
l1.Naam = "Emma";
l1.Klas = "3A";
l1.Punten = 72;
Leerling l2 = new Leerling();
l2.Naam = "Rayan";
l2.Klas = "3A";
l2.Punten = 55;
Console.WriteLine($"{l1.Naam} ({l1.Klas}): {l1.Punten}/100");
Console.WriteLine($"{l2.Naam} ({l2.Klas}): {l2.Punten}/100");
}
}
}
Uitvoer:
Emma (3A): 72/100
Rayan (3A): 55/100
flowchart LR
subgraph Klasse["📐 Klasse (blauwdruk)"]
direction TB
P1["Eigenschap: Naam"]
P2["Eigenschap: Klas"]
P3["Eigenschap: Punten"]
end
subgraph Object1["Object: l1"]
V1["Naam = Emma"]
V2["Klas = 3A"]
V3["Punten = 72"]
end
subgraph Object2["Object: l2"]
V4["Naam = Rayan"]
V5["Klas = 3A"]
V6["Punten = 55"]
end
Klasse -->|new Leerling()| Object1
Klasse -->|new Leerling()| Object2
| Klasse | Object | |
|---|---|---|
| Wat? | Blauwdruk / sjabloon | Concreet exemplaar in het geheugen |
| Wanneer? | Bij het schrijven van code | Met new tijdens uitvoering |
| Hoeveel? | Één per type | Onbeperkt |
Onthoud
- Een klasse declareer je met
public class NaamVanKlasse { }- Eigenschappen declareer je als
public string Naam { get; set; }- Een object maak je aan met
new KlasseNaam()- Je leest en schrijft eigenschappen via puntnotatie:
object.Eigenschap- Elk object heeft zijn eigen waarden — ze zijn volledig onafhankelijk