Les 4: Klassen en Functies

Inleiding

Een class (ook wel klasse in het Nederlands) is een soort blauwdruk. Als je bijvoorbeeld werknemers in je programma wilt verwerken, kun je hier een klasse voor maken. Elke werknemer bevat dan dezelfde gegevens en functies die je in deze "blauwdruk" aangeeft. Je zult zien dat dat erg handig is.

Een class bevat twee belangrijke punten:

  1. Member data (ook wel ). De gegevens van een class. Bijvoorbeeld kunnen werknemers een id-nummer en een naam bevatten.
  2. Member functions (ook wel Methods). De functies van een class. Bijvoorbeeld kunnen we een functie maken die de gegevens van een werknemer afdrukt.

Nieuwe class makenNieuwe class maken

Laten we de class uit ons voorbeeld (dus voor de Werknemer) nu echt gaan bouwen.

  • Maak een nieuw project aan met het type Console Application in Visual Studio.
  • Laat het standaard bestand (Program.cs) staan, we werken hier later aan.
  • Maak een nieuwe class aan met de naam Werknemer (Werknemer.cs). Dit doe je door te rechterklikken op je project in de Solution Explorer (standaard aan de rechterzijde van Visual Studio), en te kiezen voor Add, Class. Je kunt ook de toetsencombinatie SHIFT + ALT + C gebruiken.


De inhoud van Werknemer.cs gaat er als volgt uit zien:

Code (Download)
using System;

namespace MijnProject
{
    public class Werknemer
	{
	    // We declareren twee variabelen voor onze klasse: een id-nummer en een naam. Elke
	    // werknemer die we aanmaken krijgt deze variabelen. Met "public" geven we aan dat
	    // onze variabelen "openbaar" zijn - dus ook extern toegankelijk buiten de klasse.
	    public int Id;
	    public string Naam;
	
	    // We declareren een method (functie) die de gegevens van deze werknemer afdrukt in
	    // het console-venster. We kunnen hier verwijzen naar onze variabelen.
	    public void drukGegevensAf()
	    {
	        Console.WriteLine("Werknemer:\tID #" + Id + "\tNaam: " + Naam);
	    }
	}
}

Dit is onze voorstelling van een werknemer in ons programma. Onze werknemers hebben twee gegevens die we nodig hebben in ons programma. Deze klasse bevat twee variabelen om die gegevens in op te slaan.

We hebben deze klasse ook een functie gegevens die we kunnen gebruiken om gegevens over onze werknemer af te drukken in de console.

Zoals je ziet, begin je in een klasse definitie altijd met de member data (de variabelen), en daarna pas de member functions (functies).

Instanties (Objecten)

We kunnen van een klasse een instantie maken. Deze instantie kunnen we opslaan in een variabele om deze later weer te gebruiken.

Code (Download)
using System;

namespace MijnProject
{
    public class Program
    {
        public static void Main(string[] args)
        {
            // We geven ons console-venster een titel.
            Console.Title = "Voorbeeld Classes";

            // We maken een instantie van de klasse Werknemer aan en slaan deze op in "mijnWerknemer".
            Werknemer mijnWerknemer = new Werknemer();
            mijnWerknemer.Id = 5534;
            mijnWerknemer.Naam = "Bob-Jan Klaassen";

            // We maken een tweede instantie van de klasse Werknemer aan en slaan deze op in "andereWerknemer".
            Werknemer andereWerknemer = new Werknemer();
            andereWerknemer.Id = 1338;
            andereWerknemer.Naam = "Henk-Pieter Janssen";

            // Beide klassen hebben hun eigen gegevens. We roepen de functie "drukGegevensAf" aan uit de
            // klasse Werknemer. Beide aanroepen zullen een verschillend effect hebben omdat de instanties
            // verschillende gegevens bevatten.
            mijnWerknemer.drukGegevensAf();
            andereWerknemer.drukGegevensAf();

            // We houden het console venster open.
            Console.ReadKey();
        }
    }
}
De uitkomst van het voorbeeldDe uitkomst van het voorbeeld

Je ziet de uitkomst van de bovenstaande code in de afbeelding hiernaast.

In de code hierboven maken we twee instanties aan van de class Werknemer aan. We doen dit met het new keyword. We slaan deze instantie (ook wel een object) op in een variable. Door het op te slaan in een variabele kunnen we de waarden later weer gebruiken.

Let wel op - ook al heb je twee klassen met identieke waardes, blijven het aparte objecten. Als je ze dus vergelijkt, zullen ze niet gelijk zijn. De vergelijking if (mijnWerknemer == andereWerknemer) zal dus altijd false terug geven, ook al hebben ze dezelfde gegevens.

Copyright © Roy de Jong 2012. Alle rechten voorbehouden.
Contact