Enum: Instanzen

Blues

Mitglied
Hallo,

muss nach längerer Suche leider noch eine Frage nachschieben:
Ich soll für mehrere Studenten ein enum benutzen, das verfügbare Abschlüsse auflistet. Zur Verdeutlichung hier mal die Code Fetzen, die ich als Beispiel vorgegeben habe:

Java:
public enum Abschluss {
BA,MA
}

Java:
public class student {
//...
public Abschluss abschlussart;
//...

Java:
public class StudentAW {
public static void main (String[]args) {
//...
Student stud1 = new Student();
stud1.abschlussart = Abschluss.BA
}
}

Soweit meine Vorlage, wie das funktionieren sollte.
Nun habe ich die enum in die Klasse Student integriert, weil sie meiner Meinung nach da hingehört und dort den Datentyp 'Abschluss' angelegt wie oben.

In der Anwendungsdatei habe ich nun das Problem, dass ich mehrere Studenten über zwei verschiedene Konstruktoren anlegen soll. So muss ich ja an die Konstruktoren Daten übergeben. Jetzt ist mir nicht wirklich klar, wie ich das anstellen soll mit der enum: Unten habe ich einfach mal eine der Optionen eingefügt (ist mir auch klar, dass das Schwachsinn ist). Nur was muss ich hier übergeben? Bzw. was muss dann im Konstruktor stehen??

Java:
Student stud1 = new Student("Dampf", "Hans", 1341236, BA);

Vielen Dank!!
 

eRaaaa

Top Contributor
Naja eben dann auch
Code:
Abschluss.BA
Und eben ein Konstruktor der einen Abschluss entgegen nimmt erstellen!
 

Blues

Mitglied
Hm... danke erstmal! :) Dann meckert er aber immer noch 'Symbol nicht gefunden'. Ich poste hier mal die eigentliche Klasse (relevanter Ausschnitt):

Java:
public class student {
	
		private String nachname;
		private String vorname;
		private int matrikelnummer;
		private String studiengang;
		private int fachsemesterzahl;
		public Abschluss abschlussart;
		private boolean studienbeitrag;
		
	public student(String nachname, String vorname, int matrikelnummer, String studiengang){
		
		this.nachname = nachname;
		this.vorname = vorname;
		this.matrikelnummer = matrikelnummer;
		this.studiengang = studiengang;
		fachsemesterzahl = 1;
		abschlussart = Abschluss.OHNE;
		studienbeitrag = false;
	}
	
	public student(String nachname, String vorname, int matrikelnummer, String studiengang, int fachsemesterzahl, boolean studienbeitrag, Abschluss abschluss){
		
		this.nachname = nachname;
		this.vorname = vorname;
		this.matrikelnummer = matrikelnummer;
		this.studiengang = studiengang;
		this.fachsemesterzahl = fachsemesterzahl;
		this.studienbeitrag = studienbeitrag;
		abschluss = abschlussart;

	}

Die Anwendung geht so los (danach kommt anderes Zeug):

Java:
public class studentAW {
	
	public static void main (String[] args)
	
