Mi chiedo come un metodo non statico possa modificare una variabile di istanza statica. So che i metodi statici possono accedere solo ad altri metodi statici e variabili statiche. Tuttavia, l'altro lato è vero? I metodi non statici possono accedere solo a variabili non statiche? Ad esempio:I metodi non statici possono modificare le variabili statiche
public class SampleClass {
private static int currentCount = 0;
public SampleClass() {
currentCount++;
}
public void increaseCount() {
currentCount++;
}
}
Questo codice viene compilato e vorrei sapere perché in termini di privilegi di accesso statico.
hai provato esso? –
@Marco Sì, compila. Mi chiedo solo se le persone lo hanno documentato ovunque e se il mio ragionamento è corretto. –
Non è proprio vero che i metodi statici non possono modificare le variabili di istanza. È solo che non hanno impliciti riferimenti "questo". Puoi scrivere 'class Ex {private int x; static void fn (ex ex) {ex.x = 12; }} '. A proposito: la statica mutevole è generalmente una cattiva idea. –