Fehler bei Klassenübergreifende Attribute / Konsturktoren

  • Themenstarter Themenstarter e7w5p0qua6
  • Beginndatum Beginndatum
E

e7w5p0qua6

Gast
Hallo Leute, es gibt folgende Klassen:

Konto:
Java:
package vortraege;

public class Konto {

	private int kontonummer;
	private int konferenzbeitrag;

	public Konto() {
	}

	public Konto(int kontonummer, int konferenzbeitrag) {
		this.kontonummer = kontonummer;
		this.konferenzbeitrag = konferenzbeitrag;
	}

	/**
	 * @return kontonummer
	 */
	public int getKontonummer() {
		return kontonummer;
	}

	/**
	 * @param kontonummer
	 */
	public void setKontonummer(int kontonummer) {
		this.kontonummer = kontonummer;
	}

	/**
	 * @return konferenzbeitrag
	 */
	public int getKonferenzbeitrag() {
		return konferenzbeitrag;
	}

	/**
	 * @param konferenzbeitrag
	 */
	public void setKonferenzbeitrag(int konferenzbeitrag) {
		this.konferenzbeitrag = konferenzbeitrag;
	}
}

Referent:
Java:
package vortraege;

public class Referent {

	private String name;
	private String firma;

	public Referent(){
	}
	
	public Referent(String name, String firma){
		this.name = name;
		this.firma = firma;
	}
	
	/**
	 * @return name
	 */
	public String getName() {
		return name;
	}

	/**
	 * @param name
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * @return the firma
	 */
	public String getFirma() {
		return firma;
	}

	/**
	 * @param firma
	 */
	public void setFirma(String firma) {
		this.firma = firma;
	}
}

Teilnehmer:
Java:
package vortraege;

public class Teilnehmer {

	private String name;
	private String adresse;
	private int kontonummer;
	
	public enum status {
		Mitglied, Nichtmitglied, Schueler
	};

	public Konto konto = new Konto(kontonummer,0);
	private status status;

	public Teilnehmer() {

	}

	public Teilnehmer(String name, String adresse, status stat) {
		this.name = name;
		this.adresse = adresse;
		this.status = stat;
		kontonummer++;
	}

	public void setStatus(status stat) {
		this.status = stat;
	}

	public status getStatus() {
		return status;
	}

	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}

	/**
	 * @param name
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * @return the adresse
	 */
	public String getAdresse() {
		return adresse;
	}

	/**
	 * @param adresse
	 */
	public void setAdresse(String adresse) {
		this.adresse = adresse;
	}
}

Vortrag:
Java:
package vortraege;

public class Vortrag {

	private String bezeichnung;
	Teilnehmer[] teilnehmerliste = new Teilnehmer[100];
	public int anzahl = 0;
	Referent referent = new Referent();
	private String datum;
	private int vortragnummer;

	public Vortrag() {

	}

	public Vortrag(int vortragnummer, String bezeichnung, String datum,
			Referent referent) {

		this.vortragnummer = vortragnummer;
		this.bezeichnung = bezeichnung;
		this.datum = datum;
		this.referent = referent;

	}

	/**
	 * @return the datum
	 */
	public String getDatum() {
		return datum;
	}

	/**
	 * @param datum
	 */
	public void setDatum(String datum) {
		this.datum = datum;
	}

	/**
	 * @return the vortragnummer
	 */
	public int getVortragnummer() {
		return vortragnummer;
	}

	/**
	 * @param vortragnummer
	 */
	public void setVortragnummer(int vortragnummer) {
		this.vortragnummer = vortragnummer;
	}

	public void setReferent(Referent referent) {
		this.referent = referent;
	}

	public String getReferent() {
		return referent.getName();
	}

	public void teilnehmerHinzufuegen(Teilnehmer t1) {
		if (anzahl < 100) {
			teilnehmerliste[anzahl] = t1;
			int gebuehr = t1.konto.getKonferenzbeitrag();
			gebuehr = gebuehr + 25;
			t1.konto.setKonferenzbeitrag(gebuehr);
			anzahl++;
		} else {
			System.out.println("Vortrag ist voll.");
		}
	}

