Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Getter og Setter | Avancerede Klasser
Java Udvidet
course content

Kursusindhold

Java Udvidet

Java Udvidet

1. Dyb Java-Struktur
2. Metoder
3. String Avanceret
4. Klasser
5. Avancerede Klasser

book
Getter og Setter

Den bedste måde at omgå private adgangsmodifikator

Alle Java-programmører anvender konstruktioner kaldet gettere og settere.

Gettere og settere er metoder, der følger et specifikt mønster. De bruges til at omgå private adgangsmodifikatoren og effektivt manipulere felter fra en anden klasse.

Hvad gør gettere og settere?

Kort sagt tillader setteren os at tildele en værdi til et specifikt felt, der er beskyttet af den private adgangsmodifikator, mens getter-metoden gør det muligt at hente værdien fra et felt, der er beskyttet af den private adgangsmodifikator.

Syntaksen for en getter og en setter:

Main.java

Main.java

copy
123456789
// getter public fieldType getFieldName() { return field; } // setter public void setFieldName(fieldType field) { this.field = field; }

Som det fremgår af koden ovenfor, anvender vi navngivningskonventionen for metoderne getFieldName() og setFieldName(). Derfor, hvis vi har et felt private String name og vi opretter en getter og en setter med navnene getName() og setName(), henholdsvis. Det er også værd at bemærke, at getteren returnerer en værdi af samme type som name-feltet, mens setteren modtager en parameter af samme type som name-feltet.

Dette gør det muligt for os at tilgå felter, der er beskyttet af private adgangsmodifikatoren. Lad os se på et eksempel på adgang til et privat felt fra Person-klassen i main-klassen:

Main.java

Main.java

copy
123456789101112131415161718192021
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; } }

Som du kan se, bruger vi setter til at angive en værdi for feltet name, og derefter bruger vi getter til at vise værdien af feltet name på skærmen. Vær opmærksom på syntaksen for getter og setter, samt at feltet name i klassen Person er beskyttet af adgangsmodifikatoren private.

Konstruktør vs Getter/Setter

Hvad er bedst at bruge, initialisering gennem en konstruktør + overskrivning af metoden toString(), eller brug af gettere og settere?

Det er klart bedst at bruge gettere og settere til at tilgå felter, der er beskyttet af adgangsmodifikatoren private. Dette giver større fleksibilitet i koden og forbedrer læsbarheden. Når du ser brugen af metoden getName() i koden, forstår du straks, at denne metode henter feltet med navnet name. Det samme gælder, når du ser brugen af metoden setName(), forstår du straks, at du tildeler en specifik værdi til feltet for objektet af den klasse, hvor den bruges. Hvis andre læser din kode, vil de sætte pris på at se gettere og settere.

Det er også værd at bemærke, at hvert felt kræver sin egen getter og setter. Hvis en klasse har to felter beskyttet af adgangsmodifikatoren private, skal klassen have én getter for hvert felt, altså to gettere og to settere. Lad os se på et eksempel, hvor vi tilføjer et age-felt til klassen Person:

Main.java

Main.java

copy
12345678910111213141516171819202122232425262728293031
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; } }

Som du kan se, har vi oprettet én getter og én setter for hvert felt i Person-klassen. I main-metoden initialiserede vi felterne ved hjælp af setteren og viste deres værdier på skærmen ved hjælp af getteren. Det er meget praktisk at bruge disse metoder, og du vil ofte anvende dem fremover.

1. Hvad er formålet med at bruge getters og setters?

2. Hvad er syntaksen for en getter-metode i Java?

3. Hvad er syntaksen for en setter-metode i Java?

question mark

Hvad er formålet med at bruge getters og setters?

Select the correct answer

question mark

Hvad er syntaksen for en getter-metode i Java?

Select the correct answer

question mark

Hvad er syntaksen for en setter-metode i Java?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 5. Kapitel 5

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

course content

Kursusindhold

Java Udvidet

Java Udvidet

1. Dyb Java-Struktur
2. Metoder
3. String Avanceret
4. Klasser
5. Avancerede Klasser

book
Getter og Setter

Den bedste måde at omgå private adgangsmodifikator

Alle Java-programmører anvender konstruktioner kaldet gettere og settere.

Gettere og settere er metoder, der følger et specifikt mønster. De bruges til at omgå private adgangsmodifikatoren og effektivt manipulere felter fra en anden klasse.

Hvad gør gettere og settere?

Kort sagt tillader setteren os at tildele en værdi til et specifikt felt, der er beskyttet af den private adgangsmodifikator, mens getter-metoden gør det muligt at hente værdien fra et felt, der er beskyttet af den private adgangsmodifikator.

Syntaksen for en getter og en setter:

Main.java

Main.java

copy
123456789
// getter public fieldType getFieldName() { return field; } // setter public void setFieldName(fieldType field) { this.field = field; }

Som det fremgår af koden ovenfor, anvender vi navngivningskonventionen for metoderne getFieldName() og setFieldName(). Derfor, hvis vi har et felt private String name og vi opretter en getter og en setter med navnene getName() og setName(), henholdsvis. Det er også værd at bemærke, at getteren returnerer en værdi af samme type som name-feltet, mens setteren modtager en parameter af samme type som name-feltet.

Dette gør det muligt for os at tilgå felter, der er beskyttet af private adgangsmodifikatoren. Lad os se på et eksempel på adgang til et privat felt fra Person-klassen i main-klassen:

Main.java

Main.java

copy
123456789101112131415161718192021
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; } }

Som du kan se, bruger vi setter til at angive en værdi for feltet name, og derefter bruger vi getter til at vise værdien af feltet name på skærmen. Vær opmærksom på syntaksen for getter og setter, samt at feltet name i klassen Person er beskyttet af adgangsmodifikatoren private.

Konstruktør vs Getter/Setter

Hvad er bedst at bruge, initialisering gennem en konstruktør + overskrivning af metoden toString(), eller brug af gettere og settere?

Det er klart bedst at bruge gettere og settere til at tilgå felter, der er beskyttet af adgangsmodifikatoren private. Dette giver større fleksibilitet i koden og forbedrer læsbarheden. Når du ser brugen af metoden getName() i koden, forstår du straks, at denne metode henter feltet med navnet name. Det samme gælder, når du ser brugen af metoden setName(), forstår du straks, at du tildeler en specifik værdi til feltet for objektet af den klasse, hvor den bruges. Hvis andre læser din kode, vil de sætte pris på at se gettere og settere.

Det er også værd at bemærke, at hvert felt kræver sin egen getter og setter. Hvis en klasse har to felter beskyttet af adgangsmodifikatoren private, skal klassen have én getter for hvert felt, altså to gettere og to settere. Lad os se på et eksempel, hvor vi tilføjer et age-felt til klassen Person:

Main.java

Main.java

copy
12345678910111213141516171819202122232425262728293031
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; } }

Som du kan se, har vi oprettet én getter og én setter for hvert felt i Person-klassen. I main-metoden initialiserede vi felterne ved hjælp af setteren og viste deres værdier på skærmen ved hjælp af getteren. Det er meget praktisk at bruge disse metoder, og du vil ofte anvende dem fremover.

1. Hvad er formålet med at bruge getters og setters?

2. Hvad er syntaksen for en getter-metode i Java?

3. Hvad er syntaksen for en setter-metode i Java?

question mark

Hvad er formålet med at bruge getters og setters?

Select the correct answer

question mark

Hvad er syntaksen for en getter-metode i Java?

Select the correct answer

question mark

Hvad er syntaksen for en setter-metode i Java?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 5. Kapitel 5
some-alt