A statisk metode tilhører klassen og en ikke-statisk metode tilhører et objekt i en klasse. De statiske metoder kan tilgås direkte fra klassen, mens ikke-statiske metoder (eller instansmetoder, som jeg kan lide at kalde dem) skal tilgås fra en instans.
Hvornår skal en metode være statisk kontra ikke-statisk?
A statisk metode tilhører selve klassen og en ikke-statisk (alias instans) metode tilhører hvert objekt, der genereres fra den klasse. Hvis din metode gør noget, der ikke afhænger af klassens individuelle karakteristika, så gør den statisk (det vil gøre programmets fodaftryk mindre).
Hvornår ville du bruge en ikke-statisk metode?
En ikke-statisk metode i Java kan få adgang til statiske metoder og variabler som følger:
- En ikke-statisk metode kan få adgang til enhver statisk metode uden at oprette en forekomst af klassen.
- En ikke-statisk metode kan få adgang til enhver statisk variabel uden at oprette en forekomst af klassen, fordi den statiske variabel tilhører klassen.
Hvornår skal du bruge statiske funktioner?
Når du ønsker at have en variabel, der altid har den samme værdi for hvert objekt i klassen, for evigt og altid, så gør den statisk. Hvis du har en metode, der ikke bruger nogen instansvariabler eller instansmetoder, bør du nok gøre den statisk.
Hvad er forskellen mellem statisk og ikke-statisk felt?
Statiske variabler eller felter tilhører klassen og ikke til noget objekt i klassen. En statisk variabel initialiseres, når klassen indlæses under kørsel. Ikke-statiske felter er forekomstfelter af et objekt. De kan kun tilgås eller fremkaldes via en objektreference.