enum Type

HazlNut

Mitglied
Servus! :)

Habe folgendes Problem:
Habe die Aufgabe bekommen, eine Klasse Triangle zu schreiben, mit der man ein Dreieck erzeugen kann, welches sofort dessen Typ ausgibt. Unser Prof hat uns die nocht nicht implementierten Methoden zur Verfügung gestellt und wir sollen diese so bearbeiten wie es vorgeben ist.
Folgendermaßen habe ich bis jetzt angefangen:

Java:
public static void main(String[] args) {
		System.out.println(createTriangle(args));
	}

CreatTriangle sieht so aus:

Java:
public static Triangle createTriangle(String[] sides) throws IllegalArgumentException {
		return new Triangle(Integer.parseInt(sides[0]), 
				Integer.parseInt(sides[1]),
				Integer.parseInt(sides[2]));
	}

Konstruktor:

Java:
public Triangle(int a, int b, int c) {
		this.a = a;
		this.b = b;
		this.c = c;
		
		this.checkIntegrity();
		this.determineType();
	}

checkIntegrity:

Java:
private void checkIntegrity() throws IllegalArgumentException {
		if(a<=0 || b<=0 || c<=0){
			throw new IllegalArgumentException("Die Seiten eines Dreiecks dürfen nicht <= 0 sein!");
		}
		if(a+b<c || b+c<a || a+c<b){
			throw new IllegalArgumentException("Die Summe 2er Seiten darf nicht kleiner als die 3. Seite sein!");
		}
	}

Nun Liegt mein Problem bei "determineType". Vorm Konstruktor wurde folgendes gemacht:

Java:
public static enum TYPE {
		ISOSCELES /* gleichschenklig */, EQUILATERAL /* gleichseitig */, SCALENE /* ungleichseitig */
	};

	private final int a, b, c;
	private TYPE type;

Ich schätze mal in determineType wird dann wohl gefordert, dass wir das enum abarbeiten. Allerdings habe ich das noch nie wirklich benutzt und habe absolut keine Ahnung wie ich damit nun die Variable Typ auf Gleichschenklig, gleichseitig oder ungleichseitig stelle.

Würde mich sehr über kleine Denkanstöße und Hilfen freuen! :)

LG
HazlNut
 
Zuletzt bearbeitet:

Phash

Top Contributor
type stellst du auf ISOSCELES indem du es zuweist:
Java:
type = TYPE.ISOCELES;

fertig.

Das machst du dort, wo du type setzen möchtest, wahrscheinlich in "createTriangle"
 

stg

Top Contributor
Na, wenn alle drei Seiten gleich lang sind, dann setzt du den
Code:
type
auf
Code:
EQUILATERAL
, bei zwei gleichen Seiten dann auf ....

Die Zuweisung funktioniert wie bei normalen Variablen auch. z.B.

Java:
this.type = TYPE.EQUILATERAL;

[OT]
...und schon wieder war jemand anderes schneller :eek:
[/OT]
 
Zuletzt bearbeitet:

HazlNut

Mitglied
Ja klar! Hier nochmal der ganze, bereits abgenommene Code:

Java:
package triangle;

public class Triangle {

	public static enum TYPE {
		ISOSCELES /* gleichschenklig */, EQUILATERAL /* gleichseitig */, SCALENE /* ungleichseitig */
	};

	private final int a, b, c;
	private TYPE type;

	/**
	 * @param a
	 *            length of side a of the triangle
	 * @param b
	 *            length of side b of the triangle
	 * @param c
	 *            length of side c of the triangle
	 */
	public Triangle(int a, int b, int c) {
		this.a = a;
		this.b = b;
		this.c = c;
		
		this.checkIntegrity();
		this.determineType();
	}

	/**
	 * Checks the integrity of the triangle
	 * 
	 * @throws {@link IllegalArgumentException} if the side lengths do not describe a triangle
	 */
	private void checkIntegrity() throws IllegalArgumentException {
		if(a<=0 || b<=0 || c<=0){
			throw new IllegalArgumentException("Die Seiten eines Dreiecks dürfen nicht <= 0 sein!");
		}
		
		if(((long)a+(long)b)<=c		|| ((long)b+(long)c)<=a || ((long)a+(long)c)<=b){
			throw new IllegalArgumentException("Die Summe 2er Seiten darf nicht kleiner als die 3. Seite sein!");
		}
	}

	/**
	 * Determines the type of a triangle, depending on its side lengths
	 * 
	 * @return EQUILATERAL => all sides are equal in length, ISOSCELES => two
	 *         sides are equal in length, SCALENE => all sides are unequal
	 */
	private void determineType() {
		if(a == b && a == c){
			this.type = TYPE.EQUILATERAL;
		}else if(a == b || b == c || a == c){
			this.type = TYPE.ISOSCELES;
		}else{
			this.type = TYPE.SCALENE;
		}
	}

	public TYPE getType() {
		return this.type;
	}

