Java 如何使用对象作为输入?
问题是- 定义类别Passenger和TrainCoach,并从Java 如何使用对象作为输入?,java,object,constructor,Java,Object,Constructor,问题是- 定义类别Passenger和TrainCoach,并从String[]创建TrainCoach对象。定义一个类别Passenger,其字段名称(String)、年龄(int)、性别(char:M/F)、重量(int) 定义一个类别TrainCoach,该类别包含Passenger[]Passentials字段 您已获得一个String[]作为输入。将String[]作为输入,创建TrainCoach对象 public int numberofpatients():返回车厢内的乘客人数
String[]
创建TrainCoach对象。定义一个类别Passenger
,其字段名称(String
)、年龄(int
)、性别(char
:M/F)、重量(int
)
定义一个类别TrainCoach
,该类别包含Passenger[]
Passentials字段
您已获得一个String[]
作为输入。将String[]
作为输入,创建TrainCoach
对象
:返回车厢内的乘客人数public int numberofpatients()
:返回coach中的子项数。16岁以下的任何人都将被视为儿童public int numberOfChildren()
:返回车厢内所有乘客的总重量李>public int 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;
}
}
包裹旅客;
公务舱乘客{
字符串名;
智力年龄;
性别;
整数权重;
公共乘客(){}
公共乘客(字符串数据){
字符串[]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]);
}
公共乘客[]生成乘客(字符串[]输入){
乘客[]乘客=新乘客[输入.长度];
对于(int i=0;i您在进行计算时只处理循环计数器。您需要查看Passenger
对象。以下是如何修复totalWeight()
,您可以将其用作如何修复numberOfChildren()
您只需执行以下操作:
Passenger[] passengers = Passenger.makePassenger(str);
public int numberOfChildren(){
整数计数=0;
对于(int i=0;i在您的numberOfChildren()
中,您为什么要按4
增加i
?在totalWeight()
中,您为什么要按2
增加i
?numberofpatients:您要报告的是阵列中实际有多少乘客,而不是阵列长度(最大乘客数)。我增加了2和4,因为这个位置反复出现年龄和体重。非常感谢您的帮助。欢迎。但我建议您阅读所有评论和答案。
Passenger pass=new Passenger();
Passenger[] passenger=pass.makePassenger(str);
Passenger[] passengers = Passenger.makePassenger(str);
public int numberOfChildren(){
int count=0;
for(int i=0;i<passengers.length;i++){
if(passengers[i].age < 16){
count++;
}
}
return count;
}
public int totalWeight(){
int sum=0;
for(int i=0;i<passengers.length;i++){
sum+=passengers[i].weight;
}
return sum;
}