diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2024-05-05 10:48:46 +0200 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2024-05-05 10:48:46 +0200 |
| commit | df5225d0202980c074aeeedae825a0e8058628a9 (patch) | |
| tree | 16cddea4e9dadac0dddc781632c43d5093f92f04 | |
| download | tierheim-loesung.tar.gz tierheim-loesung.zip | |
initial commitloesung
| -rw-r--r-- | .editorconfig | 13 | ||||
| -rw-r--r-- | .gitignore | 4 | ||||
| -rw-r--r-- | LICENSE | 21 | ||||
| -rw-r--r-- | Makefile | 10 | ||||
| -rw-r--r-- | README.md | 9 | ||||
| -rw-r--r-- | Tier.java | 44 | ||||
| -rw-r--r-- | Tierheim.java | 57 | ||||
| -rw-r--r-- | package.bluej | 42 |
8 files changed, 200 insertions, 0 deletions
diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..b0719dc --- /dev/null +++ b/.editorconfig @@ -0,0 +1,13 @@ +# top-most EditorConfig file +root = true + +[*] +charset = utf-8 +trim_trailing_whitespace = true +end_of_line = lf +insert_final_newline = true +spelling_language = de_DE + +[*.java] +indent_style = space +indent_size = 4 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5ed02cb --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +# java byte code +*.class +# generated files by BlueJ +*.ctxt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023-2024 Florian Fischer + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..bd78387 --- /dev/null +++ b/Makefile @@ -0,0 +1,10 @@ +.PHONY: clean run + +Tierheim.class: $(wildcard *.java) + javac $^ + +clean: + rm -f *.class + +run: Tierheim.class + java Tierheim diff --git a/README.md b/README.md new file mode 100644 index 0000000..fc9cbf5 --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +# Tierheim + +einfaches Java Projekt um das Konzept des Polymorphismus zu erarbeiten. + +## Lizens + +Tierheim ist unter den Bedingungen der MIT Lizens verwendbar. +Eine Kopie der Lizensbestimmungen sind in der Datei LICENSE oder unter +[](https://mit-license.org/) zu finden. diff --git a/Tier.java b/Tier.java new file mode 100644 index 0000000..1ae92e2 --- /dev/null +++ b/Tier.java @@ -0,0 +1,44 @@ +class Tier { + String name; + String geschlecht; + + public Tier(String neuerName, String neuesGeschlecht) { + name = neuerName; + geschlecht = neuesGeschlecht; + } + + public void gibLaut() { + System.out.println("Undefinierbarer Tierlaut"); + } +} + +class Katze extends Tier { + + public Katze(String neuerName, String neuesGeschlecht) { + super(neuerName, neuesGeschlecht); + } + + public void lautAusgeben() { + System.out.println("Miau!Miau!"); + } +} + +// AUFGABE 3 +// TODO: Implementiere die Klasse Hund als Spezialisierung der Klasse Tier. +// Zuszetzlich soll zu einem Hund noch die Rasse gespeichert werden. +// Definiere die Klasse Hund korrekt als Unterklasse der Klasse Tier. +// Implementiere einen Konstruktor der den Konstruktor der Oberklasse aufruft +// und die uebergebene Rasse speichert. +class Hund extends Tier { + + String rasse; + + public Hund(String neuerName, String neuesGeschlecht, String neueRasse) { + super(neuerName, neuesGeschlecht); + } + + public void gibLaut() { + System.out.println("Wuff"); + } +} + diff --git a/Tierheim.java b/Tierheim.java new file mode 100644 index 0000000..2c0b09c --- /dev/null +++ b/Tierheim.java @@ -0,0 +1,57 @@ +class Tierheim { + // AUFGABE 1 + // TODO: Ueberlege dir wie du die unterschiedlichsten Tiere im Tierheim effizient verwalten kannst + Tier[] tiere; + + int anzahlTier; + int maxTiere; + + public Tierheim(int platzFuerTiere) { + // AUFGABE 1 + // TODO: Initialisiere das Attribut das du zum Speichern der tiere deklariert hast + tiere = new Tier[platzFuerTiere]; + anzahlTier = 0; + maxTiere = platzFuerTiere; + } + + // AUFGABE 1 + // TODO: Vervollstaendige die Methode sodass das neue Tier im Tierheim gespeichert wird. + public void tierAufnehmen(Tier neuesTier) { + if(anzahlTier < maxTiere) { + // AUFGABE 1 + // TODO: Speichere neues Tier im Tierheim + tiere[anzahlTier] = neuesTier; + anzahlTier++; + } + } + + // AUFGABE 4 + // TODO: Vervollstaendige die Methode so das von jedem Tier die Methode gibLaut() aufgerufen wird + public void besuchen() { + for (int i = 0; i < anzahlTier; i++) { + tiere[i].gibLaut(); + } + } + + public static void main(String[] argsj) { + Tierheim tierheim = new Tierheim(10); + + Tier wolle = new Tier("Wolle der Wolpertinger", "ungewiss"); + wolle.gibLaut(); + System.out.println("******"); + tierheim.tierAufnehmen(wolle); + + Katze mitzi = new Katze("Cassie", "weiblich"); + mitzi.lautAusgeben(); + System.out.println("******"); + + Hund pluto = new Hund("pluto", "maennlich", "comic"); + pluto.gibLaut(); + System.out.println("******"); + // AUFGABE 2 + // TODO: Warum kann Pluto nicht in das Tierheim aufgenommen werden? + tierheim.tierAufnehmen(pluto); + + tierheim.besuchen(); + } +} diff --git a/package.bluej b/package.bluej new file mode 100644 index 0000000..25db192 --- /dev/null +++ b/package.bluej @@ -0,0 +1,42 @@ +#BlueJ package file +dependency1.from=Tierheim +dependency1.to=Tier +dependency1.type=UsesDependency +editor.fx.0.height=1049 +editor.fx.0.width=634 +editor.fx.0.x=3203 +editor.fx.0.y=3 +objectbench.height=190 +objectbench.width=930 +package.divider.horizontal=0.6 +package.divider.vertical=0.8002028397565923 +package.editor.height=782 +package.editor.width=803 +package.editor.x=2883 +package.editor.y=3 +package.frame.height=1049 +package.frame.width=954 +package.numDependencies=1 +package.numTargets=2 +package.showExtends=true +package.showUses=true +project.charset=UTF-8 +readme.height=60 +readme.name=@README +readme.width=49 +readme.x=10 +readme.y=10 +target1.height=70 +target1.name=Tierheim +target1.showInterface=false +target1.type=ClassTarget +target1.width=120 +target1.x=130 +target1.y=10 +target2.height=70 +target2.name=Tier +target2.showInterface=false +target2.type=ClassTarget +target2.width=120 +target2.x=10 +target2.y=90 |
