From a1d60d727f5fd2efb0e3fc143c5490ec03464ff3 Mon Sep 17 00:00:00 2001 From: Kai Sellmann <2210892@stud.hs-mannheim.de> Date: Sun, 28 May 2023 12:40:09 +0200 Subject: [PATCH] =?UTF-8?q?=C3=9Cbungen=20Assignment=2017=20bis=2020?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vererbung/polymorphie/Futterstelle.java | 26 +++---------- .../vererbung/polymorphie/ZooSimulation.java | 39 ++++++++++++------- .../pr2/vererbung/polymorphie/ZooTier.java | 2 + .../singleton_einfach/Singleton.java | 23 ++++++++++- .../java/pr2/vererbung/statics/Spiel.java | 12 ++++-- .../java/pr2/vererbung/statics/Wuerfel.java | 22 ++++++++++- 6 files changed, 81 insertions(+), 43 deletions(-) diff --git a/sources/src/main/java/pr2/vererbung/polymorphie/Futterstelle.java b/sources/src/main/java/pr2/vererbung/polymorphie/Futterstelle.java index c5cc781..12cbae5 100644 --- a/sources/src/main/java/pr2/vererbung/polymorphie/Futterstelle.java +++ b/sources/src/main/java/pr2/vererbung/polymorphie/Futterstelle.java @@ -7,29 +7,13 @@ public class Futterstelle { /** - * Füttert den Affen. + * Füttert den alle Tiere. * - * @param affe Affe, der gefüttert werden soll. + * @param alle Tiere sollen gefüttert werden. */ - public void gibFutter(Affe affe) { - affe.fuettern(); + public void gibFutter(ZooTier name) { + name.fuettern(); } - /** - * Füttert den Gorilla. - * - * @param gorilla Gorilla, der gefüttert werden soll. - */ - public void gibFutter(Gorilla gorilla) { - gorilla.fuettern(); - } - - /** - * Füttert die Giraffe. - * - * @param giraffe Giraffe, die gefüttert werden soll. - */ - public void gibFutter(Giraffe giraffe) { - giraffe.fuettern(); - } + } diff --git a/sources/src/main/java/pr2/vererbung/polymorphie/ZooSimulation.java b/sources/src/main/java/pr2/vererbung/polymorphie/ZooSimulation.java index 8e00527..4eda25e 100644 --- a/sources/src/main/java/pr2/vererbung/polymorphie/ZooSimulation.java +++ b/sources/src/main/java/pr2/vererbung/polymorphie/ZooSimulation.java @@ -5,37 +5,46 @@ package pr2.vererbung.polymorphie; */ public final class ZooSimulation { + + /** * Konstruktor. */ private ZooSimulation() { // keine Objekte benötigt } - + /** * Main-Methode. * * @param args Kommandozeilen-Argumente. */ + @SuppressWarnings("null") public static void main(String[] args) { + ZooTier charlie = null; + ZooTier buck = null; + ZooTier debbie = null; + ZooTier[] tiere = {charlie, buck, debbie}; + Futterstelle futterstelle = new Futterstelle(); - Affe charlie = new Affe("Charlie"); - Gorilla buck = new Gorilla("Buck"); - Giraffe debbie = new Giraffe("Debbie"); - - System.out.println(charlie); - System.out.println(buck); - System.out.println(debbie); + tiere[0] = new Affe("Charlie"); + tiere[1] = new Gorilla("Buck"); + tiere[2] = new Giraffe("Debbie"); + + for (int i = 0; i < tiere.length; i++) { + System.out.println(tiere[i]); + } + System.out.println("Fütterung..."); + + for (int i = 0; i < tiere.length; i++) { + futterstelle.gibFutter(tiere[0]); + } - futterstelle.gibFutter(charlie); - futterstelle.gibFutter(buck); - futterstelle.gibFutter(debbie); - - System.out.println(charlie); - System.out.println(buck); - System.out.println(debbie); + for (int i = 0; i < tiere.length; i++) { + System.out.println(tiere[i]); + } } } diff --git a/sources/src/main/java/pr2/vererbung/polymorphie/ZooTier.java b/sources/src/main/java/pr2/vererbung/polymorphie/ZooTier.java index ff9edf9..4ea6c41 100644 --- a/sources/src/main/java/pr2/vererbung/polymorphie/ZooTier.java +++ b/sources/src/main/java/pr2/vererbung/polymorphie/ZooTier.java @@ -5,6 +5,7 @@ package pr2.vererbung.polymorphie; */ public class ZooTier { + /** * Name des Tiers. */ @@ -22,6 +23,7 @@ public class ZooTier { */ public ZooTier(String name) { this.name = name; + } /** diff --git a/sources/src/main/java/pr2/vererbung/singleton_einfach/Singleton.java b/sources/src/main/java/pr2/vererbung/singleton_einfach/Singleton.java index 313fcc7..791a619 100644 --- a/sources/src/main/java/pr2/vererbung/singleton_einfach/Singleton.java +++ b/sources/src/main/java/pr2/vererbung/singleton_einfach/Singleton.java @@ -1,5 +1,26 @@ package pr2.vererbung.singleton_einfach; public class Singleton { - + + private String name; + Singleton sl = new Singleton("Alleine"); + + private Singleton(String name) { + if (sl == null) { + this.setName(name); + } else { + getInfo(); + } + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + + public String getInfo() { + return "Der Singleton exsistiert bereits"; + } + } diff --git a/sources/src/main/java/pr2/vererbung/statics/Spiel.java b/sources/src/main/java/pr2/vererbung/statics/Spiel.java index 3b76b5e..ad50ebc 100644 --- a/sources/src/main/java/pr2/vererbung/statics/Spiel.java +++ b/sources/src/main/java/pr2/vererbung/statics/Spiel.java @@ -22,16 +22,20 @@ public final class Spiel { Wuerfel wuerfel2 = new Wuerfel(); // 1000 Mal würfeln - for (int i = 0; i < 1000; i++) { + for (int i = 0; i < 3000; i++) { wuerfel1.wuerfele(); wuerfel2.wuerfele(); } // Statistik ausgeben - System.out.println("Statistik für Würfel 1"); + System.out.println("Statistik für alle Würfel in Zahlen:"); + System.out.println("Von " + Wuerfel.counter + " würfen"); System.out.println(wuerfel1.statistik()); System.out.println(); - System.out.println("Statistik für Würfel 2"); - System.out.println(wuerfel2.statistik()); + System.out.println("Statsitik für alle Würfel in Prozent"); + System.out.println("Von " + Wuerfel.counter + " würfen"); + System.out.println(wuerfel1.statistikProzent()); + System.out.println(); + } } diff --git a/sources/src/main/java/pr2/vererbung/statics/Wuerfel.java b/sources/src/main/java/pr2/vererbung/statics/Wuerfel.java index 5c3fc2e..5eadcc2 100644 --- a/sources/src/main/java/pr2/vererbung/statics/Wuerfel.java +++ b/sources/src/main/java/pr2/vererbung/statics/Wuerfel.java @@ -6,10 +6,11 @@ import java.util.Random; * Ein einfacher Würfel. */ public class Wuerfel { + /** Häufigkeit der Werte. */ - private int[] haeufigkeit = new int[6]; - + private static int[] haeufigkeit = new int[6]; + public static double counter = 0; /** Zufallsgenerator. */ private Random random = new Random(); @@ -19,6 +20,7 @@ public class Wuerfel { * @return der Wurf. */ public int wuerfele() { + counter++; int wert = random.nextInt(6); haeufigkeit[wert]++; return wert + 1; @@ -41,4 +43,20 @@ public class Wuerfel { return result.toString(); } + + public String statistikProzent() { + StringBuilder result = new StringBuilder(); + + for (int i = 0; i < haeufigkeit.length; i++) { + + double prozent = (100/counter*haeufigkeit[i]); + + result.append(i + 1) + .append(": ") + .append(prozent) + .append(" %") + .append("\n"); + } + return result.toString(); + } }