如果我有一个类类型的数组(汽车),并且每辆汽车都有一个品牌和型号
使用set方法,然后如何打印出特定元素的品牌和型号?
我需要在单独的班级中打印出来
public class Car {
private String make;
private String model;
public void setMake (String str1) {
make = str1;
}
public void setModel (String str2) {
model = str2;
}
最佳答案
您需要在类中添加toString()
方法
public class Car {
private String make;
private String model;
public void setMake (String str1) {
make = str1;
}
public void setModel (String str2) {
model = str2;
}
@Override
public String toString() {
return "Make :"+ make + " Model :" + model;
}
}
只是印汽车
然后可以如下使用
public static void main(String[] args){
Car car=new Car();
car.setMake("Audi");
car.setModel("ModelName");
System.out.println(car);
}
打印所有阵列
同样地,如果这在汽车数组中存在(为了简洁起见,我使用的是我在构造函数中引入的构造函数)
public static void main(String[] args){
Car[] cars=new Car[3];
cars[0]=new Car("Audi","ModelName");
cars[1]=new Car("BMW","ModelName");
cars[2]=new Car("Honda","ModelName");
for(int i=0;i<cars.length;i++){
System.out.println(cars[i]);
}
}
用户选择索引后打印
public static void main(String[] args){
Car[] cars=new Car[3];
cars[0]=new Car("Audi","ModelName");
cars[1]=new Car("BMW","ModelName");
cars[2]=new Car("Honda","ModelName");
Scanner scan=new Scanner(System.in);
System.out.println("Select index to print, should be between 0 and " + (cars.length-1));
//checks that user actually inputs an integer,
//checking its in range is left as an excercise
while (scan.hasNextInt()==false){
scan.next(); //consume bad input
System.out.println("Select index to print, should be between 0 and " + (cars.length-1));
}
int index=scan.nextInt();
System.out.println(cars[index]);
}
笔记
似乎品牌和模型对于汽车类的工作至关重要,请考虑更改构造函数以将其作为参数
public Car(String make, String model){
this.make=make;
this.model=model;
}
所有这些都假定您已经具有要打印的元素