Mi az objektum és az osztály? (java)




















Az objektum és az osztály az Objektum Orientált Programozás (OOP) két legfontosabb kifejezése. Az objektumok lényegében olyan elemek, amik saját adattagokkal, 'tulajdonságokkal', illetve függvényekkel (metódusokkal) rendelkeznek, amelyek az adott objektumon belül találhatóak. Az osztály pedig lényegében az öntözőminta, amely alapján ezek az objektumok létrejönnek.
Vegyünk egy egyszerű példát. Legyen mondjuk egy Autó nevű osztály. Egy autónak milyen tulajdonságai vannak? Van mondjuk rendszáma, márkája, színe, van súlya, de igazából le lehet róla bármit írni, milyen motor van benne, első, hátsó, vagy összkerekes, stb, stb. Illetve egy autóval csinálni is lehet dolgokat, pl beindítani, leállítani, és vezetni. Ezek lesznek a metódusok. Az Autó osztályunk nézzen ki mondjuk így:
public class Autó{
    public string rendszám;
    public string márka;
    public string szín;
    public int km_óra; //hány km-t futott az autó;
    public bool jár_e; //éppen jár-e a motor vagy sem
    Autó(rendszám, márka, szín)
    {
        this.rendszám = rendszám;
        this.márka = márka;
        this.szín = szín;
        this.km_óra = 0;
        this.jár_e = false;
    }
    public void beindít()
    {
        this.jár_e = true;
    }
    public void leállít()
    {
        this.jár_e = false;
    }
    public void vezet(int távolság)
    {
        if(this.jár_e)
            this.km_óra += távolság;
    }
}
Egy elég egyszerű osztály, amiben eltároljuka rendszámot, márkát, színt, a futott kilométereket, illetve hogy jár-e a motor, illetve be tudjuk indítani, le tudjuk állítani, és tudjuk megadott km-t vezetni az autót. De ez még csak egy terv, egy sablon, amiből létrehozzuk a konkrét autóinkat. Megadtunk egy konstruktort, ami egy rendszámot, márkát, és színt vár paraméterül, így létrehozhatunk egy új autót ezen tulajdonságok megadásával:
Autó a1 = new Autó('RAN-123', 'BMW', 'fekete');
Majd még egyet:
Autó a2 = new Autó('DOM-456', 'Audi', 'vörös');
És ezeket elvihetjük pár körre:
a1.beindít();
a2.beindít();
a1.vezet(25);
a1.leállít();
a2.leállít();
Nagy vonalakban ez az osztály és az objektum lényege (nem csak Java nyelvben, hanem mindegyikben, ami támogatja az OOP paradigmát), de ez még csak a jéghegy csúcsa, ezután következik például a láthatóságok témaköre, (public, private, protected), illetve hogy mi az ún. Getter és Setter metódusok szerepe, és így tova, és így tova. De ez az alapok alapja.















Én csak assemblyben tudok programozni, de azt nagyon jól, viszont ide kell böfögnöm valamit
Valami
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!