Kihagyás

1. Előadás

Követelmények

  • 100 pont max
  • 10 kvíz előadásokon (5*10 kérdés = 10 pont)
  • 10 kvíz gyakorlaton (10 pont)
  • Beadandó (15 pont)
  • 1 ZH év végén (15 elmélet + 50 gyakorlat)
  • No chatGPT
  • Yes IDE, any IDE

IDEs

Ajánlott a gyorsbillentyűk ismerete

Random dolgok

  • Relatíve új concept jávában : modulok, nem szeretnénk használni, nem igazán java jellegű fájlt hoz létre.
  • típushelyettesítő / "meta" típus : var, a rendszer következtetí ki a típusát a változónak az értékadás jobb oldalából
    • nem használható adattagnál

Felsorolásí típusok

  • Speciális osztályok
    • nem lehet új példányt létrehozni, a construktora nem lehet public
  • Deklarálni kell a típusával együtt, ha változó
  • Több konstruktor létezhet, át tudnak hívni egymásra
    • no arg vs default van különbség
enum HuCard {
    SPRING(90), SUMMER(95), AUTUMN(88), WINTER(45);
    // public static final HuCard SPRING = new HuCard();
    // a számok csak illusztrációk
    int dayCount;

    HuCard(int dayCount, String name){
        this.dayCount = dayCount;
        this.name = name
    }

    HuCard(int dayCount){
        this(dayCount, "Fake name");
    }


    HuCrad(){
        this(123);
    }

    public int getDayCount(){
        return 90;
    }
}

public class HuCardMain{
    public static void main(String[] args){
        HuCard card = HuCard.AUTUMN;
    }
}

Metódusok

  • ordinal(): elem metódusa, a sorszámot adja vissza
HuCard.SPRING.ordinal();
  • values(): az elemek tömbje
HuCard valuse = HuCard.values();
  • toString(): az enum nevét adja vissza

    • Magic: igazából this.name(); -el adja vissza az enum nevét, így a toString() felűlírható úgyh, hogy még megkaphatjuk az enum nevét String-ként
  • valueOf(String): String-ből csinál enum-ot, ha létezik egyébként: IllegalArgumentException

var cardTxt = "SPRING";
HuCard card = HuCard.valueOf(cardTxt);

toString

toString-ben, ne kelljen rengeteg művelettel összefűzni a Stringet, nagy műveletigény, helyette:

  • StringBuilder
  • String.format() vagy .formatted() a kettő ugyan az
var sb = new StringBuilder();
sb.append(name());
sb.append(" sdfsdgssg");
return sb.toString();

return String.format("%d %s", name().length, name());
return "%d %s".formatted(name().length, name());