2
0
Fork 0
mirror of https://github.com/MartinThoma/LaTeX-examples.git synced 2025-04-26 06:48:04 +02:00
LaTeX-examples/presentations/Programmieren-Tutorium/Tutorium-06/Gears.java
2013-11-05 19:39:03 +01:00

67 lines
1.8 KiB
Java

/**
* This class models the gears. It is restricted to derailleur gears.
*
* @author Markus Iser, Martin Thoma
* @version 1.0
*/
public class Gears {
public static final int MIN_FRONT_SPROCKETS = 1;
public static final int MAX_FRONT_SPROCKETS = 3;
public static final int MIN_REAR_SPROCKETS = 1;
public static final int MAX_REAR_SPROCKETS = 10;
private int frontSprockets;
private int rearSprockets;
/** Price in cents. */
private final int price;
Gears(int frontSprockets, int rearSprockets, int price) {
setSprockets(frontSprockets, rearSprockets);
this.price = price;
}
/**
* Sets the sprocket numbers.
* Uses default-values if consisteny criteria are not met.
* @param sprockets
* @param rearSprockets
*/
void setSprockets(int sprockets, int rearSprockets) {
this.frontSprockets = sprockets;
this.rearSprockets = rearSprockets;
if (!(this.frontSprockets >= 1)) { // A.1
this.frontSprockets = 1;
} else if (!(this.frontSprockets < 4)) { // A.2
this.frontSprockets = 3;
}
// B.1, B.2
if (this.rearSprockets < 1 || this.rearSprockets > 9) {
this.rearSprockets = this.frontSprockets * 3;
}
if (this.rearSprockets < this.frontSprockets) { // C.1
this.rearSprockets = this.frontSprockets;
} else if (this.rearSprockets > 3 * this.frontSprockets) { // C.2
this.rearSprockets = 3 * this.frontSprockets;
}
}
/**
* @return the number of gears as the number of sprocket-combinations
*/
int getNumberOfGears() {
return frontSprockets * rearSprockets;
}
/**
* @return the price of the gears
*/
int getPrice() {
return price;
}
}