Encapsulatie: Every man is an island upon himself.

Slides:



Advertisements
Verwante presentaties
KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
Advertisements

Zelf objecten maken in VBA Ynte Jan Kuindersma, BIRD Automation Nationale Officedag 2009 EDE, 14 Oktober 2009.
OOS Object geOrienteerd Software-ontwerp - 3
Instructie Programmeren Task 8 5JJ70. PAGE 2 Task 8: Double Linked List Het doel van deze opdracht is: Het opbouwen van een tweetal klassen, die samen.
Van domeinklasse tot implementatie
Het ontwerpen van een klasse
Objecten Hoofdstuk 6 Hoofdstuk 6 Hoofdstuk 6 1.
Computervaardigheden en Programmatie Universiteit AntwerpenObjecten 4.1 Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen.
‘Inleiding programmeren in Java’ Derde college Maandag 22 januari 2001 drs. F. de Vries.
1 Voorwaarden hergebruik Modulair ontwerp Low coupling High cohesion.
Inleidend probleem Data structuur (hiërarchie van classes)
Klassen schrijven Hoofdstuk 10. Visual Basic.NET voor studenten2 In dit hoofdstuk … Hoe schrijf je een klasse Constructormethodes Public methoden Variabelen.
Opgave 1a: afronden int n=5; double a, b, c, d; a = n * 1.5; b = n * 3 / 2; c = n / 2 * 3; d = 3 / 2 * n; a b c d
Static Keyword static voor functieleden functie niet voor een object aangeroepen class K {... static int minimum( int i, int j); } aanroep: K::minimum(
JAVA -- H51 CONSTRUCTOR –- COPY-CONSTRUCTOR 1Constructor: Dezelfde naam als de klasse Wordt uitgevoerd d.m.v. new Initialisatie van de (private) attributen.
Oefeningen Hoofdstuk 3.
Algoritmiek Object-georiënteerd Programmeren
1 Datastructuren Introductie tot de programmeeropgaven in C++ Jan van Rijn
JAVA1 H 9. OBJECTGEORIENTEERD PROGRAMMEREN: OVERERVING 1. INLEIDING Wat is overerving (inheritance)? Overerving is een mechanisme waarbij software opnieuw.
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 3.
P. 1 Vakgroep Informatietechnologie Structuur Deel II C++ Classes Namespaces Type casting Reference types Constructors en Destructors Memory Management.
LauwersCollege Buitenpost Java Applet programma dat op een website zichtbaar is Java Application programma dat zelfstandig werkt Javascript Scripttaal.
Opgave 1a: void nvoid staat in de header van een methode die geen resultaatwaarde heeft nde aanroep van een void-methode is dan een opdracht i.p.v. een.
Opgave 2a nMet een InputStream lees je bytes uit een binare file nMet een Reader lees je characters uit een tekstfile.
Object georiënteerd programmeren in Alice
OO Analyse in de praktijk OO Analyse in de praktijk V Enkele Design Patterns.
OO Analyse in de praktijk OO Analyse in de praktijk IV OO basisregels.
Herhaling Java-programmatie en geautomatiseerd testen (vervolg)
Deel XX Hosting 1 Internetapplicaties Deel XX Hosting.
Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 15: Herhaling Java-programmatie en geautomatiseerd testen.
Les 12: DTD.
Visual Basic 2005/2008 OOP in praktijk André Obelink - MCSD, MVP Web: Web: -
Variabelen Part deux.. Variabelen week 3 0. Herhaling 1. De NullPointerException (p101) 2. Primitieven 3. Scope en levensduur van variabelen 4. Meerdere.
Overerving: It’s a kind of magic…. Principes van OO: 1) Overerving 2) Encapsulatie 3) Polymorphisme = (deel van het) OO. paradigma.
Interfaces Hoofdstuk 23 Hoofdstuk 23.
Overloading My name is overloading, cause we are many.
Variabelen Part deux.. Variabelen week 3 0. Herhaling 1. De NullPointerException (p101) 2. Primitieven 3. Scope en levensduur van variabelen 4. Meerdere.
Polymorfisme: inleiding Hello me, meet the real me…
Constructoren Genesis 1:1 Aarde a1 = new Aarde(“Adam”, “Eva”);
Polymorphisme en Interfaces: inleiding
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 7 Polymorfie en overerving © 2014, Gertjan Laan, versie 2.
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 8: Gebruikersinterface © 2014, Gertjan Laan, versie 2.
Java & het Web Programma: Contexts Listeners Scope/Attributes Thread safety.
Soorten programma’s nConsole- applicatie. Soorten programma’s nConsole- applicatie nWindows- applicatie.
Java & het Web Programma: Sessies JSP. Stateless vs. Stateful(1) HTTP is stateless WAT IS STATELESS?
Herhaling: He who does not learn from history, is doomed to repeat it.
Eigen klassen maken A new way of thinking.. Wat? Zie voorbeeld. Zie voorbeeld.
OOP en.NET. Objecten Is geen ‘nieuw’ mysterieus woord Overal om ons heen zien we objecten: – TV – Computer – Auto – Wasmachine – ….
Loops en errors Array's Random try catch for loop while loop do while loop.
Java voor beginners Doel: Een spel maken in LWJGL Door: Jim van Leeuwen.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
Objectgeoriënteerd Programmeren (2)
Gameprogrammeren: Objecten en geheugen
Gameprogrammeren: Lists en interfaces
Gameprogrammeren: Overerving
Gameprogrammeren: Methoden
Gameprogrammeren: Overerving in Painter
Gameprogrammeren: Properties
Tinpro015b-les6 Templates.
Gameprogrammeren: Abstracte klassen
Unified Modeling Language
Gameprogrammeren: Klassen en objecten
Arjan Egges & Paul Bergervoet
Implementatie Zoekboom
ASP.NET MVC Web Development
Software Development fundamentals
Software Development fundamentals
Software Development fundamentals
Software Development fundamentals
Transcript van de presentatie:

