是 - 问题定义类乘客和TrainCoach和从String[]
一个.DEFINE类Passenger
具有的字段名(String
),年龄(int
),性别创建TrainCoach的对象(char
:M/F),重量( int
) 定义一个类TrainCoach
具有领域Passenger[]
乘客 你已经拿到了String[]
作为input.Create给出的String[]
作为输入TrainCoach
对象。如何使用对象作为输入?
public int numberOfPassengers()
:返回教练中的乘客人数。public int numberOfChildren()
:返回教练中的孩子数量。任何16岁以下的人都应被视为小孩。public int totalWeight()
:返回教练中所有乘客的总重量。
我无法写出numberOfChildren()和totalweight()的逻辑,下面是我试过的。请解释我做错了什么。
package Passenger;
public class Passenger {
String name;
int age;
char gender;
int weight;
public Passenger(){}
public Passenger(String data){
String[] s=data.split(":");
this.name=s[0];
this.age=Integer.parseInt(s[1]);
this.gender=s[2].charAt(0);
this.weight=Integer.parseInt(s[3]);
}
public Passenger[] makePassenger(String[] input){
Passenger[] passengers=new Passenger[input.length];
for(int i=0;i<input.length;i++){
passengers[i]=new Passenger(input[i]);
}
return passengers;
}
}
package Passenger;
public class TrainCoach {
Passenger[] passengers;
public TrainCoach(){}
public TrainCoach(Passenger[] passengers){
this.passengers=passengers;
}
public static class PassengerTest{
public static void main(String[] args){
String[] str={"Amit Sharma:24:M:72","Rahul:12:M:55"};
Passenger pass=new Passenger();
Passenger[] passenger=pass.makePassenger(str);
TrainCoach traincoach=new TrainCoach(passenger);
int c=traincoach.numberOfPassengers();
int d=traincoach.numberOfChildren();
int b=traincoach.totalWeight();
System.out.print(c+","+d+","+b);
}
}
public int numberOfPassengers(){
return this.passengers.length;
}
public int numberOfChildren(){
int count=0;
for(int i=0;i<passengers.length;i=i+4){
if(i<16){
count++;
}
}
return count;
}
public int totalWeight(){
int sum=0;
for(int i=0;i<passengers.length;i=i+2){
sum+=i;
}
return sum;
}
}
在你的'numberOfChildren()'你为什么递增通过''i' 4'?和'totalWeight()'类似,你为什么用'2'增加'i'? – jbx
numberOfPassengers:您想报告阵列中实际有多少乘客,而不是阵列长度(最大乘客数量)。 – keshlam
我把它增加了2和4,因为年龄和体重反复出现在这个位置。 –