		{
		student student1 = new student("Dampf", "Hans", 1341236, "WI", 3, true, Abschluss.BA);

Irgendwo hakt's, schaut easy aus, komme aber einfach net drauf. ;(
 

eRaaaa

Top Contributor
An welcher Stelle "sagt" er das?
Hier
abschlussart = Abschluss.OHNE;
?
OHNE ist in deinem obigen enum auch nicht definiert ?!
 

Blues

Mitglied
An welcher Stelle "sagt" er das?
Hier
abschlussart = Abschluss.OHNE;
?
OHNE ist in deinem obigen enum auch nicht definiert ?!

Hi,

also in der Anwendungsklasse, Zeile 7:
cannot find symbol Abschluss.DIPLOM

Ja, mal den ersten Konstruktor ausblenden, hatte das gerade geändert. Der zweite wird aufgerufen und bei dem weiß ich nicht genau, wo es hakt.
 

eRaaaa

Top Contributor
Das ist alles so undurchsichtig mal wieder. Oben postest du Code,dann schreibst du, ich soll irgendwas doch ausblenden weil es eig. doch ganz anders ist etc. So kann man nicht helfen...wie sehen jetzt die Klassen aus und wie lautet die genaue Fehlermeldung?
Java:
class student {
    
        private String nachname;
        private String vorname;
        private int matrikelnummer;
        private String studiengang;
        private int fachsemesterzahl;
        public Abschluss abschlussart;
        private boolean studienbeitrag;
        
    public student(String nachname, String vorname, int matrikelnummer, String studiengang){
        
        this.nachname = nachname;
        this.vorname = vorname;
        this.matrikelnummer = matrikelnummer;
        this.studiengang = studiengang;
        fachsemesterzahl = 1;
        abschlussart = Abschluss.OHNE;
        studienbeitrag = false;
    }
    
    public student(String nachname, String vorname, int matrikelnummer, String studiengang, int fachsemesterzahl, boolean studienbeitrag, Abschluss abschluss){
        
        this.nachname = nachname;
        this.vorname = vorname;
        this.matrikelnummer = matrikelnummer;
        this.studiengang = studiengang;
        this.fachsemesterzahl = fachsemesterzahl;
        this.studienbeitrag = studienbeitrag;
        abschluss = abschlussart;
 
    }
    
    public static void main(String[] args) {
    	student student1 = new student("Dampf", "Hans", 1341236, "WI", 3, true, Abschluss.DIPLOM);
	}
}
enum Abschluss{
    BA, MA, DIPLOM, MAGISTER, OHNE
}

geht schließlich ohne Probleme. (Klassennamen aber eig. lieber groß schreiben und wieso machst du abschlussart eig. public?)
 

Blues

Mitglied
Sorry... wenn man denkt, man macht es einfacher, macht man es in Wirklichkeit wohl doch immer komplizierter...
Also ich poste einfach mal beide Klassen komplett:

Java:
public class Student {
	
		private String nachname;
		private String vorname;
		private int matrikelnummer;
		private String studiengang;
		private int fachsemesterzahl;
		private Abschluss abschlussart;
		private boolean studienbeitrag;
		
	public Student(String nachname, String vorname, int matrikelnummer, String studiengang){
		
		this.nachname = nachname;
		this.vorname = vorname;
		this.matrikelnummer = matrikelnummer;
		this.studiengang = studiengang;
		fachsemesterzahl = 1;
		abschlussart = Abschluss.OHNE;
		studienbeitrag = false;
	}
	
	public Student(String nachname, String vorname, int matrikelnummer, String studiengang, int fachsemesterzahl, boolean studienbeitrag, Abschluss abschluss){
		
		this.nachname = nachname;
		this.vorname = vorname;
		this.matrikelnummer = matrikelnummer;
		this.studiengang = studiengang;
		this.fachsemesterzahl = fachsemesterzahl;
		this.studienbeitrag = studienbeitrag;
		abschlussart = abschluss;

	}
	

		
	public String Meldung(){
	
		return "Der neue Student heisst "+vorname+" "+nachname+" und kriegt von uns die Matrikelnummer "+matrikelnummer+" verpasst. Er studiert "+studiengang+" im "+fachsemesterzahl+".Semester und hat den Abschluss "+abschlussart+" gemacht! Aber nur wenn er gezahlt hat!!!!!";
	
	}
	
	public String Meldungersti(){
	
		return "Der neue Student heisst "+vorname+" "+nachname+" und kriegt von uns die Matrikelnummer "+matrikelnummer+" verpasst. Er studiert "+studiengang+" im "+fachsemesterzahl+".Semester und hat bisher "+abschlussart+"! Das wird schon... aber nur wenn er gezahlt hat!!!!!";
	
	}
	
	public String Gezahlt(){
		if (studienbeitrag == true)
			return "Er hat gezahlt... Glueck gehabt!!";
		else
			return "Die Sau hat nicht gezahlt! Vierteilen!";
	}
	
	public enum Abschluss{
		BA, MA, DIPLOM, MAGISTER, OHNE
	}
}

Java:
public class StudentAW {
	
	public static void main (String[] args)
	
		{
		Student student1 = new Student("Dampf", "Hans", 1341236, "WI", 3, true, Abschluss.BA);
		Student student2 = new Student("Clarin", "Cris", 8403986, "BWL", 2, false, Abschluss.DIPLOM);
		Student student3 = new Student("Knopf", "Jim", 1128954, "BWL");

		String daten = student1.Meldung();
		System.out.println(daten);
		System.out.println();
		
		String zahlung1 = student1.Gezahlt();
		System.out.println(zahlung1);
		System.out.println();
		
		String daten2 = student2.Meldung();
		System.out.println(daten2);
		System.out.println();
		
		String zahlung2 = student2.Gezahlt();
		System.out.println(zahlung2);
		System.out.println();
		
		String daten3 = student3.Meldung();
		System.out.println(daten3);
		System.out.println();
		
		String zahlung3 = student3.Gezahlt();
		System.out.println(zahlung3);
		System.out.println();
		}
}

Fehlermeldung:

StudentAW.java:7: error: cannot find symbol
Student student 1 = new Student (....., Abschluss.BA);
 

eRaaaa

Top Contributor
Java:
        Student student1 = new Student("Dampf", "Hans", 1341236, "WI", 3, true, Student.Abschluss.BA);
        Student student2 = new Student("Clarin", "Cris", 8403986, "BWL", 2, false, Student.Abschluss.DIPLOM);

oder das enum als eigenständige Klasse!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
H enum Type Java Basics - Anfänger-Themen 6
F Operatoren Enum aus Textdabei laden Java Basics - Anfänger-Themen 3
P enum: cannot be resolved to a type Java Basics - Anfänger-Themen 2
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
W Enum Konstruktor Type Java Basics - Anfänger-Themen 2
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 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
X enum Fehlermeldung "The public type Day must be defined in its own file" Java Basics - Anfänger-Themen 8
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