|
《java入门123》 使用多态构建车队的的一点疑问 请高手解答
首先,先感谢笔者编写的这本书,确实是零基础入门的好书,让我这样一个初学者也能很容易看懂。另外,毕竟之前没有任何编程基础,所以对于书中的知识还是有点疑问
首先,这个是书中的车队类
package com.javaeasy.polymorphism;
import com.javaeasy.override.CarBase;
public class CarGroup {
public CarBase leadingCar;// 领队车
public CarBase[] followingCars;// 随从车
public CarGroup(CarBase leadingCar, CarBase[] followingCars) {//构造方法,不允许空构造方法
this.leadingCar = leadingCar;
this.followingCars = followingCars;
}
public void speedUp(int p_speed) {// 车队的加速方法,首先让领队车加速,然后让其余车跟进
leadingCar.speedUp(p_speed);
for (int i = 0; i < followingCars.length; i++) {
followingCars[i].followSpeed(leadingCar);
}
}
public void slowDown(int p_speed) {// 车队的减速方法,首先让领队车减速,然后让其余车跟进
leadingCar.slowDown(p_speed);
for (int i = 0; i < followingCars.length; i++) {
followingCars[i].followSpeed(leadingCar);
}
}
}
然后下面是使用车队类的例程
package com.javaeasy.polymorphism;
import com.javaeasy.override.Bus;
import com.javaeasy.override.CarBase;
import com.javaeasy.override.ElectronicBus;
import com.javaeasy.override.SportsCar;
public class UseCarGroup {
public static void main(String[] args) {
CarBase leading = new SportsCar();
CarBase[] followingCars = new CarBase[] { new CarBase(),
new SportsCar(), new Bus(), new ElectronicBus() };
CarGroup group = new CarGroup(leading, followingCars);
group.speedUp(50);
group.slowDown(10);
}
}
对于上面调用车队类的例程中,有2点不明白。
1、CarBase[] followingCars = new CarBase[] { new CarBase(),new SportsCar(), new Bus(), new ElectronicBus() };
按照之前创建数组并给数组赋值的内容中,应该是 CarBase[] followingCars = { new CarBase(),new SportsCar(), new Bus(), new ElectronicBus() }; 这样的。 也就是没有“new CarBase[]” 这个的,请问下,上面这段代码中加不加“new CarBase[]” 是不是都是一样的,对创建数组没影响?
2、CarGroup group = new CarGroup(leading, followingCars); 这段代码。我知道这是创建一个车队对象。但是和之前创建对象不同的是,这段代码的小括号中多了leading, followingCars这两个参数。请问一下,为什么可以在括号内添加参数?多了这两个参数有什么用?
初学者,问题可能小白了点,谢谢高手解答 |
|