TOC

This article has been localized into Dutch by the community.

Klassen:

Velden (Fields)

Een van de meest basis bouwstenen van een klasse is een veld. Het is net als een variabele, waar we het eerder over hadden, maar gedefinieerd op klasse niveau in plaats van het methode niveau. Het verschil is best belangrijk en heeft alles van doen met de reikwijdte, welke beslist van waaruit een variabele kan worden benaderd: een lokale variabele ( gedefinieerd binnen een methode) kan alleen benaderd worden vanuit deze specifieke methode, terwijl een klasse veld vanuit alle methoden van een klasse benaderd kan worden en zelfs vanuit methodes in ander klassen wanneer de zichtbaarheid het toestaat.

Met andere woorden, het verschil tussen een variabele en een veld is eigenlijk de plek waar deze gedeclareerd wordt. Een klasse-niveau variabele wordt een veld genoemd, terwijl een methode- niveau variabele normaal gesproken een variabele wordt genoemd.

Velden worden vaak gedeclareerd bovenin de klasse en hun zichtbaarheid wordt vaak op private gezet ( we bespreken zichtbaarheid verderop in dit hoofdstuk). Het zou er als volgt uit kunnen zien:

public class FieldsSample
{
	private string name;
	....

We hebben nu een variabele op klasse niveau met de naam "name", waartoe alle methodes uit die klasse toegang hebben. Er is geen toegang mogelijk van buiten de klasse, maar enkel indien we het aangeduid hebben als private. Het staat u vrij om uw velden te beschrijven als protected als je ze toegankelijk wilt maken vanuit afgeleide klassen of zelfs als public als je toegang wilt hebben vanaf eender waar, maar denk eraan dat de aanbevolen weg om velden toegankelijk te maken van buiten de klasse, via properties gebeurt, wat we nader zullen bespreken in het volgende artikel.

In ons voorbeeld hierboven heeft onze variabele "name" geen initiële waarde, wat betekent dat u zelf voor een aanduiding zult moeten zorgen om het te kunnen gebruiken. Als u weet welke beginwaarde het veld moet krijgen, kunt u deze meteen met de beschrijving toekennen:

public class FieldsSample
{
	private string name = "John Doe";
	....

Als alternatief kan je een waarde toekennen aan een veld in de klasse opbouw. Deze zal elke bij de beschrijving aan het veld toegekende waarde overschrijven, en zal u toelaten om dynamisch waarden toe te kennen.

Zoals eerder aangehaald kunnen leden van een klasse bereikt worden met de dot-notatie, zoals "class.member". Echter, wanneer we naar een lid van een andere klasse gaan, gebruiken we het "this" keyword, zoals "this.member". Hierna volgt een vollediger voorbeeld waarin we een koppel velden beschrijven die we binnen een methode hanteren:

public class Fields1
{
	private string name = "John Doe";
	private int age = 42;

	public void Describe()
	{
		string description = this.name + " is " + this.age + " years old...";
		Console.WriteLine(description);
	}
}

In de Describe() methode (geen nood, we bespreken de methodes in een van onze volgende artikels) beschrijven we een lokale variabele genaamd "description", met een waarde gebaseerd op onze twee beschreven velden. De "description" variabele is een mooi voorbeeld van een variabele die altijd een variabele moet zijn en nooit een veld: het is tijdelijk en enkel relevant voor de methode waarin het gebruikt wordt, terwijl velden gemakkelijk relevant kunnen zijn in meerdere klassen van de methode.

Samenvatting

Velden gedragen zich een beetje zoals globale variabelen omdat ze kunnen gebruikt worden om data op te slaan, welke daarna kunnen bereikt worden van eender waar binnen de klasse. Ze zijn ook toegankelijk van buiten de beschreven klasse, maar in principe worden hiervoor properties gebruikt. Properties worden in het volgende artikel besproken.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!