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;
}
// ...
}
Tôi đã học trong lớp của mình rằng Static variables should be accessed by calling with class name
. tức là ClassName.VariableName
Truy cập các biến tĩnh
Nhưng trong đoạn mã trên, làm thế nào được tuyên bố này id = ++numberOfBicycles;
biên soạn mà không có lỗi, mặc dù biến numberOfBicycles
là static
Nhìn từ bên ngoài lớp học, "biến tĩnh nên được truy cập bởi gọi bằng tên lớp. " Từ bên trong, trình độ lớp được suy ra bởi trình biên dịch. –
Lưu ý rằng dòng này 'id = ++ numberOfBicycles;' không phải là chủ đề an toàn –