Junior
Milliste rakenduste jaoks sobib static modifikaator?
sobes.tech AI
Vastus AI-lt
- Klassi muutujad (staatilised väljad): Andmete salvestamiseks, mis on ühised kõigi klassi eksemplaride jaoks. Näiteks loodud objektide loendur või konstantsid.
- Klassi meetodid (staatilised meetodid): Tegevuste tegemiseks, mis ei sõltu konkreetse objekti olemasolust. Näiteks abifunktsioonid või meetodid staatiliste väljadega töötamiseks.
- Staatilised initsialiseerimisblokid: Keerukate staatiliste väljade initsialiseerimiseks klassi laadimisel.
- Sisestruktuurina staatilised klassid: Loogiline gruppide ühendamine seotud klassideks või kasutamine abiklassidena ilma välise objekti viiteta.
Näited:
public class MyClass {
// Staatiline väli (konstant)
public static final int MAX_COUNT = 100;
// Staatiline väli (eksemplaride loendur)
private static int instanceCount = 0;
// Staatiline initsialiseerimisblok
static {
System.out.println("MyClass on laaditud.");
}
public MyClass() {
instanceCount++;
}
// Staatiline meetod
public static int getInstanceCount() {
return instanceCount;
}
// Sisestruktuurina staatiline klass
public static class StaticInnerClass {
public void doSomething() {
System.out.println("Staatilise siseklassi sees.");
}
}
}
Staatiliste ja mitte-staatiliste liikmete võrdlustabel:
| Omadus | Staatiline liige | Mitte-staatiline liige |
|---|---|---|
| Seos objekti | Kuulub klassile | Kuulub eksemplarile |
| Juurdepääs | Klassinime või objekti kaudu | Objekti kaudu |
| Initsialiseerimine | Klass laadimisel | Objekti loomisel |
| Mälu | Eraldatakse üks kord | Eraldatakse iga objekti jaoks |