Basisbegrippen OOP icm C# Deel 1
Inleiding
Op school behandelen wij op dit moment een aantal basis beginselen van het object georiënteerd programmeren. Tijdens een college heb ik een aantal basisbegrippen op papier gezet, en leek het me handig om die met jullie te delen.
De tutorial is door een mij, beginnend OOP`er (in combinatie met C#), geschreven, en ik zal dus ook proberen om niet te moeilijke vaktermen te gebruiken.
In deze tutorial maak ik veel gebruik van een voorbeeld “autoâ€. Een auto heeft verschillende eigenschappen, en een aantal functies, en is daardoor handig om als voorbeeld te gebruiken.
In eerste instantie gebruikte ik deze tutorial alleen als naslagwerk voor mijzelf, uiteindelijk toch maar besloten om het te delen.
Wat is OOP in het kort?
OOP is een afkorting van Object Orientated Programming, oftewel: Object georiënteerd programmeren, en is de nieuwste manier van programmeren. Voorgangers van object georiënteerd programmeren zijn lineair of proceduregericht programmeren.
De bedoeling van OOP is het zo goedkoop en makkelijk onderhoudbaar mogelijk ontwikkelen van programmacode, waarbij de bestaande code zo makkelijk mogelijk te hergebruiken is.
Tegenwoordig zijn alle “moderne†programmeertalen object-georiënteerd.
1. Class(Klasse)
Allereerst begin ik met een class, oftewel klasse. Een klasse is een sjabloon waarvan objecten gemaakt kunnen worden.
Een class maak je op de volgende manier:
class Auto
{
//De inhoud van een class
}
2. Object
Een object is een “kopie†van een class.
Voorbeeld(1): Je eigen auto is een object van de class auto, maar die van een kennis is ook een object. Toch zijn ze allebei verschillend.
Een object maak je op de volgende manier:
Je maakt hier een object “audi†aan van het type “Autoâ€. En krijgt alle eigenschappen van de class Auto. Eventueel kunnen tussen de haakjes een aantal parameters staan.
3. Methode
Een methode is een functie die behoort tot een class, die kan worden aangeroepen in je script.
Een methode maak je op de volgende manier:
public void setMaxSnelheid(int maxSnelh)
{
}
Hierbij MAG “int snelh†hetzelfde zijn als een reeds bestaande variabele, maar dit maakt de code er niet meer leesbaar op, en wordt dus sterk afgeraden.
De betekenis van public en void zal ik later uitleggen.
4. Constructor
Een constructor zorgt ervoor dat een bepaald object aangemaakt wordt.
De constructor heeft dezelfde naam als de class, en er staat geen returnwaarde (int, string, etc.) bij.
Voorbeeld(2):
Hierbij is Auto () de constructor.
5. Private, public of protected?
Bij het maken van variabelen, kun je kiezen voor een aantal verschillende opties.
Je hebt de mogelijkheid om een methode private, public of protected te maken.
Private [Zie voorbeeld 3]
Een private variabele is alleen te gebruiken in de class, en kan niet rechtstreeks worden verandert.
Het wijzigen van een private is mogelijk, maar moet dit gebeuren door middel van een methode in dezelfde class
Public
Dit is het tegenovergestelde van private. De public is van buitenaf te wijzigen, zonder daarvoor een methode te gebruiken. Methodes MOETEN public zijn, anders zijn ze van buitenaf niet te gebruiken.
Protected
Een protected is toegankelijk voor alles en iedereen binnen de class en afgeleiden ervan, maar alle andere dingen worden geweigerd.
Voorbeeld(3):
Zo mag de inhoud van variabele type niet worden verandert, want het is een private variabele
private string maxSnelheid;
Zo mag het wel. De methode is public, en staat in dezelfde class.
public void setMaxSnelheid(int maxSnelh)
{
maxSnelheid = maxSnelh;
}
Om nu de variabele maxSnelheid te veranderen, zou je in je programmacode moeten typen: audi.setMaxSnelheid(150);
“Audi†is het object, welke de methode “setMaxSnelheid†aanroept met de parameter “150â€
De variabele maxSnelheid zal nu worden gevuld met het getal (int) 150.
Wat je misschien al opgevallen is, is dat er bij de methode setMaxSnelheid gebruik gemaakt is van “voidâ€. Dit ga ik nu uitleggen.
6. Void, of toch int, string etc. ?
Bij het maken van methodes maak je gebruik van verschillende “datatypesâ€. Zo kennen wij de standaard datatypes als string, int, bool etc. Maar ook kennen wij “voidâ€.
Void betekend leeg, en is een functie die niets teruggeeft. Een return statement is in een void dus alleen mogelijk ZONDER parameter.
Wil je wel iets returnen MET een parameter, dan moet je gebruik maken van een andere datatype, zoals int. Een public int geeft een integer terug met een return.
Voorbeeld(4):
Code:
public void geefSnelheid()
{
return snelheid;
}
Zal niet werken. Hier maak je gebruik van een void, én van een return statement. In dit geval zou je moeten gebruiken:
public int geefSnelheid()
{
return snelheid;
}
Slot
Ik hoop dat het principe en de begrippen van OOP icm C# wat duidelijker zijn geworden. Mochten er opmerkingen, vragen, toevoegingen, verbeteringen of wat dan ook zijn, ik hoor ze graag!
Eventueel een deel 2 is op komst (Met bijvoorbeeld de uitleg over "overerving" etc.)