Ugrás a tartalomhoz

setter

A Wikiszótárból, a nyitott szótárból

Főnév

setter (tsz. setters)

  1. (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:

  1. 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.
  2. Validáció: A setterek lehetőséget adnak arra, hogy adatokat validáljunk, mielőtt azok beépülnének az objektumba.
  3. 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.
  4. 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.

Kiejtés

  • IPA: /sɛ.te/

Főnév

setter hn (plural setters)

  1. szetter
  2. setter irlandais ír szetter