Encapsulatie: Every man is an island upon himself.

Encapsulatie Principe: in elke klasse wordt de rechtstreekse toegang tot attributen wordt zo beperkt mogelijk gehouden. Principe: in elke klasse wordt de rechtstreekse toegang tot attributen wordt zo beperkt mogelijk gehouden.

Encapsulatie Toegang tot de attributen wordt zo veel mogelijk gedaan via get- en set- methoden. Toegang tot de attributen wordt zo veel mogelijk gedaan via get- en set- methoden.

Encapsulatie Toegang tot de datamembers beperken per object : Toegang tot de datamembers beperken per object :

Encapsulatie Toegang tot de datamembers beperken voor objecten : Toegang tot de datamembers beperken voor objecten : Strengst: enkel objecten van de klasse zelf hebben toegang tot de datamembers.

Encapsulatie Toegang tot de datamembers beperken voor objecten : Toegang tot de datamembers beperken voor objecten : Strengst: enkel objecten van de klasse zelf hebben toegang tot de datamembers. Minst streng: objecten van om het even welke klasse hebben toegang tot de datamembers.

Toegangsaanwijzers Hoe: via toegangsaanwijzers (access specifiers) Hoe: via toegangsaanwijzers (access specifiers)

Toegangsaanwijzers Er zijn 4 mogelijke aanwijzers: private, protected, friendly of public. Er zijn 4 mogelijke aanwijzers: private, protected, friendly of public.

Toegangsaanwijzers Hoe: via toegangsaanwijzers (access specifiers) Hoe: via toegangsaanwijzers (access specifiers) Er zijn 4 mogelijke aanwijzers: private, protected, friendly of public. Er zijn 4 mogelijke aanwijzers: private, protected, friendly of public. Access-specifiers werken ook voor methoden. Access-specifiers werken ook voor methoden.

