Cursusinhoud
Java Uitgebreid
Java Uitgebreid
Getter en Setter
De beste manier om de private access modifier te omzeilen
Alle Java-programmeurs gebruiken constructies genaamd getters en setters.
Getters en setters zijn methoden die een specifiek patroon volgen. Ze worden gebruikt om de private
access modifier te omzeilen en velden vanuit een andere klasse effectief te manipuleren.
Wat doen getters en setters?
Eenvoudig gezegd stelt de setter ons in staat om een waarde toe te wijzen aan een specifiek veld dat beschermd wordt door de private access modifier, terwijl de getter ons in staat stelt om de waarde op te halen uit een veld dat beschermd wordt door de private access modifier.
De syntaxis voor een getter en een setter:
Main.java
// getter public fieldType getFieldName() { return field; } // setter public void setFieldName(fieldType field) { this.field = field; }
Zoals je in de bovenstaande code kunt zien, gebruiken we de naamgevingsconventie voor de methoden getFieldName()
en setFieldName()
. Dus als we een veld private String name
hebben en we maken een getter en een setter met de namen getName()
en setName()
respectievelijk. Het is ook belangrijk om op te merken dat de getter een waarde retourneert van hetzelfde type als het name
-veld, terwijl de setter een parameter accepteert van hetzelfde type als het name
-veld.
Dit stelt ons in staat om toegang te krijgen tot velden die beschermd zijn door de private
access modifier.
Laten we een voorbeeld bekijken van het benaderen van een private veld uit de Person
-klasse in de main
-klasse:
Main.java
package com.example; public class Main { public static void main(String[] args) { Person bob = new Person(); bob.setName("Bob"); System.out.println(bob.getName()); } } class Person { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
Zoals je kunt zien, gebruiken we de setter om een waarde toe te wijzen aan het veld name
, en vervolgens gebruiken we de getter om de waarde van het veld name
op het scherm weer te geven. Let op de syntaxis van de getter en setter, evenals het feit dat het veld name
in de klasse Person
wordt beschermd door de private
access modifier.
Constructor versus Getter/Setter
Wat is beter om te gebruiken: initialisatie via een constructor + het overschrijven van de methode toString()
, of het gebruik van getters en setters?
Het is zeker beter om getters en setters te gebruiken om toegang te krijgen tot velden die beschermd zijn door de private
access modifier. Dit biedt meer flexibiliteit in de code en verbetert de leesbaarheid ervan. Wanneer je het gebruik van de methode getName()
in de code ziet, begrijp je direct dat deze methode het veld met de naam name
ophaalt. Hetzelfde geldt wanneer je het gebruik van de methode setName()
ziet; je begrijpt meteen dat je een specifieke waarde toewijst aan het veld voor het object van de klasse waarin het wordt gebruikt. Als anderen je code lezen, zullen ze blij zijn om getters en setters te zien.
Het is ook belangrijk op te merken dat elk veld zijn eigen getter en setter vereist. Als een klasse twee velden heeft die beschermd zijn door de private
access modifier, moet de klasse één getter voor elk veld hebben, dus twee getters en twee setters.
Laten we een voorbeeld bekijken waarin we een veld age
toevoegen aan de klasse Person
:
Main.java
package com.example; public class Main { public static void main(String[] args) { Person bob = new Person(); bob.setName("Bob"); bob.setAge(27); System.out.println("Person's name: " + bob.getName() + ", Person's age: " + bob.getAge()); } } class Person { private String name; private int age; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
Zoals je kunt zien, hebben we voor elk veld van de klasse Person
één getter en één setter aangemaakt. In de main
-methode hebben we de velden geïnitialiseerd met behulp van de setter en hun waarden op het scherm weergegeven met behulp van de getter. Het gebruik van deze methoden is zeer handig, en je zult ze in de toekomst vaak gebruiken.
1. Wat is het doel van het gebruik van getters en setters?
2. Wat is de syntaxis van een getter-methode in Java?
3. Wat is de syntaxis van een setter-methode in Java?
Bedankt voor je feedback!