public class Bicycle {
private int cadence;
private int gear;
private int speed;
private int id;
private static int numberOfBicycles = 0;
public Bicycle(int startCadence, int startSpeed, int startGear){
gear = startGear;
cadence = startCadence;
speed = startSpeed;
id = ++numberOfBicycles;
}
// ...
}
Ho imparato nella mia classe che Static variables should be accessed by calling with class name
. cioè ClassName.VariableName
Accesso alle variabili statiche
Ma nel codice di cui sopra, come è questo dichiarazione id = ++numberOfBicycles;
compilata senza errori, anche se la variabile numberOfBicycles
è static
dall'esterno della classe, "variabili statiche devono essere accessibili da chiamare con il nome della classe. " Dall'interno, la qualifica della classe viene dedotta dal compilatore. –
Si noti che questa riga 'id = ++ numberOfBicycles;' non è thread-safe –