setter
Főnév
setter (tsz. setters)
- (informatika) Az informatikában a mutátor módszer egy változó változásainak ellenőrzésére használt módszer. Széles körben ismertek setter metódusokként is. Gyakran a setterhez egy getter is társul, amely visszaadja a privát tagváltozó értékét. Ezeket együttesen accessoroknak is nevezik.
A setter egy olyan metódus a C++ nyelvben, amely lehetővé teszi, hogy egy osztály privát adattagjait módosítsuk. A setterek célja, hogy az adattagokhoz való hozzáférést kontrollált módon végezzük, biztosítva ezzel az encapsuláció elvét. Az encapsuláció biztosítja, hogy az osztály adatai ne legyenek közvetlenül módosíthatók kívülről, hanem csak a megfelelő setterek (és opcionálisan getterek) segítségével férhetünk hozzájuk.
1. Setter alapok
A setter metódusok gyakran a set
előtagot használják, például setAge()
vagy setName()
. A setterek általában nem adnak vissza értéket, hanem egy vagy több paramétert fogadnak, amelyeket az adattagoknak rendelnek hozzá.
Szintaxis:
void setTípus(T paraméter);
Típus
: Az adattag típusa, amelyet módosítani szeretnénk.paraméter
: A setter metódusba átadott új érték.
2. Példa: Getterek és setterek használata
A következő példában egy egyszerű osztályt hozunk létre, amelynek age
(életkor) és name
(név) adattagjai vannak, és ezekhez gettereket és settereket biztosítunk.
#include <iostream>
using namespace std;
class Szemely {
private:
string nev;
int eletkor;
public:
// Konstruktor
Szemely(string n, int e) : nev(n), eletkor(e) {}
// Getterek
string getNev() const {
return nev;
}
int getEletkor() const {
return eletkor;
}
// Setterek
void setNev(string n) {
nev = n;
}
void setEletkor(int e) {
if (e > 0) { // Ellenőrizzük, hogy az életkor érvényes legyen
eletkor = e;
} else {
cout << "Életkor érvénytelen!" << endl;
}
}
};
int main() {
// Objektum létrehozása
Szemely szemely1("Kiss Péter", 30);
// Getterek használata
cout << "Név: " << szemely1.getNev() << endl;
cout << "Életkor: " << szemely1.getEletkor() << endl;
// Setterek használata
szemely1.setNev("Szabó János");
szemely1.setEletkor(35);
// Módosított adatok kiírása
cout << "Módosított Név: " << szemely1.getNev() << endl;
cout << "Módosított Életkor: " << szemely1.getEletkor() << endl;
return 0;
}
Kimenet:
Név: Kiss Péter Életkor: 30 Módosított Név: Szabó János Módosított Életkor: 35
Magyarázat: - Az Szemely
osztály nev
és eletkor
adattagjait privát módon deklaráltuk. - A getterek (getNev()
és getEletkor()
) segítségével olvashatjuk az adattagok értékét. - A setterek (setNev()
és setEletkor()
) segítségével módosíthatjuk az adattagok értékét. Az setEletkor()
setterben egy validációt is végzünk, hogy biztosítsuk, hogy a eletkor
pozitív érték legyen.
3. Setterek és validáció
A setterek gyakran használtak arra is, hogy érvényes adatokat biztosítsanak az osztály adattagjai számára. Például egy életkor esetén biztosítani kell, hogy a pozitív számot rendeljük hozzá, és elutasítsuk a nem érvényes adatokat.
Példa validációval:
#include <iostream>
using namespace std;
class Diak {
private:
string nev;
int pontszam;
public:
// Konstruktor
Diak(string n, int p) : nev(n), pontszam(p) {}
// Getterek
string getNev() const {
return nev;
}
int getPontszam() const {
return pontszam;
}
// Setterek
void setNev(string n) {
nev = n;
}
void setPontszam(int p) {
if (p >= 0 && p <= 100) { // Ellenőrizzük, hogy a pontszám 0 és 100 között van-e
pontszam = p;
} else {
cout << "A pontszám érvénytelen! (0 és 100 között kell lennie)" << endl;
}
}
};
int main() {
// Diák objektum létrehozása
Diak diak1("Kovács Levente", 85);
// Getterek használata
cout << "Diák neve: " << diak1.getNev() << endl;
cout << "Pontszáma: " << diak1.getPontszam() << endl;
// Setterek használata
diak1.setPontszam(110); // Érvénytelen pontszám
diak1.setPontszam(95); // Érvényes pontszám
// Módosított pontszám kiírása
cout << "Módosított pontszám: " << diak1.getPontszam() << endl;
return 0;
}
Kimenet:
Diák neve: Kovács Levente Pontszáma: 85 A pontszám érvénytelen! (0 és 100 között kell lennie) Módosított pontszám: 95
Magyarázat: - A setPontszam()
setterben egy validációt alkalmazunk annak érdekében, hogy a pontszám ne legyen negatív, és ne haladja meg a 100-at. Ha a validáció nem teljesül, a pontszám nem változik meg, és egy hibaüzenet jelenik meg.
4. Setterek és getterek előnyei
A setterek és getterek használatának előnyei:
- Encapsuláció: Az adattagok elrejtése a külső kód elől, így biztosítva a program adatainak biztonságát és érvényességét.
- Validáció: A setterek lehetőséget adnak arra, hogy adatokat validáljunk, mielőtt azok beépülnének az objektumba.
- Karbantarthatóság: Ha később változtatni kell az adattagok kezelésén (például új szabályok bevezetése a setterben), akkor elég csak a setter metódust módosítani, nem pedig az egész kódot.
- Rugalmasság: A getterek és setterek segítenek, hogy az osztály adatainak elérése és módosítása standardizált és következetes módon történjen.
5. Összegzés
A setterek és getterek kulcsfontosságú eszközök az objektum-orientált programozásban (OOP), mivel lehetővé teszik az osztályok adattagjainak kontrollált elérését és módosítását. A getterek az adatokat biztosítják, míg a setterek segítenek az adatok validálásában, biztosítva ezzel a program helyes működését és a változók biztonságos kezelését.
- setter - Szótár.net (en-hu)
- setter - Sztaki (en-hu)
- setter - Merriam–Webster
- setter - Cambridge
- setter - WordNet
- setter - Яндекс (en-ru)
- setter - Google (en-hu)
- setter - Wikidata
- setter - Wikipédia (angol)
Kiejtés
- IPA: /sɛ.te/
Főnév
setter hn (plural setters)