Java 简单对象类和记录
我目前正在学习Java,我已经做了一些教程。然而,每个练习都集中在一个部分(例如学习IO、学习字符串、图形等),但只有少数几个练习包含多个章节。这意味着我很难制作一个更完整但仍然简单的程序 请看下面我的问题。我正在制作一个“汽车类”,在这里我创建了4个变量。我为用户提供了插入车型、年份和其他两个选项的选项。 设置完所有值后,我们就可以显示它们了。到目前为止(几乎)还不错 在此之后,它应该将数据存储在[5]Car数组中,然后将其保存到外部txt文件中。解决下面两点后,我将添加保存到文件 现在的问题是:Java 简单对象类和记录,java,arrays,object,methods,records,Java,Arrays,Object,Methods,Records,我目前正在学习Java,我已经做了一些教程。然而,每个练习都集中在一个部分(例如学习IO、学习字符串、图形等),但只有少数几个练习包含多个章节。这意味着我很难制作一个更完整但仍然简单的程序 请看下面我的问题。我正在制作一个“汽车类”,在这里我创建了4个变量。我为用户提供了插入车型、年份和其他两个选项的选项。 设置完所有值后,我们就可以显示它们了。到目前为止(几乎)还不错 在此之后,它应该将数据存储在[5]Car数组中,然后将其保存到外部txt文件中。解决下面两点后,我将添加保存到文件 现在的问题
public static void main(String[] args) {
//other code
Car [] cars = new Main [5];
cars[0] = car1;
System.out.println(cars[0].getMake());
System.out.println(cars[0].getModel());
}
public static void main(String[] args) {
//other code
Car [] cars = new Main [5];
cars[0] = car1;
System.out.println(cars[0].getMake());
System.out.println(cars[0].getModel());
}
创建汽车数组的方法与创建字符串数组的方法相同
Car carArray[] = new Car[sizeofarray];
carArray[i] = car1;
阅读也是如此:
for(int i = 0; i < carArray.length; i++){
carArray[i].getModel(); // do something here
}
您可以这样做:
car1.setMake(in.nextLine());
为了更好地打印,只需先打印借口,然后等待用户输入,不要重新打印输入。创建cars数组的方法与创建字符串数组的方法相同
Car carArray[] = new Car[sizeofarray];
carArray[i] = car1;
阅读也是如此:
for(int i = 0; i < carArray.length; i++){
carArray[i].getModel(); // do something here
}
您可以这样做:
car1.setMake(in.nextLine());
为了更好地打印,只需先打印借口,然后等待用户输入,不要重新打印输入。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();
}
二,。ArrayList是一个比array更好的选项,因为您可能不知道汽车的数量。您可以创建一个汽车列表,并单独调用该方法以获得预期的结果
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());
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();
}
二,。ArrayList是一个比array更好的选项,因为您可能不知道汽车的数量。您可以创建一个汽车列表,并单独调用该方法以获得预期的结果
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类的构造函数来设置车型、年份等。从用户那里获取汽车信息并保存它,然后将其传递给构造函数 像这样:
public Car( String make, String model, int year) {
this.make = make;
//set the values here
}
在您的主要方法中:
String make = in.nextLine();
// You can prompt the user for the car info and then assign the value respectively. Then pass it to the constructor
Car car1 = new Car(make,model,year);
如果要创建汽车对象的数组,请创建一个while循环
Car cars= new Car[5];
int i=0;
While(i<5){
//ask user for input
.
.
.
cars[i] = new Car(make,model,year);
}
Car cars=新车[5];
int i=0;
而(i您应该使用汽车类的构造函数来设置车型、年份等。从用户那里获取汽车信息并保存它,然后将其传递给构造函数
像这样:
public Car( String make, String model, int year) {
this.make = make;
//set the values here
}
在您的主要方法中:
String make = in.nextLine();
// You can prompt the user for the car info and then assign the value respectively. Then pass it to the constructor
Car car1 = new Car(make,model,year);
如果要创建汽车对象的数组,请创建一个while循环
Car cars= new Car[5];
int i=0;
While(i<5){
//ask user for input
.
.
.
cars[i] = new Car(make,model,year);
}
Car cars=新车[5];
int i=0;
而(i使用System.out.println();作为getter,而不是.print(),使其看起来更漂亮。
要将汽车添加到汽车[]中,您使用汽车[x]=car.x+1;使用System.out.println();而不是.print()作为getter,以使其看起来更漂亮。
要将汽车添加到汽车[]您使用汽车[x]=car.x+1;这是一个有趣的问题。似乎有许多不同的方法来解决这个问题。@NimitPatel建议的是一个好主意。您也可以尝试类似的方法,保持当前的设计完好无损
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 [] cars = new Car [5]; // Creates a 5 car array / parking lot
for(int i = 0; i < 5; i++)
{
Car myCar = new Car();
System.out.println("Enter information for Car" + (i + 1) + ":");
System.out.println();
System.out.print("Car" + (i + 1) + ": ");
myCar.setMake(in);
System.out.print("Model: ");
myCar.setModel(in);
System.out.print("Year: ");
in.nextLine();
System.out.println();
cars[i] = myCar;
}
}
}
然后你的主类将负责从用户那里获取信息,使用这些信息创建新的汽车,并将这些汽车放入一个数组或arrayList中。可能类似这样:
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
String make, model;
int year;
Car cars[] = new Car[3];
// Get information about cars from the user
// Use this information to create a car
// Store this car in the array
for(int i = 0; i < cars.length; i++)
{
System.out.println("Enter information for car " + (i + 1));
make = getMakeFromUser();
model = getModelFromUser();
year = getYearFromUser();
Car myCurrentCar = new Car();
myCurrentCar.setMake(make);
myCurrentCar.setModel(model);
myCurrentCar.setYear(year);
cars[i] = myCurrentCar;
System.out.println();
}
// Display information about cars from the array
for(int i = 0; i < cars.length; i++)
{
System.out.println("Information about car " + (i + 1));
System.out.println("Make: " + cars[i].getMake());
System.out.println("Model: " + cars[i].getModel());
System.out.println("Year: " + cars[i].getYear());
System.out.println();
}
}
static String getMakeFromUser()
{
String make;
Scanner in = new Scanner(System.in);
System.out.print("Make: ");
make = in.nextLine();
return make;
}
static int getYearFromUser()
{
int year;
Scanner in = new Scanner(System.in);
System.out.print("Year: ");
year = in.nextInt();
in.nextLine();
return year;
}
static String getModelFromUser()
{
String model;
Scanner in = new Scanner(System.in);
System.out.print("Model: ");
model = in.nextLine();
return model;
}
}
import java.util.Scanner;
公共班机
{
公共静态void main(字符串[]args)
{
串制、模型;
国际年;
汽车[]=新车[3];
//从用户处获取有关汽车的信息
//使用此信息创建汽车
//把这辆车放在阵列中
对于(int i=0;i