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;
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
我在课堂上学到了这一点Static variables should be accessed by calling with class name.即ClassName.VariableName
但是在上面的代码中id = ++numberOfBicycles;,即使变量numberOfBicycles是这样的,如何编译这个语句没有错误static
Ani*_*kur 15
静态变量由类而不是其各个实例(对象)拥有.引用类外部的静态变量是在类中,ClassName.myStaticVariable但它类似于其他实例变量.
您始终可以在非静态方法中使用静态变量,但是在静态方法中不能使用非静态变量,因为在加载静态方法时,不会创建其他非静态实例变量.
所以你的语句id = ++numberOfBicycles;完全有效,编译时没有错误.
可能你的讲师所说的是从课堂外而不是课堂内访问它们。static变量可以像这样在类外部访问ClassName.VariableName或访问object.VariableName。但第一种方法是优选的。
在类内部,您不需要使用this关键字或classname-qualifier在方法和构造函数内使用相同名称的局部变量来消除歧义。
静态变量是共享变量。因此,您可以使用 Classname.staticVariable 或使用类 instance.staticVariable 的对象访问它们。在任何情况下,您都将引用内存中变量的单个副本,无论您创建多少个对象。
| 归档时间: |
|
| 查看次数: |
30254 次 |
| 最近记录: |