November 2014 RollingStock & Trains
1 package november2014_rollingStock_trains;
2
3 public class RollingStock
4 {
5 private int mIDNumber;
6 private double mWeight;
7 public RollingStock(int ID, double weight)
8 {
9 mIDNumber = ID;
10 mWeight = weight; // Weight is in kilograms
11 }
12 // Accessor methods
13 public double getWeight() { return mWeight; }
14 public int getID() { return mIDNumber; }
15 //...
16 // Other methods
17 //...
18 }
1 package november2014_rollingStock_trains;
2
3 public class Engine extends RollingStock
4 {
5 private double mPullingWeight; // maximum weight engine can pull
6 public Engine(int ID)
7 {
8 super(ID, 120000); // Engines weigh 120000 kilograms
9 mPullingWeight = 1400000; // Engines can pull 1400000 kilograms
10 }
11 // Accessor methods
12 public double getWeight() { return super.getWeight(); }
13 //...
14 // Other methods
15 // ...
16 }
17
1 package november2014_rollingStock_trains;
2
3 public class Wagon extends RollingStock
4 {
5 private Parcel[] mParcels;
6 private int mParcelCount;
7
8 public Wagon(int ID)
9 {
10 super(ID, 32000); // Empty wagon weighs 32000 kilograms
11 mParcels = new Parcel[100];
12 mParcelCount = 0;
13 }
14
15 // Accessor methods
16 public int getWagonID() { return this.getID(); }
17
18 public double getWeight()
19 {
20 // Code to be written
21 return -999;//just to get rid of the red squigglies of the return statement
22 }
23 //...
24 // Other methods
25 //...
26 }
27
1 package november2014_rollingStock_trains;
2
3 public class Train
4 {
5 private Engine[] mEngines;
6 private Wagon[] mWagons;
7 private int mEngineCount;
8 private int mWagonCount;
9 private int mTrainNumber;
10 private double mWeight; // Total weight in kilograms
11
12 public Train(int number)
13 {
14 mTrainNumber = number;
15 mEngines = new Engine[6]; // The train can have up to 6 engines
16 mEngineCount = 0;
17 mWagons = new Wagon[100]; // The train can have up to 100 wagons
18 mWagonCount = 0;
19 mWeight = 0;
20 }
21
22 public void addEngine( Engine newEngine )
23 {
24 mEngines[mEngineCount] = newEngine;
25 mEngineCount++;
26 }
27
28 public Engine removeEngine()
29 {
30 mEngineCount--;
31 return mEngines[mEngineCount];
32 }
33
34 public void addWagon( Wagon newWagon )
35 {
36 mWagons[mWagonCount] = newWagon;
37 mWagonCount++;
38 }
39
40 public Wagon removeWagon()
41 {// Code to be written
42 return new Wagon(-999);//just to get rid of the return red squigglies
43 }
44
45 public double getWeight()
46 {// Code to be written
47 return -999;//just to get rid of the return red squiggies
48 }
49 //...
50 }
1 package november2014_rollingStock_trains;
2
3 public class Parcel
4 {
5 private int trackingID;
6 private double weight;
7 public String destinationAddress;
8 public String originAddress;
9
10 public Parcel(int ID)
11 {
12 trackingID = ID;
13 weight = 0;
14 }
15
16 public void setWeight(double newWeight) { weight = newWeight; }
17 public double getWeight() { return weight; }
18 }
19
1 package november2014_rollingStock_trains;
2
3 public class MainForNovember2014 {
4 public static void main(String[] args) {
5 Train A = new Train(123);
6 Engine B = new Engine(7);
7 A.addEngine(B);
8 Wagon C = new Wagon(23);
9 A.addWagon(C);
10 Wagon D = new Wagon(66);
11 A.addWagon(D);
12 Wagon E = new Wagon(71);
13 A.addWagon(E);
14 A.addEngine(new Engine(9));
15
16
17 Wagon F = A.removeWagon();
18 F = A.removeWagon();
19 A.addWagon(new Wagon(214));
20 }
21 }
22