Keresés

Új hozzászólás Aktív témák

  • BaLinux

    tag

    válasz Zsu_ #250 üzenetére

    Ez egy picit összetett dolog, biztosan ki is fogok felejteni valamit.
    Használat módjai:

    - static osztály változók: nem keletkeznek objektumonként, hanem az osztály összes példánya közösen használja a változót
    pl.
    class A { static int count; A() {count++;} }
    esetén minden egyes konstruktorhívásnál inkrementálódik a count.

    - static tagfüggvények: az előbbihez kapcsolódik, ugyanis ilyen függvényhez nem tartozik objektum. Ezt úgy értem, hogy a class A { static void fgv() {} } oszály fgv függvénye így hívható: A.fgv(); Természetesen ennél fogva nincs az fgv-ben definiálva ''this'' változó és ezért nem-static osztály változók/függvények sem használhatók, viszont static-kel jelöltek igen. (Persze ha átadsz paraméterben bármilyen objektumot, azzal azt csinálsz amit akarsz.)

    - static belső osztályok: olyan osztályon belül definiált osztályok, melyek nem kapcsolódnak a külső osztályhoz példányszinten. Huh, ez bonyi :)
    Na szóval:
    class A { static int count; int local; static class B { }}
    ilyenkor az A.B osztály példányosítható A-n kívülről. Egyébként nem! Továbbá az A.B osztály nem fér hozzá az A.local változóhoz, de az A.counthoz igen.

    Ööö van még valami?! :)

    [Szerkesztve]

Új hozzászólás Aktív témák