Cursusinhoud
Java OOP
Java OOP
OOP-Principes: Encapsulatie
Encapsulatie
Een ander fundamenteel principe van Objectgeoriënteerd Programmeren (OOP). Waarschijnlijk het meest cruciale principe, aangezien het gehele OOP-paradigma hierop is gebaseerd. Je bent dit principe al tegengekomen in dit hoofdstuk bij het aanduiden van velden en methoden als private
of public
. Maar nu zullen we dit principe in meer detail bespreken.
Opmerking
Verwissel het woord 'interface' (een sjabloon voor creatie, een patroon) niet met de Interface die we in de volgende sectie zullen bestuderen!
Toegangsmodificatoren
Toegangsmodificatoren vormen een integraal onderdeel van encapsulatie, dus hoewel we ze eerder hebben besproken, moeten we dit materiaal opnieuw bekijken. Hieronder volgt de definitie van toegangsmodificatoren, samen met een tabel en een korte beschrijving:
public
: Leden met depublic
access modifier zijn overal in de code toegankelijk. Ze hebben de ruimste reikwijdte. Bijvoorbeeld, eenpublic
methode kan vanuit elke klasse worden aangeroepen;private
: Leden met deprivate
access modifier zijn alleen binnen de klasse waarin ze zijn gedeclareerd toegankelijk. Ze zijn niet zichtbaar voor externe klassen. Dit biedt sterke encapsulatie;protected
: Leden met deprotected
access modifier zijn toegankelijk binnen hetzelfde pakket en door subklassen, zelfs als deze zich in verschillende pakketten bevinden. Dit maakt gecontroleerde informatie-uitwisseling mogelijk;default (package-private): Als er geen access modifier is opgegeven, is het lid alleen binnen hetzelfde pakket toegankelijk. Dit is het standaard toegangslevel.
Laten we bekijken hoe access modifiers in de praktijk werken. Er zijn twee klassen: één aangemaakt in hetzelfde pakket als de main
klasse, en de andere aangemaakt in een ander pakket. Laten we zien hoe access modifiers dit beïnvloeden:
Op de screenshots kun je zien van waaruit variabelen met de overeenkomstige namen toegankelijk zijn.
Ik herinner je er ook aan dat als je access modifiers wilt omzeilen, je er hier meer over kunt lezen: link.
Opmerking
Het is ook vermeldenswaard dat methoden ook access modifiers kunnen hebben. Ze werken op dezelfde manier als bij velden. Bijvoorbeeld, een methode met een private access modifier is alleen toegankelijk in de klasse waarin deze is aangemaakt.
Samenvatting
Encapsulatie is zeer nuttig wanneer gegevens in compartimenten moeten worden georganiseerd, waardoor de code sterk gestructureerd wordt. Bovendien kun je dankzij encapsulatie bepalen waar en hoe je velden en methoden toegankelijk zijn.
1. Wat is encapsulatie in Java?
2. Welke toegangsmodifier is het strengst?
3. Wat zijn de voordelen van encapsulatie?
4. Welke van de volgende uitspraken over encapsulatie zijn waar?
Bedankt voor je feedback!