gpt4 book ai didi

java - 简单对象类和记录

转载 作者:行者123 更新时间:2023-12-01 07:49:17 27 4
gpt4 key购买 nike

我目前正在学习Java,并且已经完成了几个教程。然而,每个练习都集中在一个部分(例如学习 IO、学习字符串、图形等),但只有少数练习混合了多个章节。这意味着我很难制作一个更完整但仍然简单的程序。

请参阅我的问题下方。我正在创建一个“汽车类”,其中创建了 4 个变量。我为用户提供了插入汽车类型、年份和其他两个选项的选项。设置完所有值后,我们就可以显示它们了。到目前为止(几乎)很好。

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class Car {
String make;
String model;
int year;
String plateNumber;

public Car() {
}

// SETS and GETS the type of the Car
public void setMake (Scanner in) {
make = in.nextLine();
}

public String getMake () {
System.out.print("Make: " + make);
return make;
}

// SETS and GETS the model of the Car
public void setModel (Scanner in) {
model = in.nextLine();
}
public String getModel () {
System.out.print("Model: " + model);
return model;
}

// SETS and GETS the year of fabrication
public void setYear(Scanner in) {
year = in.nextInt();
}
public int getYear () {
System.out.print("Year: " + year);
return year;
}

// SETS and GETS the plateNumber;
public void setPlate (Scanner in) {
plateNumber = in.nextLine();
}
public String getPlate ()
{
System.out.print("License: " + plateNumber);
return plateNumber;
}

public static void main(String[] args) throws IOException {

File file = new File("");
Scanner in = new Scanner(System.in);

if (!file.exists()) {
FileWriter writeFile = new FileWriter("cars.txt");
}

// CAR 1 ====================
Car car1 = new Car();
System.out.println("Car1: ");
car1.setMake(in);
car1.getMake();
car1.setModel(in);
car1.getModel();
car1.setYear(in);
car1.getYear();

Car [] cars = new Car [5]; // Creates a 5 car array / parking lot

}

}

此后,它应该将数据存储在 [5] Car 数组中,然后将它们保存到外部 txt 文件中。解决以下两点后我将添加保存到文件。

现在的问题:

  1. 如何使扫描仪和显示更加优雅。正如您在下面的打印屏幕中看到的,数据加倍(打印到屏幕和扫描仪显示汽车类型两次)

enter image description here

  • 如何将汽车变量存储在一个数组中,然后仅打印型号或仅打印制造年份,或者对于一辆车,打印这辆车的所有值。我知道如何创建一个字符串、int 或 double 数组。我只是不知道如何将上述变量存储在 Car 数组中并一一获取 car1 数组值。这让我很困惑。预先致谢并致以诚挚的问候,
  • 最佳答案

    1.当然可以先输入,然后显示输入的数据。所以,

    car1.setMake(in);
    car1.setModel(in);
    car1.setYear(in);
    car1.getMake();
    car1.getModel();
    car1.getYear();

    并更改 setters 方法以提示消息输入内容,

    public void setMake (Scanner in) {
    System.out.println("Enter Model : ");
    make = in.next();
    }

    2. ArrayList 是比数组更好的选择,因为您可能不知道汽车的数量。您可以创建一个汽车列表并单独调用该方法以获得预期结果。

        ArrayList<Car> carList = new ArrayList<Car>();
    carList.add(car1);

    //Call the get(index) method to get the car object and then call the class method you want.
    carList.get(0).getMake();
    carList.get(0).getModel();

    //A class always should have a toString() method that returns the string with all the values of class instance.
    System.out.println(carList.get(0).toString());

    此外,使用 Car 类的 toString 方法来获取类的所有实例的值。

     @Override
    public String toString() {
    return "Car [make=" + make + ", model=" + model + ", year=" + year + ", plateNumber=" + plateNumber + "]";
    }

    关于java - 简单对象类和记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41686479/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com