Een OO programma maken
Orde in .NET
We gaan het object georiënteerd programmeren stap voor stap bijbrengen. We beginnen hier met één aspect van object georiënteerd programmeren: orde!
1. Een nieuw .cs bestand maken
Begin met een map te maken waar je al je code van het project in plaatst. Geef die de naam App_Code. Visual C# gaat automatisch alle code in die map mee compileren:
- Klik met de rechtermuisknop op de App_Code map. In het Add New Item dialoogvenster kies je om een klasse toe te voegen en geef die de naam MyHello.cs.
- Het bestand MyHello.cs wordt geopend in de code editor.
2. Een betekenisvolle naam voor de namespace kiezen
Er zijn verschillende manieren om de code te organiseren. De keuze moet worden gebaseerd op de afspraken binnen je team en de aard van het project waaraan je werkt. Een manier om code te organiseren is met behulp van namespaces. Namespaces passen in de volgende hiërarchie:
- Namespace
- Type
- Type Leden
- Type
In deze hiërarchie is de namespace optioneel. Heel veel boeken tutorials besteden weinig aandacht aan namespaces en geven voorbeelden zonder gebruik te maken van namespaces.We raden aan om konsekwent namespaces te gebruiken, net zoals .NET dat zelf doet. Je kan niets in .NET gebruiken zonder eerst de namespace te vermelden waarin het het 'ding' zit dat je nodig hebt.
Wijzig de namespace in een namespace die betekenis heeft. Alle code die we gaan schrijven om C# te leren en waarbij we de console als UI gebruiken, plaatsen we in de namespace CSharpLerenViaDeConsole
.
Afspraken voor het geven van een naam aan namespace:
- gebruik geen onderstrepingstekens zoals _;
- begin de naam met een hoofdletter;
- als een namespace uit meer woorden is samengesteld, laat je de spaties tussen de woorden weg en begin je vanaf het tweede woord de eerste letter met een hoofdletter te schrijven. We noemen dit Pascal notatie.
3. Klassen
Een klasse declareren
Een klasse declareer je met het sleutelwoord class. Een klasse kan velden, eigenschappen en methoden bevatten. Hier introduceren we alleen maar methoden. In programmeren 1 sprak men van functies. In OOP echter spreekt men van methoden.
4. Velden in een klasse declareren
Om een veld in een klasse te declareren moet je minstens 3 zaken bepalen
- de naam van het veld
- het gevenstype
- het bereik of de scope
5. Eigenschappen of properties declareren
Om een property in een klasse te declareren moet je minstens 3 zaken bepalen
- de naam van de eigenschap
- het retourgevenstype
- het bereik of de scope
- een impliciete
value
parameter voor de setter
6. Een methode in een klasse declareren
Om een methode in een klasse te declareren moet je minstens 3 zaken bepalen
- de naam van de methode
- het retourgegevenstype
- het bereik of de scope
Een methode heeft net als een functie een gegevenstype. Het gegevenstype geeft aan welk soort gegevenstype door de methode geretourneerd wordt. In ons voorbeeld is dat void, omdat de methode niets retourneert.
Als je goed kijkt merk je dat de declaratie van de methode begint met het sleutelwoord public. Dit sleutelwoord bepaalt het bereik of de scope van de methode. Voorlopig beperken we ons tot twee scopes, namelijk public en private. Private wil zeggen dat de methode slechts gebruikt kan worden binnen de klasse waarin ze gedeclareerd is. Public wil zeggen dat andere klassen die methode ook kunnen aanroepen. Vermits we in ons voorbeeld de methode SayHello vanuit de Main methode willen oproepen moeten we ze als public declareren.
Een methode van een klasse gebruiken
Vooraleer je een reeds gedeclareerde klasse kan gebruiken moet je er eerst een instantie van maken. Je instantieert een klasse met het sleutelwoord new. Als je een instantie - ook wel exemplaar of object genoemd - hebt, kan je de publieke methoden ervan oproepen. Later zullen we zien hoe je methoden kan oproepen zonder eerst een instantie van een klasse te maken. Maar dat is nu niet aan de orde.
In ons voorbeeld roepen we de methode SayHello van de klasse MyHello op in de Main methode. De Main methode staat in het bestand Program.cs:
6. Notatie afspraken
Namespaces, klassen, eigeschappen en methoden
We maken de volgende afspraken voor het geven van een naam aan namespaces, klassen en methoden
- gebruik geen onderstrepingstekens zoals _;
- begin de naam met een hoofdletter;
- als een klassennaam of een methode uit meer woorden is samengesteld, laat je de spaties tussen de woorden weg en begin je vanaf het tweede woord de eerste letter met een hoofdletter te schrijven. We noemen dit Pascal notatie.
Velden
- gebruik geen onderstrepingstekens zoals _;
- begin de naam met een kleine letter;
- als een veldnaam uit meer woorden is samengesteld, laat je de spaties tussen de woorden weg en begin je vanaf het tweede woord de eerste letter met een hoofdletter te schrijven. We noemen dit Camel notatie.
Bronnen
Boeken
- Anders Hejlsberg, Scott Wiltamuth en Peter Golde, The C# Programming Language. Addison-Wesley, 2006.
- Charles Petzold, Applications = Code + Markup. Microsoft Press, Redmund, 2006.
- Jeffrey Richter, CLR via C#. Microsoft Press, Redmund, 2006.
- Sander Gerz, Visual C# . De basis. Pearson Addison Wesley, 2010.
Websites
- Hele mooie icons, die je op Windowsformulieren kan gebruiken, vindt je op http://www.famfamfam.com/.