Advertisement
Guest User

øving2

a guest
Jan 28th, 2020
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.16 KB | None | 0 0
  1. package encapsulation;
  2.  
  3. public class Vehicle {
  4.  
  5. private char kjoretoy;
  6. private char drivstoff;
  7. private String regnr;
  8.  
  9. //konstruktør
  10. public Vehicle(char kjoretoy, char drivstoff, String regnr) {
  11.  
  12. if (isValidVehicle()) {
  13. this.kjoretoy = kjoretoy;
  14. this.drivstoff = drivstoff;
  15. this.regnr = regnr;
  16. }
  17.  
  18. else {
  19. throw new IllegalArgumentException("Ikke gyldig");
  20. }
  21.  
  22. }
  23.  
  24. //metoder for at konstruktøren skal funke
  25.  
  26. //om typen er motorsykkel eller bil
  27. private boolean isValidVehicleName(char vehicle) {
  28. if (vehicle == 'M' || vehicle == 'C') {
  29. return true;
  30. }
  31.  
  32. else {
  33. return false;
  34. }
  35.  
  36. }
  37.  
  38. //om det er gyldig drivstoff
  39. private boolean isValidFuel(char fuel) {
  40. if (fuel == 'H' || fuel == 'E' || fuel == 'D' || fuel == 'G') {
  41. return true;
  42. }
  43.  
  44. else {
  45. return false;
  46. }
  47. }
  48.  
  49. //kun biler kan gå på hydrogen
  50. private boolean handleFuelHydrogen(char fuel, char vehicle) {
  51. if (fuel == 'H' && vehicle == 'C') {
  52. return false;
  53. }
  54.  
  55. else {
  56. return true;
  57. }
  58. }
  59.  
  60.  
  61. //om det er gyldig registreringsnr
  62. private boolean isValidReg(String registrationNumber) {
  63. if (registrationNumber.matches("[A-Z]{2}[0-9]{4,5}")) {
  64. return true;
  65. }
  66.  
  67. else {
  68. return false;
  69. }
  70. }
  71.  
  72. //gyldig elbiler
  73. private boolean isValidEl(char fuel, String registrationNumber) {
  74. if (fuel != 'E' && (registrationNumber.substring(0, 2) == "EL" || registrationNumber.substring(0, 2) == "EK")) {
  75. return false;
  76. }
  77.  
  78. else {
  79. return true;
  80. }
  81. }
  82.  
  83. //hydrogenbiler starter på HY
  84.  
  85. private boolean isValidHydrogen(char fuel, String registrationNumber) {
  86. if (fuel != 'H' && registrationNumber.substring(0, 2) == "HY") {
  87. return false;
  88. }
  89.  
  90. else {
  91. return true;
  92. }
  93. }
  94.  
  95. //motorsykler skal ha 4 og biler 5
  96. private boolean isValidVehicleRegnr(char vehicle, String registrationNumber) {
  97. if ((vehicle == 'C' && registrationNumber.length() == 5) || (vehicle == 'M' && registrationNumber.length() == 4)) {
  98. return true;
  99. }
  100.  
  101. else {
  102. return false;
  103. }
  104. }
  105.  
  106. //trekke sammen alle metodene til konstruktøren
  107. private boolean isValidVehicle() {
  108. if (isValidVehicleName(kjoretoy) && isValidFuel(drivstoff) && handleFuelHydrogen(drivstoff, kjoretoy)
  109. && isValidReg(regnr) && isValidEl(drivstoff, regnr) && isValidHydrogen(drivstoff, regnr)
  110. && isValidVehicleRegnr(kjoretoy, regnr)) {
  111. return true;
  112. }
  113.  
  114. else {
  115. return false;
  116. }
  117.  
  118. }
  119.  
  120. //sjekker om gyldig regnr
  121. private boolean isValidNewRegnr(String newRegnr) {
  122. if (isValidReg(newRegnr) && isValidEl(drivstoff, newRegnr) && isValidHydrogen(drivstoff, newRegnr)
  123. && isValidVehicleRegnr(kjoretoy, newRegnr)) {
  124. return true;
  125. }
  126.  
  127. else {
  128. return false;
  129. }
  130.  
  131. }
  132.  
  133. public char getFuelType() {
  134. return drivstoff;
  135. }
  136.  
  137. public String getRegistrationNumber() {
  138. return regnr;
  139. }
  140.  
  141. public void setRegistrationNumber(String newRegnr) {
  142. if (isValidNewRegnr(newRegnr)) {
  143. this.regnr = newRegnr;
  144. }
  145.  
  146. else {
  147. throw new IllegalArgumentException("Ugyldig registreringsnr");
  148. }
  149. }
  150.  
  151. public char getVehicleType() {
  152. return kjoretoy;
  153. }
  154.  
  155.  
  156. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement