Junior
Kokiems taikymams tinka static modifikatorius?
sobes.tech AI
Atsakymas iš AI
- Klasės kintamieji (statiniai laukai): Duomenų saugojimui, kurie yra bendri visiems klasės egzemplioriams. Pavyzdžiui, sukurtų objektų skaitiklis arba konstantos.
- Klasės metodai (statiniai metodai): Veiksmų atlikimui, kurie nepriklauso nuo konkretaus objekto. Pavyzdžiui, pagalbinės funkcijos arba metodai darbui su statiniais laukais.
- Statinio inicializavimo blokai: Sudėtingai statinių laukų inicializacijai klasės įkėlimo metu.
- Vidiniai statiniai klasės: Logiškai grupuoti susijusius klases arba naudoti kaip pagalbinius klases be išorinio objekto nuorodos.
Pavyzdžiai:
public class MyClass {
// Statinis laukas (konstanta)
public static final int MAX_COUNT = 100;
// Statinis laukas (egzempliorių skaitiklis)
private static int instanceCount = 0;
// Statinio inicializacijos blokas
static {
System.out.println("MyClass įkelta.");
}
public MyClass() {
instanceCount++;
}
// Statinis metodas
public static int getInstanceCount() {
return instanceCount;
}
// Vidinis statinis klasės
public static class StaticInnerClass {
public void doSomething() {
System.out.println("Statinio vidinio klasės viduje.");
}
}
}
Statinių ir nestatinių narių palyginimo lentelė:
| Bruožas | Statinis narys | Nestatinis narys |
|---|---|---|
| Su objektu | Priklauso klasei | Priklauso egzemplioriui |
| Prieiga | Per klases pavadinimą arba objektą | Per objektą |
| Inicijalizacija | Kai įkeliamas klasė | Kai kuriamas objektas |
| Atmintis | Skiriama vieną kartą | Skiriama kiekvienam objektui |