Compare commits

..

2 Commits

Author SHA1 Message Date
Jan Emmerich 93d494e528 Weiter Aufgabenbearbeitung 2026-06-18 19:31:05 +02:00
Jan Emmerich e9e3cdce89 Weitere Bearbeitung der Aufgaben 2026-06-18 19:06:43 +02:00
11 changed files with 278 additions and 154 deletions

View File

@ -1,3 +1,6 @@
- Abstrakte Klassen 1
- Abstrakte Klassen 2
- Abstrakte Klassen 1 (nochmal reinschauen)
- Abstrakte Klassen 2 (nochmal reinschauen)
- Ausnahmen 1
- Enum 1
- Enum 2
- Ausnahme 2

View File

@ -40,6 +40,10 @@ public class Wuerfel {
public Wuerfel(int numSides) {
this.numSides = numSides;
}
public Wuerfel(WuerfelArt art) {
this.numSides = art.getSides();
}
/**
* Den Würfel werfen.

View File

@ -0,0 +1,20 @@
package pr2.enums.eigene;
public enum WuerfelArt {
D4(4),
D6(6),
D10(10),
D12(13);
private int sides;
WuerfelArt(int side) {
this.sides = side;
}
public int getSides() {
return sides;
}
}

View File

@ -1,5 +1,38 @@
package pr2.enums.filme;
public enum LieblingsFilme {
KUNGFUPANDA("Kung Fu Panda", 9, "Dreamworks"),
MANFROMEARTH("Man from Earth", 10, "Unbekannt"),
THEGENTLEMEN("The Gentlemen", 8, "Guy Richie")
;
private final String title;
private final int rating;
private final String reg;
LieblingsFilme(String title, int rating, String reg ) {
this.title = title;
this.rating = rating;
this.reg = reg;
}
public String getTitle() {
return title;
}
public int getRating() {
return rating;
}
public String getReg() {
return reg;
}
@Override
public String toString() {
return String.format("Title: %s, Rating: %d, Regie: %s", title, rating, reg);
}
}

View File

@ -2,6 +2,10 @@ package pr2.enums.filme;
public class Main {
public static void main(String[] args) {
// TODO: Alle Filme ausgeben
LieblingsFilme[] all = LieblingsFilme.values();
for(int i = 0; i < all.length; i++) {
System.out.println(all[i]);
}
}
}

View File

@ -32,8 +32,11 @@ public class Fuse {
* @throws IllegalCurrentException Ausnahme bei einem
* ungültigen Spannungswert.
*/
public Fuse(int tripCurrent) {
public Fuse(int tripCurrent) throws IllegalCurrentException {
// TODO: IllegalCurrentException werfen, wenn der Strom ungültig ist
if (tripCurrent != A16 && tripCurrent != A25 && tripCurrent != A32) {
throw new IllegalCurrentException(tripCurrent);
}
this.tripCurrent = tripCurrent;
}
@ -43,7 +46,10 @@ public class Fuse {
* @param current Strom, der durch die Sicherung fließt.
* @throws FuseTrippedException wird geworfen, wenn der Srom zu groß wird.
*/
public void use(int current) {
public void use(int current) throws FuseTrippedException {
// TODO: FuseTrippedException werfen, wenn der Strom zu groß ist
if (current > tripCurrent) {
throw new FuseTrippedException(tripCurrent, current);
}
}
}

View File

@ -3,7 +3,19 @@ package pr2.exceptions.eigene_ausnahme;
/**
* Ausnahme, wenn die Sicherung auslöst.
*/
public class FuseTrippedException {
public class FuseTrippedException extends Exception {
// TODO: zu einer Ausnahme machen
// TODO: Nennstrom und Auslösestrom speichern und in toString wieder ausgeben
private int nennstrom;
private int ausloeser;
FuseTrippedException(int nenn, int aus){
this.nennstrom = nenn;
this.ausloeser = aus;
}
@Override
public String toString() {
return String.format("Der Ausloeser war %d, und der Nennstrom ist %d", ausloeser, nennstrom);
}
}

View File

@ -3,7 +3,27 @@ package pr2.exceptions.eigene_ausnahme;
/**
* Ausnahme, wenn eine Sicherung angelegt werden soll, die es nicht gibt.
*/
public class IllegalCurrentException {
public class IllegalCurrentException extends Exception {
// TODO: zu einer Ausnahme machen
// TODO: Nennstrom speichern, mit dem die Sicherung angelegt werden sollte.
private int current;
IllegalCurrentException(String msg, int current) {
super(msg);
this.current = current;
}
IllegalCurrentException(int current) {
this.current = current;
}
public int getCurrent() {
return current;
}
@Override
public String toString() {
return String.format("Der Falsche Strom betrug: %d", current);
}
}

View File

@ -13,147 +13,147 @@ public class FuseTest {
// TODO: Quellcode wieder einkommentieren
//
// /**
// * Testet die Erzeugung von Sicherungen mit gültigen Werten.
// *
// * @throws IllegalCurrentException ungültiger Wert für die Sicherung.
// */
// @Test
// void testCreationValid() throws IllegalCurrentException {
// new Fuse(Fuse.A16);
// new Fuse(Fuse.A25);
// new Fuse(Fuse.A32);
// }
//
// /**
// * Testet die Erzeugung von Sicherungen mit ungültigen Werten.
// *
// * @throws IllegalCurrentException ungültiger Wert für die Sicherung.
// */
// @Test
// void testCreationValid1() throws IllegalCurrentException {
// Assertions.assertThrows(IllegalCurrentException.class, () -> {
// new Fuse(15);
// });
// }
//
// /**
// * Testet die Erzeugung von Sicherungen mit ungültigen Werten.
// *
// * @throws IllegalCurrentException ungültiger Wert für die Sicherung.
// */
// @Test
// void testCreationValid2() throws IllegalCurrentException {
// Assertions.assertThrows(IllegalCurrentException.class, () -> {
// new Fuse(-1);
// });
// }
//
// /**
// * Testet die Erzeugung von Sicherungen mit ungültigen Werten.
// *
// * @throws IllegalCurrentException ungültiger Wert für die Sicherung.
// */
// @Test
// void testCreationValid3() throws IllegalCurrentException {
// Assertions.assertThrows(IllegalCurrentException.class, () -> {
// new Fuse(0);
// });
// }
//
// /**
// * Testet die Erzeugung von Sicherungen mit ungültigen Werten.
// *
// * @throws IllegalCurrentException ungültiger Wert für die Sicherung.
// */
// @Test
// void testCreationValid4() throws IllegalCurrentException {
// Assertions.assertThrows(IllegalCurrentException.class, () -> {
// new Fuse(Integer.MAX_VALUE);
// });
// }
//
// /**
// * Testet die Erzeugung von Sicherungen mit ungültigen Werten.
// *
// * @throws IllegalCurrentException ungültiger Wert für die Sicherung.
// */
// @Test
// void testCreationValid5() throws IllegalCurrentException {
// Assertions.assertThrows(IllegalCurrentException.class, () -> {
// new Fuse(Integer.MIN_VALUE);
// });
// }
//
// /**
// * Testet das Auslösen der Sicherung.
// *
// * @throws FuseTrippedException Sicherung hat ausgelöst.
// * @throws IllegalCurrentException ungültiger Wert für die Sicherung.
// */
// @Test
// void testTripping1()
// throws FuseTrippedException, IllegalCurrentException {
//
// Fuse f = new Fuse(Fuse.A16);
// f.use(5);
// f.use(16);
// f.use(0);
//
// f = new Fuse(Fuse.A25);
// f.use(5);
// f.use(16);
// f.use(25);
//
//
// Assertions.assertThrows(FuseTrippedException.class, () -> {
// Fuse f2 = new Fuse(Fuse.A16);
// f2.use(0);
// f2.use(16);
// f2.use(25);
// });
// }
//
// /**
// * Testet das Auslösen der Sicherung.
// *
// * @throws FuseTrippedException Sicherung hat ausgelöst.
// * @throws IllegalCurrentException ungültiger Wert für die Sicherung.
// */
// @Test
// void testTripping2()
// throws FuseTrippedException, IllegalCurrentException {
// Assertions.assertThrows(FuseTrippedException.class, () -> {
// new Fuse(Fuse.A16).use(17);
// });
// }
//
// /**
// * Testet das Auslösen der Sicherung.
// *
// * @throws FuseTrippedException Sicherung hat ausgelöst.
// * @throws IllegalCurrentException ungültiger Wert für die Sicherung.
// */
// @Test
// void testTripping3()
// throws FuseTrippedException, IllegalCurrentException {
//
// Assertions.assertThrows(FuseTrippedException.class, () -> {
// new Fuse(Fuse.A16).use(Integer.MAX_VALUE);
// });
// }
//
// /**
// * Testet das Auslösen der Sicherung.
// *
// * @throws FuseTrippedException Sicherung hat ausgelöst.
// * @throws IllegalCurrentException ungültiger Wert für die Sicherung.
// */
// @Test
// void testTripping4()
// throws FuseTrippedException, IllegalCurrentException {
// Assertions.assertThrows(FuseTrippedException.class, () -> {
// new Fuse(Fuse.A32).use(40);
// });
// }
/**
* Testet die Erzeugung von Sicherungen mit gültigen Werten.
*
* @throws IllegalCurrentException ungültiger Wert für die Sicherung.
*/
@Test
void testCreationValid() throws IllegalCurrentException {
new Fuse(Fuse.A16);
new Fuse(Fuse.A25);
new Fuse(Fuse.A32);
}
/**
* Testet die Erzeugung von Sicherungen mit ungültigen Werten.
*
* @throws IllegalCurrentException ungültiger Wert für die Sicherung.
*/
@Test
void testCreationValid1() throws IllegalCurrentException {
Assertions.assertThrows(IllegalCurrentException.class, () -> {
new Fuse(15);
});
}
/**
* Testet die Erzeugung von Sicherungen mit ungültigen Werten.
*
* @throws IllegalCurrentException ungültiger Wert für die Sicherung.
*/
@Test
void testCreationValid2() throws IllegalCurrentException {
Assertions.assertThrows(IllegalCurrentException.class, () -> {
new Fuse(-1);
});
}
/**
* Testet die Erzeugung von Sicherungen mit ungültigen Werten.
*
* @throws IllegalCurrentException ungültiger Wert für die Sicherung.
*/
@Test
void testCreationValid3() throws IllegalCurrentException {
Assertions.assertThrows(IllegalCurrentException.class, () -> {
new Fuse(0);
});
}
/**
* Testet die Erzeugung von Sicherungen mit ungültigen Werten.
*
* @throws IllegalCurrentException ungültiger Wert für die Sicherung.
*/
@Test
void testCreationValid4() throws IllegalCurrentException {
Assertions.assertThrows(IllegalCurrentException.class, () -> {
new Fuse(Integer.MAX_VALUE);
});
}
/**
* Testet die Erzeugung von Sicherungen mit ungültigen Werten.
*
* @throws IllegalCurrentException ungültiger Wert für die Sicherung.
*/
@Test
void testCreationValid5() throws IllegalCurrentException {
Assertions.assertThrows(IllegalCurrentException.class, () -> {
new Fuse(Integer.MIN_VALUE);
});
}
/**
* Testet das Auslösen der Sicherung.
*
* @throws FuseTrippedException Sicherung hat ausgelöst.
* @throws IllegalCurrentException ungültiger Wert für die Sicherung.
*/
@Test
void testTripping1()
throws FuseTrippedException, IllegalCurrentException {
Fuse f = new Fuse(Fuse.A16);
f.use(5);
f.use(16);
f.use(0);
f = new Fuse(Fuse.A25);
f.use(5);
f.use(16);
f.use(25);
Assertions.assertThrows(FuseTrippedException.class, () -> {
Fuse f2 = new Fuse(Fuse.A16);
f2.use(0);
f2.use(16);
f2.use(25);
});
}
/**
* Testet das Auslösen der Sicherung.
*
* @throws FuseTrippedException Sicherung hat ausgelöst.
* @throws IllegalCurrentException ungültiger Wert für die Sicherung.
*/
@Test
void testTripping2()
throws FuseTrippedException, IllegalCurrentException {
Assertions.assertThrows(FuseTrippedException.class, () -> {
new Fuse(Fuse.A16).use(17);
});
}
/**
* Testet das Auslösen der Sicherung.
*
* @throws FuseTrippedException Sicherung hat ausgelöst.
* @throws IllegalCurrentException ungültiger Wert für die Sicherung.
*/
@Test
void testTripping3()
throws FuseTrippedException, IllegalCurrentException {
Assertions.assertThrows(FuseTrippedException.class, () -> {
new Fuse(Fuse.A16).use(Integer.MAX_VALUE);
});
}
/**
* Testet das Auslösen der Sicherung.
*
* @throws FuseTrippedException Sicherung hat ausgelöst.
* @throws IllegalCurrentException ungültiger Wert für die Sicherung.
*/
@Test
void testTripping4()
throws FuseTrippedException, IllegalCurrentException {
Assertions.assertThrows(FuseTrippedException.class, () -> {
new Fuse(Fuse.A32).use(40);
});
}
}

View File

@ -1,5 +1,4 @@
#Thu May 28 14:14:29 CEST 2026
/home/mainuser/programming/java/uebungen/sources/src/main/java/pr2/enums/filme/LieblingsFilme.java=1779967432494
#Thu Jun 18 19:22:21 CEST 2026
/home/mainuser/programming/java/uebungen/sources/src/main/java/pr2/enums/schnick/Move.java=1779967432494
/home/mainuser/programming/java/uebungen/sources/src/main/java/pr2/enums/singleton/MyEnum.java=1779967432495
/home/mainuser/programming/java/uebungen/sources/src/main/java/pr2/exceptions/ausnahmen_testen/CrypterCaesar.java=1779967432495

View File

@ -87,9 +87,27 @@
<file name="/home/mainuser/programming/java/uebungen/sources/src/main/java/pr2/enums/eigene/Wuerfel.java">
<error line="38" column="8" severity="error" message="Nicht verwendetes Tag @param für &apos;typ&apos;." source="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocMethodCheck"/>
<error line="40" column="24" severity="error" message="Erwartetes Tag @param für &apos;numSides&apos;." source="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocMethodCheck"/>
<error line="45" column="5" severity="error" message="Die Datei enthält Tabulatorzeichen (dies ist das erste Vorkommen)." source="com.puppycrawl.tools.checkstyle.checks.whitespace.FileTabCharacterCheck"/>
</file>
<file name="/home/mainuser/programming/java/uebungen/sources/src/main/java/pr2/enums/eigene/WuerfelArt.java">
<error line="4" column="1" severity="error" message="Die Datei enthält Tabulatorzeichen (dies ist das erste Vorkommen)." source="com.puppycrawl.tools.checkstyle.checks.whitespace.FileTabCharacterCheck"/>
<error line="4" column="9" severity="error" message="Es fehlt ein Javadoc-Kommentar." source="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck"/>
<error line="5" column="9" severity="error" message="Es fehlt ein Javadoc-Kommentar." source="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck"/>
<error line="6" column="9" severity="error" message="Es fehlt ein Javadoc-Kommentar." source="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck"/>
<error line="7" column="9" severity="error" message="Es fehlt ein Javadoc-Kommentar." source="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck"/>
</file>
<file name="/home/mainuser/programming/java/uebungen/sources/src/main/java/pr2/enums/filme/LieblingsFilme.java">
<error line="4" column="1" severity="error" message="Die Datei enthält Tabulatorzeichen (dies ist das erste Vorkommen)." source="com.puppycrawl.tools.checkstyle.checks.whitespace.FileTabCharacterCheck"/>
<error line="5" column="9" severity="error" message="Es fehlt ein Javadoc-Kommentar." source="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck"/>
<error line="6" column="9" severity="error" message="Es fehlt ein Javadoc-Kommentar." source="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck"/>
<error line="7" column="9" severity="error" message="Es fehlt ein Javadoc-Kommentar." source="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck"/>
<error line="9" column="9" severity="error" message="Vor &apos;;&apos; befindet sich ein Leerzeichen." source="com.puppycrawl.tools.checkstyle.checks.whitespace.NoWhitespaceBeforeCheck"/>
<error line="15" column="61" severity="error" message="Vor &apos;)&apos; befindet sich ein Leerzeichen." source="com.puppycrawl.tools.checkstyle.checks.whitespace.ParenPadCheck"/>
<error line="35" severity="error" message="Zeile ist 93 Zeichen lang (Obergrenze ist 80)." source="com.puppycrawl.tools.checkstyle.checks.sizes.LineLengthCheck"/>
</file>
<file name="/home/mainuser/programming/java/uebungen/sources/src/main/java/pr2/enums/filme/Main.java">
<error line="5" column="11" severity="error" message="Kommentar entspricht to-do-Format &apos;TODO:&apos;." source="com.puppycrawl.tools.checkstyle.checks.TodoCommentCheck"/>
<error line="7" column="9" severity="error" message="Nach &apos;for&apos; fehlt ein Leerzeichen." source="com.puppycrawl.tools.checkstyle.checks.whitespace.WhitespaceAfterCheck"/>
<error line="8" column="9" severity="error" message="Die Datei enthält Tabulatorzeichen (dies ist das erste Vorkommen)." source="com.puppycrawl.tools.checkstyle.checks.whitespace.FileTabCharacterCheck"/>
</file>
<file name="/home/mainuser/programming/java/uebungen/sources/src/main/java/pr2/enums/schnick/SchnickSchnackSchnuck.java">
<error line="3" column="8" severity="error" message="Nicht verwendeter Import - java.util.Random." source="com.puppycrawl.tools.checkstyle.checks.imports.UnusedImportsCheck"/>
@ -100,16 +118,21 @@
</file>
<file name="/home/mainuser/programming/java/uebungen/sources/src/main/java/pr2/exceptions/eigene_ausnahme/Fuse.java">
<error line="36" column="11" severity="error" message="Kommentar entspricht to-do-Format &apos;TODO:&apos;." source="com.puppycrawl.tools.checkstyle.checks.TodoCommentCheck"/>
<error line="47" column="11" severity="error" message="Kommentar entspricht to-do-Format &apos;TODO:&apos;." source="com.puppycrawl.tools.checkstyle.checks.TodoCommentCheck"/>
<error line="37" column="5" severity="error" message="Die Datei enthält Tabulatorzeichen (dies ist das erste Vorkommen)." source="com.puppycrawl.tools.checkstyle.checks.whitespace.FileTabCharacterCheck"/>
<error line="50" column="11" severity="error" message="Kommentar entspricht to-do-Format &apos;TODO:&apos;." source="com.puppycrawl.tools.checkstyle.checks.TodoCommentCheck"/>
</file>
<file name="/home/mainuser/programming/java/uebungen/sources/src/main/java/pr2/exceptions/eigene_ausnahme/FuseTrippedException.java">
<error line="7" column="7" severity="error" message="Kommentar entspricht to-do-Format &apos;TODO:&apos;." source="com.puppycrawl.tools.checkstyle.checks.TodoCommentCheck"/>
<error line="8" severity="error" message="Zeile ist 81 Zeichen lang (Obergrenze ist 80)." source="com.puppycrawl.tools.checkstyle.checks.sizes.LineLengthCheck"/>
<error line="8" column="7" severity="error" message="Kommentar entspricht to-do-Format &apos;TODO:&apos;." source="com.puppycrawl.tools.checkstyle.checks.TodoCommentCheck"/>
<error line="9" column="1" severity="error" message="Die Datei enthält Tabulatorzeichen (dies ist das erste Vorkommen)." source="com.puppycrawl.tools.checkstyle.checks.whitespace.FileTabCharacterCheck"/>
<error line="12" column="48" severity="error" message="Vor &apos;{&apos; fehlt ein Leerzeichen." source="com.puppycrawl.tools.checkstyle.checks.whitespace.WhitespaceAroundCheck"/>
<error line="19" severity="error" message="Zeile ist 109 Zeichen lang (Obergrenze ist 80)." source="com.puppycrawl.tools.checkstyle.checks.sizes.LineLengthCheck"/>
</file>
<file name="/home/mainuser/programming/java/uebungen/sources/src/main/java/pr2/exceptions/eigene_ausnahme/IllegalCurrentException.java">
<error line="7" column="7" severity="error" message="Kommentar entspricht to-do-Format &apos;TODO:&apos;." source="com.puppycrawl.tools.checkstyle.checks.TodoCommentCheck"/>
<error line="8" column="7" severity="error" message="Kommentar entspricht to-do-Format &apos;TODO:&apos;." source="com.puppycrawl.tools.checkstyle.checks.TodoCommentCheck"/>
<error line="9" column="1" severity="error" message="Die Datei enthält Tabulatorzeichen (dies ist das erste Vorkommen)." source="com.puppycrawl.tools.checkstyle.checks.whitespace.FileTabCharacterCheck"/>
</file>
<file name="/home/mainuser/programming/java/uebungen/sources/src/main/java/pr2/exceptions/handle_or_declare/Buchstabenzaehler.java">
<error line="3" column="8" severity="error" message="Nicht verwendeter Import - java.io.BufferedReader." source="com.puppycrawl.tools.checkstyle.checks.imports.UnusedImportsCheck"/>