Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.codewithkons;
- import java.util.ArrayList;
- import java.util.Calendar;
- public class Zoo {
- private ArrayList<Kamel> kamele = new ArrayList<>();
- public static void main(String[] args) {
- Zoo zoo = new Zoo();
- }
- Zoo() {
- this.kaufeTiereBilligEin();
- System.out.println(berechneDurchschnittsalter());
- this.druckeMaximaleTragelastAllerKamele();
- System.out.println(berechneMaximaleAnzahlAnPersonenDieGetragenWerdenKoennen());
- }
- private void kaufeTiereBilligEin() {
- kamele.add(new Lama("Larry", 1965));
- kamele.add(new Lama("Larry's Brudi", 1974));
- kamele.add(new Vikunja("I bims", 1999));
- kamele.add(new Vikunja("I bims 2", 2001));
- kamele.add(new Alpaka("Patrick", 1987));
- kamele.add(new Alpaka("Star", 1986));
- kamele.add(new Guanako("Mama", 1992));
- kamele.add(new Guanako("Tochter", 2014));
- kamele.add(new Trampeltier("Tompete", 1964, 3));
- kamele.add(new Trampeltier("Trump", 1946, 2));
- }
- private int berechneDurchschnittsalter() {
- int sum = kamele.stream().mapToInt(Kamel::getAlter).sum();
- return sum / kamele.size();
- }
- private void druckeMaximaleTragelastAllerKamele() {
- double sum = kamele.stream().mapToDouble(Kamel::getMaxTraglast).sum();
- System.out.println("Die maximale Tragelast aller Kamele: " + sum);
- }
- private int berechneMaximaleAnzahlAnPersonenDieGetragenWerdenKoennen() {
- int sum = 0;
- for (Kamel kamel: kamele) {
- if (kamel instanceof Trampeltier) {
- sum += ((Trampeltier) kamel).getMaxReiter();
- }
- }
- return sum;
- }
- }
- abstract class Kamel {
- private int gebJahr;
- private String name;
- protected double maxTraglast;
- protected double groesse;
- protected String[] herkunfsregionen;
- public Kamel(String name, int gebJahr) {
- this.gebJahr = gebJahr;
- this.name = name;
- }
- public int getGebJahr() { return gebJahr; }
- public String getName() { return name; }
- public int getAlter() {
- int result = 0;
- int aktuellesJahr = Calendar.getInstance().get(Calendar.YEAR);
- result = aktuellesJahr-gebJahr;
- return result;
- }
- public double getMaxTraglast() { return maxTraglast; }
- public double getGroesse() { return groesse; }
- public String[] getHerkunfsregion() {
- return herkunfsregionen;
- }
- public void setMaxTraglast(double kg) {
- maxTraglast = kg;
- }
- public void setGroesse(double groesse) {this.groesse = groesse;}
- public abstract void trageLast(double kg);
- }
- abstract class NeuWeltKamel extends Kamel {
- public NeuWeltKamel(String name, int gebJahr) {
- super(name, gebJahr);
- }
- public void beispielMethode(int y) {/* nur fuer NeuWeltKamele */ }
- }
- class Lama extends NeuWeltKamel {
- public Lama(String name, int gebJahr) {
- super(name, gebJahr);
- this.herkunfsregionen = new String[] {"Argentinien", "Chile", "Bolivien", "Peru", "Ecuador"};
- }
- public void spucken() { /* */ }
- public void trageLast(double kg){ /* */ }
- }
- class Guanako extends Lama {
- public Guanako(String name, int gebJahr) {
- super(name, gebJahr);
- this.herkunfsregionen = new String[] {"Argentinien", "Bolivien", "Chile", "Peru"};
- }
- }
- class Vikunja extends NeuWeltKamel {
- public Vikunja(String name, int gebJahr) {
- super(name, gebJahr);
- this.herkunfsregionen = new String[] {"Peru", "Bolivien", "Chile", "Argentinien"};
- }
- @Override
- public void trageLast(double kg) {
- }
- }
- class Alpaka extends Vikunja {
- public Alpaka(String name, int gebJahr) {
- super(name, gebJahr);
- this.herkunfsregionen = new String[] {"Peru"};
- }
- }
- abstract class AltWeltKamel extends Kamel {
- protected int anzahlHoecker = 0;
- public AltWeltKamel(String name, int gebJahr, int maxAnzahlReiter) {
- super(name, gebJahr);
- }
- public int getAnzahlHoecker() { return anzahlHoecker; }
- }
- class Dromedar extends AltWeltKamel {
- public Dromedar (String name, int gebJahr, int maxAnzahlReiter) {
- super(name, gebJahr, maxAnzahlReiter);
- super.anzahlHoecker = 1;
- this.herkunfsregionen = new String[] {"Nord-Afrika", "Australien", "Balkan", "Südwest-Afrika", "Karnarische Inseln", "Turkestan"};
- }
- public void trageLast(double kg){/*...*/}
- public void trageWerbeplakat(double kg) {/*...*/}
- }
- class Trampeltier extends AltWeltKamel {
- private int maxReiter;
- public Trampeltier(String name, int gebJahr, int maxAnzahlReiter) {
- super(name, gebJahr, maxAnzahlReiter);
- this.maxReiter = maxAnzahlReiter;
- super.anzahlHoecker = 2;
- this.herkunfsregionen = new String[] {"Kasachstan", "Mongolei", "China", "Manjurei", "Sibirien"};
- }
- public void tourisTragen(int dauer) {
- //trägt Touris fuer Minuten
- // ...
- }
- public void trageLast(double kg){ }
- public int getMaxReiter() {
- return maxReiter;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement