Java programozás - Szoftverfejlesztés fórum

üzenetek

hozzászólások


BaLinux
(tag)

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]

üzenetek