	/**
	 * @return the bezeichnung
	 */
	public String getBezeichnung() {
		return bezeichnung;
	}

	/**
	 * @param name
	 */
	public void setBezeichnung(String bezeichnung) {
		this.bezeichnung = bezeichnung;
	}

	public void ausgabeVortrag() {
		System.out.println("Vortragsnummer: " + this.getVortragnummer());
		System.out.println("Vortragsname: " + this.getBezeichnung());
		System.out.println("Referent: " + this.getReferent());
		System.out.println();
		
		for (int i = 0; i < anzahl; i++) {
			System.out.println("Teilnehmernummer: " + (i + 1));
			System.out.println("Teilnehmername: "
					+ teilnehmerliste[i].getName());
			System.out.println("Teilnehmeradresse: "
					+ teilnehmerliste[i].getAdresse());
			System.out.println("Teilnehmerstatus: "
					+ teilnehmerliste[i].getStatus());
			System.out.println("Kontonummer: " + teilnehmerliste[i].konto.getKontonummer());
			System.out.println("Betrag: " + teilnehmerliste[i].konto.getKonferenzbeitrag());
		}
	}
}

Vortrage_main:
Java:
package vortraege;

import vortraege.Teilnehmer.status;

public class Vortraege_main {

/**
 * 
 * @param args
 */
	public static void main(String[] args) {

		Teilnehmer t1 = new Teilnehmer("Deussen","Neuss",status.Schueler);
		Teilnehmer t2 = new Teilnehmer("Kaechele","Leverkusen",status.Schueler);
		Teilnehmer t3 = new Teilnehmer("Klinkhammer","Leverkusen",status.Schueler);
		Teilnehmer t4 = new Teilnehmer("Fischenich","Köln",status.Schueler);
		
		Vortrag v1 = new Vortrag();
		v1.setVortragnummer(1001);
		v1.setBezeichnung("TE_IT_Projekt");
		v1.setDatum("22.02.2011");
		Referent ref1 = new Referent();
		v1.setReferent(ref1);
		v1.teilnehmerHinzufuegen(t1);
		v1.teilnehmerHinzufuegen(t2);
		v1.teilnehmerHinzufuegen(t3);
		v1.teilnehmerHinzufuegen(t4);
		v1.ausgabeVortrag();
		
		Referent mich = new Referent();
		mich.setName("Michalski");
		mich.setFirma("berufskolleg Leverkusen");
		Vortrag v2 = new Vortrag(1002,"TE_IT","22.02.2011",mich);
		v2.teilnehmerHinzufuegen(t3);
		v2.teilnehmerHinzufuegen(t1);
		v2.teilnehmerHinzufuegen(t2);
		v2.ausgabeVortrag();
	}

}

Wenn ich das Programm nun auführe, habe alle Teilnehmer die Kontonummer 0
Und der Referent bekommt erst beim Zweiten Vortrag einen Namen zugewiesen.
Beim ersten hat der String den Wert "null".
Woran liegen diese 2 Fehler? Ich steh grad echt was auf dem Schlauch...

DANKE FÜR EURE HILFE
 
Wenn ich das Programm nun auführe, habe alle Teilnehmer die Kontonummer 0
[c]
private int kontonummer;[/c]

[c]public Konto konto = new Konto(kontonummer,0);[/c]

int kontonummer ist 0 dann ist bei new Konto(kontonummer,0); kontonummer auch 0

Und der Referent bekommt erst beim Zweiten Vortrag einen Namen zugewiesen.
Weil du ihm erst beim zweiten Vortrag einen Namen zuweist?!
[c]mich.setName("Michalski");[/c]
 
Zuletzt bearbeitet:
Erstmal danke für die Hilfe!
Das mit dem Referenten war echt blöd.
Habe aber den ganzen Tag mit Java gearbeitet und sehe grad den Wald vor lauter Bäumen nicht mehr.

Trotzdem habe ich noch das Problem mit der Kontonummer und steige einfach nicht hinter.
Wäre super wenn mir jemand sagen könnte, wo exakt das Problem liegt.
Ansonsten werde ich heute noch verzweifeln^^

Hier nochmal der aktuelle Code:

Konto:
Java:
package vortraege;

/**
 * 
 * @author Marvin Fischenich
 * @version 22.02.2011
 *
 */
public class Konto {

	/**
	 * 
	 * initialisieren und deklarieren der Variablen
	 * 
	 */
	private int kontonummer = 1000000;
	private int konferenzbetrag;

	/**
	 * 
	 * leerer Konstruktor
	 * 
	 */
	public Konto() {
	}

	/**
	 * übergibt Konto die Kontonummer und den Konferenzbetrag
	 * 
	 * @param kontonummer
	 * @param konferenzbetrag
	 * 
	 */
	public Konto(int kontonummer, int konferenzbetrag) {
		this.kontonummer = kontonummer;
		kontonummer++;
		this.konferenzbetrag = konferenzbetrag;
	}

	/**
	 * 
	 * @return kontonummer
	 * 
	 */
	public int getKontonummer() {
		return kontonummer;
	}

	/**
	 * 
	 * @param kontonummer
	 * 
	 */
	public void setKontonummer(int kontonummer) {
		this.kontonummer = kontonummer;
	}

	/**
	 * 
	 * @return konferenzbetrag
	 * 
	 */
	public int getKonferenzbetrag() {
		return konferenzbetrag;
	}

	/**
	 * 
	 * @param konferenzbetrag
	 * 
	 */
	public void setKonferenzbetrag(int konferenzbetrag) {
		this.konferenzbetrag = konferenzbetrag;
	}
}

Referent:
Java:
package vortraege;

/**
 * 
 * @author Marvin Fischenich
 * @version 22.02.2011
 *
 */
public class Referent {

	/**
	 * 
	 * initialisieren und deklarieren der Viariablen
	 * 
	 */
	private String name;
	private String firma;

	/**
	 * 
	 * lerrer Konstruktor
	 * 
	 */
	public Referent(){
	}
	
	/**
	 * 
	 * übergibt name und firma an Referent
	 * 
	 * @param name
	 * @param firma
	 * 
	 */
	public Referent(String name, String firma){
		this.name = name;
		this.firma = firma;
	}
	
	/**
	 * 
	 * @return name
	 * 
	 */
	public String getName() {
		return name;
	}

	/**
	 * 
	 * @param name
	 * 
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * 
	 * @return firma
	 * 
	 */
	public String getFirma() {
		return firma;
	}

	/**
	 * 
	 * @param firma
	 * 
	 */
	public void setFirma(String firma) {
		this.firma = firma;
	}
}

Teilnehmer:
Java:
package vortraege;

/**
 * 
 * @author Marvin Fischenich
 * @version 22.02.2011
 *
 */
public class Teilnehmer {

	
	/**
	 * 
	 * initialisieren und deklarieren der Variablen
	 * 
	 */
	private String name;
	private String adresse;
	private int kontonummer;
	
	/**
	 * 
	 * erzeugt die Variable status
	 * status kann die Werte "Mitglied", "Nichtmitglied" und "Schueler" annehmen
	 *
	 */
	public enum status {
		Mitglied, Nichtmitglied, Schueler
	};

	/**
	 * 
	 * 
	 * 
	 */
	public Konto konto = new Konto();
	private status status;

	/**
	 * 
	 * lerrer Konstruktor
	 * 
	 */
	public Teilnehmer() {
	}

	/**
	 * 
	 * übergibt name, adresse und stat an Teilnehmer 
	 * 
	 * @param name
	 * @param adresse
	 * @param stat
	 * 
	 */
	public Teilnehmer(String name, String adresse, status status) {
		this.name = name;
		this.adresse = adresse;
		this.status = status;
		kontonummer++;
	}

	/**
	 * 
	 * @param stat
	 * 
	 */
	public void setStatus(status status) {
		this.status = status;
	}

	/**
	 * 
	 * @return status
	 * 
	 */
	public status getStatus() {
		return status;
	}

	/**
	 * 
	 * @return name
	 * 
	 */
	public String getName() {
		return name;
	}

	/**
	 * 
	 * @param name
	 * 
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * 
	 * @return adresse
	 * 
	 */
	public String getAdresse() {
		return adresse;
	}

	/**
	 * 
	 * @param adresse
	 * 
	 */
	public void setAdresse(String adresse) {
		this.adresse = adresse;
	}
}

Vortrag:
Java:
package vortraege;

/**
 * 
 * @author Marvin Fischenich
 * @version 22.02.2011
 *
 */
public class Vortrag {

	/**
	 * 
	 * initialisieren und deklarieren der Variablen
	 * 
	 */
	private String bezeichnung;
	Teilnehmer[] teilnehmerliste = new Teilnehmer[100];
	public int anzahl = 0;
	Referent referent = new Referent();
	private String datum;
	private int vortragnummer;

	/**
	 * 
	 * leerer Konstruktor
	 * 
	 */
	public Vortrag() {
	}

	/**
	 * 
	 * übergibt votragsnummer, bezeichnung, datum, referent an Vortrag
	 * 
	 * @param vortragnummer
	 * @param bezeichnung
	 * @param datum
	 * @param referent
	 * 
	 */
	public Vortrag(int vortragnummer, String bezeichnung, String datum,	Referent referent) {

		this.vortragnummer = vortragnummer;
		this.bezeichnung = bezeichnung;
		this.datum = datum;
		this.referent = referent;

	}

	/**
	 * 
	 * @return datum
	 * 
	 */
	public String getDatum() {
		return datum;
	}

	/**
	 * 
	 * @param datum
	 * 
	 */
	public void setDatum(String datum) {
		this.datum = datum;
	}

	/**
	 * 
	 * @return  vortragnummer
	 * 
	 */
	public int getVortragnummer() {
		return vortragnummer;
	}

	/**
	 * 
	 * @param vortragnummer
	 * 
	 */
	public void setVortragnummer(int vortragnummer) {
		this.vortragnummer = vortragnummer;
	}
	
/**
 *
 * @param referent
 * 
 */
	public void setReferent(Referent referent) {
		this.referent = referent;
	}

	/**
	 * 
	 * @return
	 * 
	 */
	public String getReferent() {
		return referent.getName();
	}
	
/**
 * prüft ob es mehr als 100 Teilnehmer für einen Vortrag gibt
 * wenn ja, kommt die passende Fehlermeldung
 * wenn nein, wird der Teilnehmer dem Vortrag zugewiesen
 * @param teilnehmer1
 * 
 */
	public void teilnehmerHinzufuegen(Teilnehmer teilnehmer1) {
		if (anzahl <= 100) {
			teilnehmerliste[anzahl] = teilnehmer1;
			int gebuehr = teilnehmer1.konto.getKonferenzbetrag();
			gebuehr = gebuehr + 25;
			teilnehmer1.konto.setKonferenzbetrag(gebuehr);
			anzahl++;
		} else {
			System.out.println("Maximale Teilnehmerzahl bereits erreicht!");
		}
	}

	/**
	 * 
	 * @return bezeichnung
	 * 
	 */
	public String getBezeichnung() {
		return bezeichnung;
	}

	/**
	 * 
	 * @param name
	 * 
	 */
	public void setBezeichnung(String bezeichnung) {
		this.bezeichnung = bezeichnung;
	}
	
/**
 * 
 * Gibt den Vortrag inkl. dessen Attributen + Referent + Teilnehmer aus
 * 
 */
	public void ausgabeVortrag() {
		System.out.println();
		System.out.println("____________________________________________");
		System.out.println("Vortragsnummer: " + this.getVortragnummer());
		System.out.println("Vortragsname: " + this.getBezeichnung());
		System.out.println("Referent: " + this.getReferent());
		System.out.println();
		
		for (int i = 0; i < anzahl; i++) {
			System.out.println("Teilnehmernummer: " + (i + 1));
			System.out.println("Teilnehmername: " + teilnehmerliste[i].getName());
			System.out.println("Teilnehmeradresse: " + teilnehmerliste[i].getAdresse());
			System.out.println("Teilnehmerstatus: " + teilnehmerliste[i].getStatus());
			System.out.println("Kontonummer: " + teilnehmerliste[i].konto.getKontonummer());
			System.out.println("Betrag: " + teilnehmerliste[i].konto.getKonferenzbetrag());
			System.out.println();
		}
	}
}

Die main:
Java:
package vortraege;

/**
 * 
 * @author Marvin Fischenich
 * @version 22.02.2011
 *
 */
