为了账号安全,请及时绑定邮箱和手机立即绑定

不明白一下代码的 for (car car : carForRent) 为什么是 car car : carForRent

不明白一下代码的      for (car car : carForRent)    为什么是 car car : carForRent     


car [ ] carForRent={new passengerCar(1,"奥迪A4",500,4),new passengerCar(2,"马自达6",400,4),

                                          new pickUp(3,"皮卡雪6",450,4,2),new passengerCar(4," 金龙 ",800,20),

                                          new trunk(5,"松花江",400,4),new trunk(6,"依维柯",1000,20)};

            System.out.println("序号"+"\t"+"汽车名称"+"\t"+"租金"+"\t"+"\t"+"容量");

            

 //打印输出可供租的汽车清单

            for (car car : carForRent) {

                //用instanceOf来测试左边类型的对象是否是右边类型的实例,返回值为Boolean

                if(car instanceof passengerCar){

                    //若它是客车类型的实例,则打印出客车应该有的属性值,这里注意强转,否则不会出现

                    //passengerCar类的CarCapacity属性

                    System.out.println(car.getCarNumber()+"\t"+car.getCarName()+"\t"+car.getCarRentMoney()

                                                  +"/天"+"\t"+"载人:"+((passengerCar)car).getCarCapacity()+"人");

                     

                }

                if(car instanceof pickUp){

                    System.out.println(car.getCarNumber()+"\t"+car.getCarName()+"\t"+car.getCarRentMoney()

                                                  +"/天"+"\t"+"载人:"+((pickUp)car).getCarCapacity()+"人"+"\t"

                                                  +"载货:"+((pickUp)car).getCarCarryCargo()+"吨");

                }

                if(car instanceof trunk){

                    System.out.println(car.getCarNumber()+"\t"+car.getCarName()+"\t"+car.getCarRentMoney()

                                                  +"/天"+"\t"+"载货:"+((trunk)car).getCarCarryCargo()+"吨");

                }

            }


正在回答

2 回答

 for (Car car : carForRent)这是另一种形式的for循环,叫foreach,也叫遍历式循环

 语法是for(类型  变量名 : 数组名),就是每次按顺序循环的从数组中取值,以你自己定义的变量名car保存,也就是上面写到的第二个car,第一个Car代表的是这个变量是车这个类型的,在car这个变量中实际上保存的是一个车类型的对象,这个对象就有载货量、载客量、名字、租金这些属性,你就可以在这个循环的过程中每次取出一个对象来操作,打印或者取得你想要的属性值,它实际上和一般的for循环

for(int i=0;i=carForRent.length;i++){

    if(carForRent[i] instanceof passengerCar){

                    //若它是客车类型的实例,则打印出客车应该有的属性值,这里注意强转,否则不会出现

                    //passengerCar类的CarCapacity属性

                    System.out.println(carForRent[i].getCarNumber()+"\t"+carForRent[i].getCarName()+"\t"+

carForRent[i].getCarRentMoney()

                                                  +"/天"+"\t"+"载人:"+((passengerCar)carForRent[i]).getCarCapacity()+"人"); 

                }

}实现的效果是一样的。

0 回复 有任何疑惑可以回复我~
#1

慕丝7101010 提问者

非常感谢!
2016-10-26 回复 有任何疑惑可以回复我~

楼上正解

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

不明白一下代码的 for (car car : carForRent) 为什么是 car car : carForRent

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信