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;
}
// ...
}
Nauczyłem się w mojej klasie, że Static variables should be accessed by calling with class name
. tj ClassName.VariableName
Dostęp do zmiennych statycznych
Ale w powyższym kodzie, jak jest to stwierdzenie id = ++numberOfBicycles;
skompilowany bez błędów, choć zmienna numberOfBicycles
jest static
Od poza klasą „zmienne statyczne powinny być dostępne dzwoniąc z nazwą klasy. " Od wewnątrz kwalifikacja klasy jest określana przez kompilator. –
Zauważ, że ta linia 'id = ++ numberOfBicycles;' nie jest bezpieczna dla wątków –