Software Development fundamentals Introductie object-oriented programming
inhoudsopgave Begrippen / Key terms Leerdoelen / de opdracht OOP De voordelen Het verschil met procedureel programmeren Een eenvoudige class Objecten maken Properties Constructors Zelfstandig werken
begrippen Key terms access modifier encapsulation polymorphism accessors events properties abstract classes inheritance reference type auto implemented properties interfaces sealed classes class method signature constructors namespace static delegates object value type
Kernbegrippen Class/Object Encapsulation Inheritance
Kernbegrippen Class/Object Encapsulation Inheritance We gaan later een opdracht maken die al deze onderdelen bevat. Hierbij hebben we de volgende leerdoelen: Begrijpen wat een object is, en hoe we van een class meerdere objecten kunnen maken. Begrijpen hoe we dmv. encapsulation gegevens en logica kunnen afschermen binnen een class. Begrijpen hoe we dmv. inheritance classes kunnen uitbreiden zonder de bestaande class aan te passen. Het gaat er dus nog niet om dat je de code uit je hoofd weet, maar dat je weet wat deze begrippen betekenen!
C# OOP: Object Oriented Programming Procedural Programming Code verdeeld in classes. Door de verdeling in classes zijn ook uitgebreide applicaties goed te onderhouden. Bedacht in de jaren 1960. Sinds de jaren 1990 de belangrijkste standaard voor het programmeren van complexe software. Talen: C++, Delphi, Objective C, C#, Java, VB.NET, Object Pascal, PHP, Eiffel, Ruby, Python, Scala, Smalltalk, TypeScript, Dart enz. enz. enz. Procedural Programming Een programma is één stuk code dat achter elkaar wordt uitgevoerd. Eventueel opgesplitst in functies. Bij uitgebreide applicaties is de lange lijst van code bijna onmogelijk te onderhouden. Talen: C, Assembly, Basic, Cobol-85, Pascal
Voorbeeld class We schrijven een class om een taak in een todo-applicatie te vertegenwoordigen: class Task { public string Description; } Een object (instance) maken van deze class: Task eenTaak = new Task(); eenTaak.Description = “Dit is een taakomschrijving”; Console.WriteLine(eenTaak.Description);
classes Een class is een blauwdruk voor een object. Vergelijkbaar met de bouwtekening van een huis. Van één tekening kan je meerdere huizen bouwen. Van één class kan je meerdere objecten maken. Niet elk huis is hetzelfde. Je kunt het ene huis een rode deur geven, en het andere huis een blauwe deur. Ook bij objecten kan je de waardes van variabelen veranderen. (Huis.Deur.Kleur = Blauw) Classes bieden dus een uitgebreid mechanisme voor hergebruik van code.
https://gyazo.com/29dbd4b23283e38a77869af87f794bfd classes Een class is een blauwdruk voor een object. Vergelijkbaar met de bouwtekening van een huis.
Voorbeeld class Rapport { public double cijferWiskunde; public double cijferEngels; public double cijferNederlands; public double cijferInformatica; public double GeefGemiddelde() double gemiddelde = (cijferWiskunde + cijferEngels + cijferNederlands + cijferInformatica) / 4; return gemiddelde; }
Objecten Een object maken van de class Rapport: Rapport mijnRapport = new Rapport(); mijnRapport.cijferWiskunde = 6; mijnRapport.cijferEngels = 9; mijnRapport.cijferNederlands = 7; mijnRapport.cijferInformatica = 8; Console.WriteLine(mijnRapport.GeefGemiddelde()); Het object mijnRapport is in staat om eigen variabelen te onthouden en methodes uit te voeren. Dit zijn de variabelen en methodes die je hebt geschreven in de class Rapport. Door public voor variabelen en methodes te zetten, kan je er van buiten de class bij. Je kunt zoveel objecten van het type Rapport aanmaken als je wilt.
Properties Een property is een uitgebreide versie van een variabele. Waarom properties nuttig zijn komt pas later aan bod. Hou nu de regel aan: Elke publieke variabele in een class moet een property zijn. In C# heb je de auto-implemented property, die vereist weinig typwerk. Typ: ‘prop’, tab+tab Variabele: public string Description; Property: public string Description { get; set; }
Constructor Een constructor method wordt uitgevoerd bij het aanmaken van een object. class Task { public string Description {get; set;} public Task(string desc) { this.Description = desc; } Een object (instance) maken van deze class: Task eenTaak = new Task(“Brood kopen”);
Constructor Er is een bijzondere methode die je kunt maken, de ‘constructor’. Dit is een methode met dezelfde naam als de class. Zodra je een nieuw object aanmaakt, wordt deze constructor uitgevoerd.
syntax De constructor wordt uitgevoerd als je een nieuw object maakt. Rectangle mijnRect = new Rectangle(20.0, 10.0); De waardes 20.0 en 10.0 worden dus bewaard in de private variabelen length en width.
opdrachten Maak de opdracht ‘OOP Leven’
Vragen Zijn er vragen?