Advertisement
Guest User

Untitled

a guest
Dec 15th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.29 KB | None | 0 0
  1. package com.codewithkons;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Calendar;
  5.  
  6. public class Zoo {
  7.  
  8. private ArrayList<Kamel> kamele = new ArrayList<>();
  9.  
  10. public static void main(String[] args) {
  11. Zoo zoo = new Zoo();
  12.  
  13. }
  14.  
  15. Zoo() {
  16. this.kaufeTiereBilligEin();
  17.  
  18. System.out.println(berechneDurchschnittsalter());
  19. this.druckeMaximaleTragelastAllerKamele();
  20. System.out.println(berechneMaximaleAnzahlAnPersonenDieGetragenWerdenKoennen());
  21.  
  22. }
  23.  
  24. private void kaufeTiereBilligEin() {
  25. kamele.add(new Lama("Larry", 1965));
  26. kamele.add(new Lama("Larry's Brudi", 1974));
  27.  
  28. kamele.add(new Vikunja("I bims", 1999));
  29. kamele.add(new Vikunja("I bims 2", 2001));
  30.  
  31. kamele.add(new Alpaka("Patrick", 1987));
  32. kamele.add(new Alpaka("Star", 1986));
  33.  
  34. kamele.add(new Guanako("Mama", 1992));
  35. kamele.add(new Guanako("Tochter", 2014));
  36.  
  37. kamele.add(new Trampeltier("Tompete", 1964, 3));
  38. kamele.add(new Trampeltier("Trump", 1946, 2));
  39.  
  40. }
  41.  
  42. private int berechneDurchschnittsalter() {
  43. int sum = kamele.stream().mapToInt(Kamel::getAlter).sum();
  44. return sum / kamele.size();
  45. }
  46.  
  47. private void druckeMaximaleTragelastAllerKamele() {
  48. double sum = kamele.stream().mapToDouble(Kamel::getMaxTraglast).sum();
  49. System.out.println("Die maximale Tragelast aller Kamele: " + sum);
  50. }
  51.  
  52. private int berechneMaximaleAnzahlAnPersonenDieGetragenWerdenKoennen() {
  53. int sum = 0;
  54.  
  55. for (Kamel kamel: kamele) {
  56. if (kamel instanceof Trampeltier) {
  57. sum += ((Trampeltier) kamel).getMaxReiter();
  58. }
  59. }
  60.  
  61. return sum;
  62. }
  63.  
  64. }
  65.  
  66.  
  67. abstract class Kamel {
  68.  
  69. private int gebJahr;
  70. private String name;
  71. protected double maxTraglast;
  72. protected double groesse;
  73.  
  74. protected String[] herkunfsregionen;
  75.  
  76. public Kamel(String name, int gebJahr) {
  77. this.gebJahr = gebJahr;
  78. this.name = name;
  79. }
  80.  
  81. public int getGebJahr() { return gebJahr; }
  82. public String getName() { return name; }
  83.  
  84. public int getAlter() {
  85. int result = 0;
  86. int aktuellesJahr = Calendar.getInstance().get(Calendar.YEAR);
  87. result = aktuellesJahr-gebJahr;
  88. return result;
  89. }
  90.  
  91. public double getMaxTraglast() { return maxTraglast; }
  92. public double getGroesse() { return groesse; }
  93.  
  94. public String[] getHerkunfsregion() {
  95. return herkunfsregionen;
  96. }
  97.  
  98. public void setMaxTraglast(double kg) {
  99. maxTraglast = kg;
  100. }
  101. public void setGroesse(double groesse) {this.groesse = groesse;}
  102.  
  103. public abstract void trageLast(double kg);
  104.  
  105.  
  106.  
  107. }
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117. abstract class NeuWeltKamel extends Kamel {
  118.  
  119. public NeuWeltKamel(String name, int gebJahr) {
  120. super(name, gebJahr);
  121. }
  122.  
  123. public void beispielMethode(int y) {/* nur fuer NeuWeltKamele */ }
  124. }
  125.  
  126.  
  127. class Lama extends NeuWeltKamel {
  128.  
  129. public Lama(String name, int gebJahr) {
  130. super(name, gebJahr);
  131.  
  132. this.herkunfsregionen = new String[] {"Argentinien", "Chile", "Bolivien", "Peru", "Ecuador"};
  133. }
  134.  
  135. public void spucken() { /* */ }
  136.  
  137. public void trageLast(double kg){ /* */ }
  138. }
  139.  
  140.  
  141. class Guanako extends Lama {
  142.  
  143. public Guanako(String name, int gebJahr) {
  144. super(name, gebJahr);
  145.  
  146. this.herkunfsregionen = new String[] {"Argentinien", "Bolivien", "Chile", "Peru"};
  147. }
  148.  
  149. }
  150.  
  151.  
  152. class Vikunja extends NeuWeltKamel {
  153.  
  154. public Vikunja(String name, int gebJahr) {
  155. super(name, gebJahr);
  156.  
  157. this.herkunfsregionen = new String[] {"Peru", "Bolivien", "Chile", "Argentinien"};
  158. }
  159.  
  160. @Override
  161. public void trageLast(double kg) {
  162.  
  163. }
  164. }
  165.  
  166.  
  167. class Alpaka extends Vikunja {
  168.  
  169. public Alpaka(String name, int gebJahr) {
  170. super(name, gebJahr);
  171.  
  172. this.herkunfsregionen = new String[] {"Peru"};
  173. }
  174. }
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183. abstract class AltWeltKamel extends Kamel {
  184.  
  185. protected int anzahlHoecker = 0;
  186.  
  187. public AltWeltKamel(String name, int gebJahr, int maxAnzahlReiter) {
  188. super(name, gebJahr);
  189. }
  190.  
  191. public int getAnzahlHoecker() { return anzahlHoecker; }
  192. }
  193.  
  194.  
  195. class Dromedar extends AltWeltKamel {
  196.  
  197. public Dromedar (String name, int gebJahr, int maxAnzahlReiter) {
  198. super(name, gebJahr, maxAnzahlReiter);
  199. super.anzahlHoecker = 1;
  200.  
  201. this.herkunfsregionen = new String[] {"Nord-Afrika", "Australien", "Balkan", "Südwest-Afrika", "Karnarische Inseln", "Turkestan"};
  202. }
  203.  
  204. public void trageLast(double kg){/*...*/}
  205.  
  206. public void trageWerbeplakat(double kg) {/*...*/}
  207.  
  208. }
  209.  
  210.  
  211. class Trampeltier extends AltWeltKamel {
  212.  
  213. private int maxReiter;
  214.  
  215. public Trampeltier(String name, int gebJahr, int maxAnzahlReiter) {
  216. super(name, gebJahr, maxAnzahlReiter);
  217.  
  218. this.maxReiter = maxAnzahlReiter;
  219. super.anzahlHoecker = 2;
  220.  
  221. this.herkunfsregionen = new String[] {"Kasachstan", "Mongolei", "China", "Manjurei", "Sibirien"};
  222. }
  223.  
  224. public void tourisTragen(int dauer) {
  225. //trägt Touris fuer Minuten
  226. // ...
  227. }
  228.  
  229. public void trageLast(double kg){ }
  230.  
  231. public int getMaxReiter() {
  232. return maxReiter;
  233. }
  234. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement