zl程序教程

您现在的位置是:首页 >  后端

当前栏目

第4章类与对象-垃圾收集(小车运行)

对象 运行 收集 垃圾 小车
2023-09-27 14:27:29 时间

问题:

通过小车的数据输出关于小车的行驶状态

代码:

Test.java

public class Test {
    public static void main(String[]args){
        Vehicle car1,car2,car3;
        car1=new Vehicle();
        car2=new Vehicle();//创建两个对象
        car1.speedUp(60);//加速
        car2.speedUp(90);
        System.out.println("car1目前的速度是 "+car1.getSpeed());
        System.out.println("car2目前的速度是 "+car2.getSpeed());
        car1=car2;
        car3=car2;
        System.out.println("car1目前的速度是 "+car1.getSpeed());
        System.out.println("car2目前的速度是 "+car2.getSpeed());
        System.out.println("car3目前的速度是 "+car3.getSpeed());
        car1=null;
        System.out.println("car1目前的速度是 "+car1.getSpeed());  
        
    }
}


Vehicle.java

public class Vehicle {
    double speed;
    int power;
    void speedUp(int s){//加速
        speed=speed+s;
    }
    void speedDown(int d){//减速
        speed=speed-d;
    }
    void setPower(int p){//设定马力
        power=p;
    }
    int getPower(){//得到马力
        return power;
    }
    double getSpeed(){//得到速度
        return speed;
    }
}

运行结果:



总结:

上面发生了NullPointerException异常

和c++不同,在JAVA语言中,类有构造方法但没有析构方法,Java运行环境有“垃圾收集”机制,因此不必像c++程序员一样要时刻检查哪些对象应该使用析构方法释放内存,因此Java很少出现内存泄露。