	/**
	 * Creates new triangle instance
	 * 
	 * @param sides
	 *            string array which contains the length of all three sides of
	 *            the triangle
	 * @return new triangle instance
	 * 
	 * @throws {@link IllegalArgumentException} if the sides array does not represent a triangle
	 */
	public static Triangle createTriangle(String[] sides) throws IllegalArgumentException {
		if(sides.length != 3){
			throw new IllegalArgumentException();
		}
		return new Triangle(Integer.parseInt(sides[0]), 
				Integer.parseInt(sides[1]),
				Integer.parseInt(sides[2]));
	}

	/**
	 * Returns the {@link TYPE} of the triangle in german
	 * 
	 * @return german string representation for the given {@link TYPE}:
	 *         EQUILATERAL => "gleichseitig", ISOSCELES => "gleichschenklig",
	 *         SCALENE => "ungleichseitig"
	 */
	@Override
	public String toString() {
		switch (this.getType()) {
		case EQUILATERAL:
			return "gleichseitig";
		case ISOSCELES:
			return "gleichschenklig";
		case SCALENE:
			return "ungleichseitig";
		default:
			return "ungültig";
		}

	}

	public static void main(String[] args) {
		System.out.println(createTriangle(args));
	}

}
 

ceving

Aktives Mitglied
Java:
public static enum TYPE {
		ISOSCELES /* gleichschenklig */, EQUILATERAL /* gleichseitig */, SCALENE /* ungleichseitig */
	};

	private final int a, b, c;
	private TYPE type;

Ich schätze mal in determineType wird dann wohl gefordert, dass wir das enum abarbeiten. Allerdings habe ich das noch nie wirklich benutzt und habe absolut keine Ahnung wie ich damit nun die Variable Typ auf Gleichschenklig, gleichseitig oder ungleichseitig stelle.

