魔力宝贝动画片第一部:一个很简单的java程序题,设置了一个静态方法返回序列号

来源:百度文库 编辑:高考问答 时间:2024/04/28 16:17:01
class Vehicle_one{
public float speed;
public float direction;
public String ower;
public static long idnum;

private long nextID=0;

public Vehicle_one(float s,float t,String o){
speed=s; direction=t; ower=o;
idnum=nextID++;}

public static void bhidnum(){System.out.println(idnum);}

public static void main(String[] args)
{

Vehicle_one car1 = new Vehicle_one(100.12f,45.6f,"zhang");
Vehicle_one car2 = new Vehicle_one(101.12f,46.6f,"zhang");
System.out.println("Vehicle4"+" " +car1.speed+" "+ car1.direction+" "+ car1.ower);
System.out.println("Vehicle4"+" "+car2.speed+" "+ car2.direction+" "+ car2.ower);
bhidnum();

}

我觉得程序应该idnum值应该显示成2才对,为什么最后运行结果是0呢,我想了好厂时间都没有想嗵,还请高手指教!!!!!谢谢了

}

private long nextID=0;

public Vehicle_one(float s,float t,String o){
speed=s; direction=t; ower=o;
idnum=nextID++;}
其中的 nextID 动态局部变量, 每次实例化,都从0开始, 而 idnum = nextID++ 的执行顺序是 nextID的值赋给idnum, 然后 nextID 加 1。所以你的结果是0。

改成如下:
public Vehicle_one(float s,float t,String o){
speed=s; direction=t; ower=o;
idnum++;}