我正在准备星期一的考试,但没有答案。到目前为止我做得很好,但我现在卡住了。我不知道该怎么办。
在互联网上搜索了很多年,但我想我错过了一件小事。
也许你们可以帮帮我?
问题:我需要将 Activity 放在日程安排中 ArrayList<...>
并打印出来我不知道该怎么做。
我试过 ArrayList Integers String 我不知道 ** 我是怎么做到的:P
目标在 GarageSimulation 中运行模拟 OneDay()。
测试者.java
public class Tester {
public void equalsTest() {
Car c1=new Car("Toyota", "Prius", 'p', 1800);
Car c2=new Car("Citroen", "C5 Tourer", 'd', 2300);
Car c3=new Car("Toyota", "Prius", 'd', 2050);
System.out.println(c1.equals(c1));
System.out.println(c1.equals(c2));
System.out.println(c1.equals(c3));
Bicycle b1=new Bicycle("MesserSchmidt", "Targa", false);
Car c4=new Car("MesserSchmidt", "Targa", 'p', 950);
System.out.println(c4.equals(b1));
/* Expected outcome
true
false
true
false
*/
}
public void simulateOneDayTest() {
Car c1=new Car("Toyota", "Prius", 'p', 1800);
Car c2=new Car("Citroen", "C5 Tourer", 'd', 2300);
Car c3=new Car("Toyota", "Prius", 'd', 2050);
Bicycle b1=new Bicycle("MesserSchmidt", "Targa", false);
Car c4=new Car("MesserSchmidt", "Targa", 'p', 950);
Car c5=new Car("Hummer", "XL", 'd', 5600);
Car c6=new Car("BMW", "R3", 'd', 6350);
Car c7=new Car("Citroen", "C5 Tourer", 'd', 2300);
GarageSimulation gs=new GarageSimulation();
gs.addVehicle(c1);
gs.addVehicle(c2);
gs.addVehicle(c3);
gs.addVehicle(b1);
gs.addVehicle(c4);
gs.addVehicle(c5);
gs.addVehicle(c6);
gs.addVehicle(c7);
gs.simulateOneDay();
/* Expected outcome
Eating/drinking takes 15 minutes
Current time is 8:15
Visiting the toilet takes 10 minutes
Current time is 8:25
Repairing takes 36 minutes
Current time is 9:01
Eating/drinking takes 15 minutes
Current time is 9:16
Visiting the toilet takes 10 minutes
Current time is 9:26
Repairing takes 46 minutes
Current time is 10:12
Eating/drinking takes 15 minutes
Current time is 10:27
Visiting the toilet takes 10 minutes
Current time is 10:37
Repairing takes 41 minutes
Current time is 11:18
Eating/drinking takes 15 minutes
Current time is 11:33
Visiting the toilet takes 10 minutes
Current time is 11:43
Repairing takes 15 minutes
Current time is 11:58
Eating/drinking takes 15 minutes
Current time is 12:13
Visiting the toilet takes 10 minutes
Current time is 12:23
Repairing takes 19 minutes
Current time is 12:42
Eating/drinking takes 15 minutes
Current time is 12:57
Visiting the toilet takes 10 minutes
Current time is 13:07
Repairing takes 112 minutes
Current time is 14:59
Eating/drinking takes 15 minutes
Current time is 15:14
Visiting the toilet takes 10 minutes
Current time is 15:24
Repairing takes 127 minutes
Current time is 17:31
Eating/drinking takes 15 minutes
Current time is 17:46
Visiting the toilet takes 10 minutes
Current time is 17:56
Repairing takes 46 minutes
Current time is 18:42
*/
}
public void simulateOneDayAndStopOnTimeTest() {
/*Car c1=new Car("Toyota", "Prius", 'p', 1800);
Car c2=new Car("Citroen", "C5 Tourer", 'd', 2300);
Car c3=new Car("Toyota", "Prius", 'd', 2050);
Bicycle b1=new Bicycle("MesserSchmidt", "Targa", false);
Car c4=new Car("MesserSchmidt", "Targa", 'p', 950);
Car c5=new Car("Hummer", "XL", 'd', 5600);
Car c6=new Car("BMW", "R3", 'd', 6350);
Car c7=new Car("Citroen", "C5 Tourer", 'd', 2300);
GarageSimulation gs=new GarageSimulation();
gs.addVehicle(c1);
gs.addVehicle(c2);
gs.addVehicle(c3);
gs.addVehicle(b1);
gs.addVehicle(c4);
gs.addVehicle(c5);
gs.addVehicle(c6);
gs.addVehicle(c7);
gs.simulateOneDayAndStopOnTime();
*/
/* Expected outcome
Eating/drinking takes 15 minutes
Current time is 8:15
Visiting the toilet takes 10 minutes
Current time is 8:25
Repairing takes 36 minutes
Current time is 9:01
Eating/drinking takes 15 minutes
Current time is 9:16
Visiting the toilet takes 10 minutes
Current time is 9:26
Repairing takes 46 minutes
Current time is 10:12
Eating/drinking takes 15 minutes
Current time is 10:27
Visiting the toilet takes 10 minutes
Current time is 10:37
Repairing takes 41 minutes
Current time is 11:18
Eating/drinking takes 15 minutes
Current time is 11:33
Visiting the toilet takes 10 minutes
Current time is 11:43
Repairing takes 15 minutes
Current time is 11:58
Eating/drinking takes 15 minutes
Current time is 12:13
Visiting the toilet takes 10 minutes
Current time is 12:23
Repairing takes 19 minutes
Current time is 12:42
Eating/drinking takes 15 minutes
Current time is 12:57
Visiting the toilet takes 10 minutes
Current time is 13:07
Repairing takes 112 minutes
Current time is 14:59
Eating/drinking takes 15 minutes
Current time is 15:14
Visiting the toilet takes 10 minutes
Current time is 15:24
Repairing takes 127 minutes
Current time is 17:31
Exception: Closing time...
Still 3 activities pending
*/
}
}
GarageSimulation.java
import java.util.*;
public class GarageSimulation{
private int time;
private static final int START_HOUR=8;
private static final int MIN_IN_HOUR=60;
private static final int TOTAL_MINUTES=480;
private ArrayList<Vehicle> dayplan;
private EatAndDrink eatdrink;
private Toilet toilet;
private RepairVehicle repair;
public GarageSimulation() {
ArrayList<Vehicle> dayplan = new ArrayList<Vehicle>();
}
public void addVehicle(Vehicle vehicle) {
// add eat and drink to dayplanning
// IT GOES WRONG HERE
dayplan.add();// don't know which arguments or how I can add an activity to the arraylist
// add toilet to dayplanning
// add repair vehicle to dayplanning
}
public void simulateOneDay() {
// No clue what im doing here
int i = 0;
while(dayplan.size() > i) {
// get the activity
System.out.println(dayplan.get(i));
System.out.println("Current time is "+showCurrentTime());
// show the activity and update time
// Print the current time
i++;
}
}
private String showCurrentTime() {
int hour=START_HOUR+time/MIN_IN_HOUR;
int min=time%MIN_IN_HOUR;
if (min<10)
return hour+":0"+min;
else
return hour+":"+min;
}
}
EatAndDrink.java
public class EatAndDrink implements Activity{
public int showActivityAndReturnTime() {
System.out.println("Eating/drinking takes 15 minutes");
return 15;
}
}
厕所.java中的同样狗屎
RepairVehicle.java
public class RepairVehicle implements Activity{
private int time;
public RepairVehicle(Vehicle vehicle) {
Car c = (Car) vehicle;
if( vehicle instanceof Car){
//tijd reperatie auto
if( c.getFueltype() == 'd'){
time = (c.getContents()/50) * 2;
}else{
time = (c.getContents()/50);
}
}else if( vehicle instanceof Bicycle){
time = 15;
}
}
@Override
public int showActivityAndReturnTime() {
System.out.println("Repairing takes "+time+" minutes");
return time;
}
}
接口(interface)Activity.java
public interface Activity
{
public int showActivityAndReturnTime();
}
汽车.java
public class Car extends Vehicle {
private char fueltype;
private int contents;
public Car(String brand,String modelname,char fueltype,int contents){
super(brand,modelname);
if(fueltype == 'd' || fueltype == 'p'){
this.fueltype = fueltype;
}
if( contents >= 0 ){
this.contents = contents;
}else{
this.contents = 1000;
}
}
public char getFueltype(){
return fueltype;
}
public int getContents(){
return contents;
}
public boolean equals(Object o){
if (this == o){
return true;
}
if(!( o instanceof Car)){
return false;
}
Car c = (Car) o;
return(
c.brand.equals(this.brand) &&
c.modelname.equals(this.modelname)
);
}
}
我认为 Bicycle.java 和 Vehicle.java 并不是真的需要在这里展示。
希望你们中的一些人可以帮助我!提前致谢!!!!!
最佳答案
dayplan
被声明为
private ArrayList<Vehicle> dayplan;
你调用add没有任何参数的方法。
dayplan.add();
这就是导致编译错误的原因。
你需要给它一个参数,
vehicle
.dayplan.add(vehicle);
关于Java问题;无法将 Activity 添加到 ArrayList<???> 需要帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21209426/