aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2024-05-05 10:48:46 +0200
committerFlorian Fischer <florian.fischer@muhq.space>2024-05-05 10:48:46 +0200
commitdf5225d0202980c074aeeedae825a0e8058628a9 (patch)
tree16cddea4e9dadac0dddc781632c43d5093f92f04
downloadtierheim-loesung.tar.gz
tierheim-loesung.zip
initial commitloesung
-rw-r--r--.editorconfig13
-rw-r--r--.gitignore4
-rw-r--r--LICENSE21
-rw-r--r--Makefile10
-rw-r--r--README.md9
-rw-r--r--Tier.java44
-rw-r--r--Tierheim.java57
-rw-r--r--package.bluej42
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
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..a8fc068
--- /dev/null
+++ b/LICENSE
@@ -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