Java:
type = TYPE.ISOSCELES;
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P enum: cannot be resolved to a type Java Basics - Anfänger-Themen 2
W Enum Konstruktor Type Java Basics - Anfänger-Themen 2
X enum Fehlermeldung "The public type Day must be defined in its own file" Java Basics - Anfänger-Themen 8
P Enum oder normale Klasse? Java Basics - Anfänger-Themen 10
volcanos enum und switch (neu): falschen Wert mit IllegalArgumentException oder mit EnumConstantNotPresentException abfangen ? Java Basics - Anfänger-Themen 51
X Enum Abfrage ohne if, for, while oder switch Java Basics - Anfänger-Themen 21
U Warum kann ich die Methode in der ENUM Klasse nicht aufrufen? Und warum geht die Switch nicht? Java Basics - Anfänger-Themen 8
D Frage bzgl. Enum-Handhabung Java Basics - Anfänger-Themen 16
S Java Enum Java Basics - Anfänger-Themen 2
I Validation, ob String ein Wert aus einem Enum enthält Java Basics - Anfänger-Themen 3
V Enum Java Basics - Anfänger-Themen 1
C Farben als Enum Java Basics - Anfänger-Themen 3
N enum Attribut von Objekten einer Hashmap ausgeben Java Basics - Anfänger-Themen 6
I JAXB und Enum Java Basics - Anfänger-Themen 7
M Enum-Variable HashMap zuweisen Java Basics - Anfänger-Themen 5
B Enum innerhalb einer Klasse / anderes Konzept Java Basics - Anfänger-Themen 8
N Enum Typen, was passiert intern mit ihnen? Java Basics - Anfänger-Themen 2
A enum Java Basics - Anfänger-Themen 6
O Enum Array Rekursiv abarbeiten Java Basics - Anfänger-Themen 44
B ENUM to List<String> konvertieren Java Basics - Anfänger-Themen 2
N Java Enum converter Methode Java Basics - Anfänger-Themen 5
F Enum von Ländern Java Basics - Anfänger-Themen 8
J Klassen Enum als Informationsträger Java Basics - Anfänger-Themen 10
T Datentypen enum static Chaos (blutiger anfänger) Java Basics - Anfänger-Themen 5
R Enum ist das gleiche wie? Java Basics - Anfänger-Themen 15
P Klassen Richtige Anwendung einer Enum-Klasse Java Basics - Anfänger-Themen 11
E Datentypen Problem beim Speichern von enum. Java Basics - Anfänger-Themen 10
J Compiler-Fehler class interface or enum expected Java Basics - Anfänger-Themen 1
E Objektvergleich Enum Java Basics - Anfänger-Themen 7
kilopack15 Euromünzen in enum als Liste ausgeben Java Basics - Anfänger-Themen 11
N Enum als generischer Typ Java Basics - Anfänger-Themen 4
H Datentypen Fehler bei Verwendung von enum Java Basics - Anfänger-Themen 9
lBlKha0s Fehlermeldung : class interface or enum expected Java Basics - Anfänger-Themen 9
T error: class, interface, or enum expected Java Basics - Anfänger-Themen 5
S Menüauswahl per Enum Java Basics - Anfänger-Themen 12
F Enum via String definieren Java Basics - Anfänger-Themen 2
L Compiler-Fehler error: class, interface or enum expected Java Basics - Anfänger-Themen 2
M java.lang.Enum.valueOf(Unknown Source) Java Basics - Anfänger-Themen 2
M Enum-Variabel-Abfrage funktioniert nicht? Java Basics - Anfänger-Themen 2
P Fallunterscheidung mit Überprüfung (enum) Java Basics - Anfänger-Themen 11
F Operatoren Enum aus Textdabei laden Java Basics - Anfänger-Themen 3
kaoZ Variablen Konstantensammlung vs. Enum Java Basics - Anfänger-Themen 9
H Enum außerhalb einer Klasse? Java Basics - Anfänger-Themen 2
K OOP Aufzählungstypen! enum Currency!!! Java Basics - Anfänger-Themen 5
F ENUM als Variable Java Basics - Anfänger-Themen 4
M Enum: Zugriff auf Konstanten Java Basics - Anfänger-Themen 7
A Erste Schritte ENUM - Werte zurückgeben Java Basics - Anfänger-Themen 5
D Enum als Parameter Java Basics - Anfänger-Themen 6
B Variablen Instanz von Enum zur Laufzeit erstellen und zuweisen Java Basics - Anfänger-Themen 2
B Datentypen Enum vererben/gruppieren? Java Basics - Anfänger-Themen 6
F Datentypen enum Java Basics - Anfänger-Themen 5
J Enum zählen Java Basics - Anfänger-Themen 8
D Einlesen eines Enum-Wertes per console Java Basics - Anfänger-Themen 3
K String mit ENUM vergleichen? Java Basics - Anfänger-Themen 6
N enum vergleiche Klammern? Java Basics - Anfänger-Themen 5
J public enum? in Java Java Basics - Anfänger-Themen 9
D Erste Schritte Enum - das unbekannte Wesen Java Basics - Anfänger-Themen 3
Y ENUM auslesen (Name des ENUM als Variable) Java Basics - Anfänger-Themen 4
P Compiler-Fehler "class, interface, or enum expected" Java Basics - Anfänger-Themen 5
K class, interface or enum expected Java Basics - Anfänger-Themen 14
pg1337 enum-Aufgabe Java Basics - Anfänger-Themen 5
N was sagt enum aus? Java Basics - Anfänger-Themen 3
S Methoden Enum Parameter in Methode Java Basics - Anfänger-Themen 7
G Datentypen enum Frage Java Basics - Anfänger-Themen 3
R Probleme mit Enum Java Basics - Anfänger-Themen 10
B Enum: Instanzen Java Basics - Anfänger-Themen 10
B Generic? Enum - So lösbar? Java Basics - Anfänger-Themen 8
T class, interface, or enum expected Java Basics - Anfänger-Themen 2
M Vererbung Enum Vererbung/Polymorphie Java Basics - Anfänger-Themen 2
P Enum Attribut in Konstruktoren Java Basics - Anfänger-Themen 10
4 Enum Problem Java Basics - Anfänger-Themen 2
turmaline Bindestrich in enum? Java Basics - Anfänger-Themen 5
T Enum - Key als Value ermitteln Java Basics - Anfänger-Themen 7
T ist enum.ordinal keine Konstante? Java Basics - Anfänger-Themen 7
R State machine mit enum Java Basics - Anfänger-Themen 9
L enum aus Integer umwandeln Java Basics - Anfänger-Themen 3
C Klasseninstanzierung mit enum-Parameter erzwingen Java Basics - Anfänger-Themen 2
I Enum in String Java Basics - Anfänger-Themen 4
N enum richtig verwenden Java Basics - Anfänger-Themen 5
M for(Enum..., ButtonGroup.getElements()... Java Basics - Anfänger-Themen 3
StrikeTom Fragen zu enum Java Basics - Anfänger-Themen 4
A Was ist performanter für Konstanten, enum oder static variablen Java Basics - Anfänger-Themen 5
L String zu Enum parsen Java Basics - Anfänger-Themen 8
J Datentypen Array in enum, ?? Wozu ?? Java Basics - Anfänger-Themen 3
S OOP Durch ein Enum iterieren... Java Basics - Anfänger-Themen 47
K Datentypen enum und liste Java Basics - Anfänger-Themen 7
S String - Enum Java Basics - Anfänger-Themen 3
H Eine enum switchen? Java Basics - Anfänger-Themen 7
G enum für Typsicherheit Java Basics - Anfänger-Themen 9
J class, interface, or enum expected - finde Fehler nicht. Java Basics - Anfänger-Themen 4
J OOP enum Java Basics - Anfänger-Themen 2
O Problem (Enum) Java Basics - Anfänger-Themen 14
S Enum als Index Java Basics - Anfänger-Themen 5
H Enum --> int ?? Java Basics - Anfänger-Themen 3
tanja enum in java Java Basics - Anfänger-Themen 3
D class, interface or enum expected Java Basics - Anfänger-Themen 2
A OOP Übergabe eines Wertes an den enum Konstruktor Java Basics - Anfänger-Themen 12
T Simple Enum Fragen Java Basics - Anfänger-Themen 6
J class, interface, or enum expected Java Basics - Anfänger-Themen 4
R Enum und dann setter Setzen? Java Basics - Anfänger-Themen 44

Ähnliche Java Themen

Neue Themen


Oben