Deo zbornika Učimo Javu
Geter i seter metode u Javi
Geter i seter metode se koriste kako ne bismo direktno (neovlašteno) pristupali atributima nekog objekta.
Setter metode
Setter metode, poznate i kao mutator metode, postavljaju vrijednosti varijabli (obično privatnih) unutar klase. Ove metode u pravilu primaju argumente, a vraćaju void
. Setter metode uobičajeno koriste this
za referenciranje atributa i dodjeljivanje vrijednosti iz istoimenog argumenta. Na primjer:
class Kola {
String tablica = "";
double brzina = 0.0;
double maxBrzina = 120.0;
// setter (mutator) metode
void setTablica(String tablica) {
this.tablica = tablica;
}
void setMaxBrzina(double maxBrzina) {
if (maxBrzina > 0) this.maxBrzina = maxBrzina;
else this.maxBrzina = 0.0;
}
void ubrzaj(double deltaV) {
this.brzina = this.brzina + deltaV;
if (this.brzina > this.maxBrzina) {
this.brzina = this.maxBrzina;
}
}
}
/* Primjer upotrebe setera */
class KolaProba {
public static void main(String args[]) {
Kola k = new Kola();
k.setTablica("DYD 666");
k.setMaxBrzina(123.45);
k.ubrzaj(10.0);
System.out.println(k.tablica + " se krece brzinom od " + k.brzina + " kilometara na sat.");
}
}
Getter metode
Metode koje samo vraćaju vrijednost nekog atributa nazivaju se getter ili accessor metode.
Često je korisno da metoda vraća vrijednost. To se radi pomoću naredbe return
na završetku metode, te naznakom povratnog tipa na početku. Povratni tip mora odgovarati deklariranom tipu u potpisu.
Na primjer, metoda getTablica()
vraća vrednost atributa tablica
onome tko je metodu pozvao. Potpis String
nam kaže da metoda vraća strunu (tekst) i ne traži nikakve argumente:
class Kola {
String tablica = "";
double brzina = 0.0;
double maxBrzina = 120.0;
void setTablica(String tablica) {
this.tablica = tablica;
}
void setMaxBrzina(double maxBrzina) {
if (maxBrzina > 0) this.maxBrzina = maxBrzina;
else this.maxBrzina = 0.0;
}
// getter (pristupne) metode
String getTablica() {
return this.tablica;
}
double getMaxBrzina() {
return this.maxBrzina;
}
double getBrzina() {
return this.brzina;
}
void ubrzaj(double deltaV) {
this.brzina = this.brzina + deltaV;
if (this.brzina > this.maxBrzina) {
this.brzina = this.maxBrzina;
}
}
}
/* Primjer upotrebe getera */
class KolaProba {
public static void main(String args[]) {
Kola k = new Kola();
k.setTablica("DYD 666");
k.setMaxBrzina(123.45);
for (int i = 0; i < 15; i++) {
k.ubrzaj(10.0);
System.out.println(k.getTablica() + " se krece brzinom od " + k.getBrzina() + " kilometara na sat.");
}
}
}
Primijetite da više nema direktnog pristupa atributima!
Izvor: Elliotte Rusty Harold, Java Lecture Notes, preveo Draško Budin, priredio Damjan Pavlica.