Object Georienteerd Programmeren
Lesgeld
Intro Object Oriëntatie
De cursus gaat van start met een overzicht over hoe Object Oriëntatie is voortgekomen uit andere software development paradigma's zoals structured en procedural programmeren.
Lowering of Semantic Gap
Een belangrijk voordeel van Object Oriëntatie is dat domein concepten direct in de software zijn terug te vinden. Uitgelegd wordt hoe door dit verlagen van de Semantic Gap de code begrijpelijker en beter onderhoudbaar wordt.
Classes en Ob
Intro Object Oriëntatie
De cursus gaat van start met een overzicht over hoe Object Oriëntatie is voortgekomen uit andere software development paradigma's zoals structured en procedural programmeren.
Lowering of Semantic Gap
Een belangrijk voordeel van Object Oriëntatie is dat domein concepten direct in de software zijn terug te vinden. Uitgelegd wordt hoe door dit verlagen van de Semantic Gap de code begrijpelijker en beter onderhoudbaar wordt.
Classes en Objects
Vervolgens wordt ingegaan op concepten als Classes en Objects, Fields en Methods, Getters en Setters, Constructors en Destructors. De concepten zijn hetzelfde voor alle Object Georiënteerde talen, maar in de cursus wordt ook aandacht besteed aan verschillen op detail niveau.
Encapsulation
Eveneens komt het begrip Encapsulation aan de orde waarmee de interne data van classes wordt afgeschermd van de buitenwereld en waardoor wijzigingen in de implementatie zonder aanpassingen in de aanroepende code kunnen worden doorgevoerd.
Inheritance en Polymorfisme
De begrippen Inheritance en Polymorfisme worden eveneens behandeld. Door middel van Inheritance kunnen afgeleide classes de code uit de base class hergebruiken en daarmee duplicate code vermijden. Polymorfisme maakt het mogelijk base class methods een andere betekenis te geven in een afgeleide class. De runtime omgeving kan deze methods door dynamic binding dan automatisch vinden.
Design Patterns
Tenslotte wordt aandacht besteed aan Design Patterns in Object Georiënteerde software, waarmee standaard template oplossingen worden geleverd voor veel voorkomende problemen.
Doelgroep Cursus Object Georiënteerd Programmeren
De cursus Object Georiënteerd Programmeren is bedoeld een ieder die object georiënteerd wil leren programmeren met classes en objects.
Voorkennis Cursus Object Georiënteerd Programmeren
Om aan deze cursus te kunnen deelnemen is ervaring met programmeren in een procedurele programmeer taal vereist.
Uitvoering Training Object Georiënteerd Programmeren
De theorie wordt behandeld op basis van presentatie slides. De theorie wordt verduidelijkt door middel van demo's. Na bespreking van een module is er de mogelijkheid te oefenen. De cursustijden zijn van 9.30 tot 16.30.
Certificering Cursus Object Georiënteerd Programmeren
De deelnemers krijgen na het goed doorlopen van de cursus een officieel certificaat Object Georiënteerd Programmeren.
Modules
Module 1 : Intro Object Orientation
- OO Origins
- Abstraction Levels
- Domain Analysis
- Unstructured Programming
- Procedural Programming
- Object Oriented Programming
- OO Benefits
- Reusability
- Lowering Semantic Gap
- Higher Abstraction
- Objects as Domain Concepts
- Objects as Program Concepts
Module 2 : Classes and Objects
- Classes are Types
- Objects are Instances
- Fields
- Methods
- Creating Objects
- Object Initialization
- Constructors
- Using Objects
- Getters and Setters
- Destructors
- Current Object
- this or self
Module 3 : Encapsulation
- Encapsulation Benefits
- Information Hiding
- Access Specifiers
- private and public
- Implementation Changes
- Validity Checks
- Ensuring Data Validity
- Class Variables
- static Data
- Class Methods
- static Methods
- static Initializers
Module 4 : Inheritance
- Deriving Classes
- Class Hierarchies
- Hiding Instance Variables
- Overriding Methods
- Overloading Methods
- Constructor Chaining
- Accessing Base Class
- protected Members
- super or base
- Multiple Inheritance
Module 5 : Polymorphism
- Call Overridden Functions
- Virtual Functions
- Role of v-table
- Polymorphism Benefits
- Abstract Classes
- Incomplete Base Classes
- Concrete Classes
- Interfaces
- Interface Implementation
- Dynamic Binding
Module 6 : Design Patterns
- What are Design Patterns?
- Common Problems
- Pattern Solutions
- Singleton Pattern
- private Constructors
- Creation Functions
- Adapter Pattern
- Adapting an Interface
- Observer Pattern
- Publish and Subscribe