Toegangsaanwijzers 1) private: private int aantal; private int berekenAantal() { } Elementen die private staan, zijn enkel toegankelijk voor objecten van de klasse zelf.

Toegangsaanwijzers 2) friendly of package-toegang: int aantal; int berekenAantal() { } Elementen die friendly staan, zijn toegankelijk voor objecten van klassen die in dezelfde package zitten als de klasse zelf.

Toegangsaanwijzers 3) protected: protected int aantal; protected int berekenAantal() { } Elementen die protected staan, zijn toegankelijk voor klassen in dezelfde package, en voor klassen die deze klasse overerven.

Toegangsaanwijzers 4) public: public int aantal; public int berekenAantal() { } Elementen die public staan, zijn toegankelijk voor alle objecten van alle klassen.

Specifiek: Toegankelijk voor ons betekent: Toegankelijk voor ons betekent:

Specifiek: - Kan de klasse zelf aan het element?

Specifiek: Toegankelijk voor ons betekent: Toegankelijk voor ons betekent: - Kan de klasse zelf aan het element? - Kan een overervende klasse eraan?

Specifiek: Toegankelijk voor ons betekent: Toegankelijk voor ons betekent: - Kan de klasse zelf aan het element? - Kan een overervende klasse eraan? - Kan de applet eraan?

Specifiek: Toegankelijk voor ons betekent: Toegankelijk voor ons betekent: - Kan de klasse zelf aan het element? - Kan een overervende klasse eraan? - Kan de applet eraan? Eraan kunnen = mogen schrijven: (demo) aantal += 1; of knop1.aantal += 1;

Voorbeeld public class Fraggle { private int aantalVingers; boolean isZichtbaar; protected double aantalTenen; public String naam; }

Hoe te gebruiken: Zet alle attributen private, of protected als je weet dat ze gaan overgeërfd worden, en schrijf publieke get- en set-methoden als je attributen toegankelijk wil maken. Zet alle attributen private, of protected als je weet dat ze gaan overgeërfd worden, en schrijf publieke get- en set-methoden als je attributen toegankelijk wil maken.

Hoe te gebruiken: Zet alle attributen private, of protected als je weet dat ze gaan overgeërfd worden, en schrijf publieke get- en set-methoden als je attributen toegankelijk wil maken. Zet alle attributen private, of protected als je weet dat ze gaan overgeërfd worden, en schrijf publieke get- en set-methoden als je attributen toegankelijk wil maken. Voorzie indien nodig een check in de set-methoden, die de opgegeven waarde eerst controleert en dan pas invult. Voorzie indien nodig een check in de set-methoden, die de opgegeven waarde eerst controleert en dan pas invult.

KISS Keep It Simple, Stupid. Keep It Simple, Stupid.

KISS Als een methode niet public hoeft te zijn, zet hem dan private => simpeler voor de programmeur die jouw klasse gaat gebruiken. Als een methode niet public hoeft te zijn, zet hem dan private => simpeler voor de programmeur die jouw klasse gaat gebruiken.

KISS Keep It Simple, Stupid. Keep It Simple, Stupid. Als een methode niet public hoeft te zijn, zet hem dan private => simpeler voor de programmeur die jouw klasse gaat gebruiken. Als een methode niet public hoeft te zijn, zet hem dan private => simpeler voor de programmeur die jouw klasse gaat gebruiken. Praktisch: zet methoden die enkel in de klasse zelf gebruikt worden altijd private. Praktisch: zet methoden die enkel in de klasse zelf gebruikt worden altijd private.

Demo: RoterendWiel oefening omzetten naar encapsulatie. RoterendWiel oefening omzetten naar encapsulatie.

Extra: try-catch Try-catch: mechanisme om runtime errors op te vangen, en er iets praktisch mee te doen (bvb een crash vermijden). Try-catch: mechanisme om runtime errors op te vangen, en er iets praktisch mee te doen (bvb een crash vermijden). Zie demo Zie demo