public class Vortrag {

	/**
	 * 
	 * initialisieren und deklarieren der Variablen
	 * 
	 */
	private String bezeichnung;
	Teilnehmer[] teilnehmerliste = new Teilnehmer[100];
	public int anzahl = 0;
	Referent referent = new Referent();
	private String datum;
	private int vortragnummer;

	/**
	 * 
	 * leerer Konstruktor
	 * 
	 */
	public Vortrag() {
	}

	/**
	 * 
	 * übergibt votragsnummer, bezeichnung, datum, referent an Vortrag
	 * 
	 * @param vortragnummer
	 * @param bezeichnung
	 * @param datum
	 * @param referent
	 * 
	 */
	public Vortrag(int vortragnummer, String bezeichnung, String datum,	Referent referent) {

		this.vortragnummer = vortragnummer;
		this.bezeichnung = bezeichnung;
		this.datum = datum;
		this.referent = referent;

	}

	/**
	 * 
	 * @return datum
	 * 
	 */
	public String getDatum() {
		return datum;
	}

	/**
	 * 
	 * @param datum
	 * 
	 */
	public void setDatum(String datum) {
		this.datum = datum;
	}

	/**
	 * 
	 * @return  vortragnummer
	 * 
	 */
	public int getVortragnummer() {
		return vortragnummer;
	}

	/**
	 * 
	 * @param vortragnummer
	 * 
	 */
	public void setVortragnummer(int vortragnummer) {
		this.vortragnummer = vortragnummer;
	}
	
/**
 *
 * @param referent
 * 
 */
	public void setReferent(Referent referent) {
		this.referent = referent;
	}

	/**
	 * 
	 * @return
	 * 
	 */
	public String getReferent() {
		return referent.getName();
	}
	
/**
 * prüft ob es mehr als 100 Teilnehmer für einen Vortrag gibt
 * wenn ja, kommt die passende Fehlermeldung
 * wenn nein, wird der Teilnehmer dem Vortrag zugewiesen
 * @param teilnehmer1
 * 
 */
	public void teilnehmerHinzufuegen(Teilnehmer teilnehmer1) {
		if (anzahl <= 100) {
			teilnehmerliste[anzahl] = teilnehmer1;
			int gebuehr = teilnehmer1.konto.getKonferenzbetrag();
			gebuehr = gebuehr + 25;
			teilnehmer1.konto.setKonferenzbetrag(gebuehr);
			anzahl++;
		} else {
			System.out.println("Maximale Teilnehmerzahl bereits erreicht!");
		}
	}

	/**
	 * 
	 * @return bezeichnung
	 * 
	 */
	public String getBezeichnung() {
		return bezeichnung;
	}

	/**
	 * 
	 * @param name
	 * 
	 */
	public void setBezeichnung(String bezeichnung) {
		this.bezeichnung = bezeichnung;
	}
	
/**
 * 
 * Gibt den Vortrag inkl. dessen Attributen + Referent + Teilnehmer aus
 * 
 */
	public void ausgabeVortrag() {
		System.out.println();
		System.out.println("____________________________________________");
		System.out.println("Vortragsnummer: " + this.getVortragnummer());
		System.out.println("Vortragsname: " + this.getBezeichnung());
		System.out.println("Referent: " + this.getReferent());
		System.out.println();
		
		for (int i = 0; i < anzahl; i++) {
			System.out.println("Teilnehmernummer: " + (i + 1));
			System.out.println("Teilnehmername: " + teilnehmerliste[i].getName());
			System.out.println("Teilnehmeradresse: " + teilnehmerliste[i].getAdresse());
			System.out.println("Teilnehmerstatus: " + teilnehmerliste[i].getStatus());
			System.out.println("Kontonummer: " + teilnehmerliste[i].konto.getKontonummer());
			System.out.println("Betrag: " + teilnehmerliste[i].konto.getKonferenzbetrag());
			System.out.println();
		}
	}
}

Das die Kommentierungen noch nicht 100% sind weiß ich!
Ich möchte aber erstmal das Programm zum Laufen bekommen.

UND NOCHMALS DANKE!!
 

Neue Themen


Zurück
Oben