Vererbung Kleine Hilfe bei einer aufgabe

QuiXotiK

Mitglied
hey liebes java-forum,
ich hab da ein kleines problemchen bei einer meiner aufgaben.

ich habe folgendes uml erhalten:
vpfl.jpg

dazu sollen folgende kriterien erfüllt werden:
3.1. Angaben des Kunden
 Der Sportverein hat einen Namen und eine zugewiesene Vereinsnummer
 Der Sportverein hat eine Postadresse (Straße, Hausnummer, PLZ, Ort), an die alle Briefe und Pakete (auch die der Abteilungen) gesendet werden
 Der Sportverein hat mehrere Abteilungen
 Jede Abteilung hat zusätzlich einen Namen (der sich aus der Sportart ergibt) und einen Abteilungsleiter
 Der Sportverein hat maximal 100 Mitglieder
 Jedes Mitglied kann in zu mehreren Abteilungen gehören (z.B. Fußball und Tischtennis)
 Jedes Mitglied hat einen Namen, einen Vornamen und eine eindeutige, fortlaufende Mitgliedsnummer im Verein
3.2. Anforderungen an das
Programm
o Ein weiterer Sportverein kann nur durch Angabe des Namens und der Nummer erstellt werden
o Die aktuelle Anzahl an Mitgliedern des Vereins (fortlaufende Nummer) soll abrufbar sein
o Die Adresse des Sportvereins soll nur komplett (Straße, Hausnummer, PLZ, Ort) angezeigt werden
o Der Abteilungsleiter kann auch nach Erstellung der Abteilung eingetragen werden
o Die Mitglieder sollen innerhalb der Abteilungen gespeichert werden
o Innerhalb der Abteilungen sollen die Mitglieder ausgegeben werden können

an sich habe ich keine probleme mit solchen aufgaben jedoch ist hier iwie etwas faul.
hier mein derzeitiger stand:
Java:
package sportverein;

public class Sportverein {
	private String name;
	private int nummer;
	private static byte anzahlMitglieder;
	private String strasse_hnr;
	private short plz;
	private String ort;

	public Sportverein(String name, int nummer) {
		this.name = name;
		this.nummer = nummer;
	}

	public void setAdresse(String s, short p, String o) {
		strasse_hnr = s;
		plz = p;
		ort = o;
	}

	public void showAdresse() {
		System.out.println(strasse_hnr);
		System.out.println(plz + " " + ort);
	}

	public byte getAnzahlMitglieder() {
		return anzahlMitglieder;
	}
}
Java:
package sportverein;

public class Abteilung extends Sportverein {
	private String name;
	private String leiter;
	private Mitglied[] abteilungsliste = new Mitglied[100];

	public Abteilung() {
	}

	public Abteilung(String name, String leiter) {

	}

	public void setLeiter(String leiter) {
		this.leiter = leiter;
	}

	public String getLeiter() {
		return leiter;
	}

	public void setMitglied(Mitglied m) {
		int emptyField = 0;
		for (int i = 0; i < abteilungsliste.length
				&& abteilungsliste[i] != null; i++) {
			emptyField++;
		}
		if (emptyField < 100) {
			abteilungsliste[emptyField] = m;
		} else {
			System.out.println("Abteilung voll!");
		}

	}

	public void showMitglieder() {
		for (int i = 0; i < abteilungsliste.length; i++) {
			abteilungsliste[i].showName();
		}
	}
}
Java:
package sportverein;

public class Mitglied {
	private String name;
	private String vorname;
	private byte mitgliedsnummer;

	public Mitglied() {
	}

	public Mitglied(String name, String vorname) {
		this.name = name;
		this.vorname = vorname;
	}
	
	public void showName(){
		System.out.println(vorname + " " + name);
	}
	public byte getMitgliedsnummer(){
		return mitgliedsnummer;
	}
}
ich weiß nicht wie ich es realisieren soll dass beim erstellen eines Mitgliedsobjekt der anzahlMitglieder der Sportvereinklasse incrementiert wird.
Außerdem stehe ich grade aufm schlauch wie ich den konstruktur der Abteilungsklasse erstelle. immerhin muss innerhalb des konstruktors der konstruktor der oberklasse aufgerufen werden, da ich aber dafür name und nummer brauche ist hier iwie der wurm drinne.

wenn ich mich nicht strikt an das umldiagram halten müsste wüsste ich einige wege wie die lösen würde aber das ist halt eben NICHT gestattet.. hoffe ihr könnt ein wenig helfen ;)
 

knilch

Bekanntes Mitglied
Hi,

Zum ersten Punkt: ich weiß nicht wie ich es realisieren soll dass beim erstellen eines Mitgliedsobjekt der anzahlMitglieder der Sportvereinklasse incrementiert wird.

Du kannst in der Klasse Abteilung einen Counter setzten. In der Methode
Java:
    public void setMitglied(Mitglied m) { ... }
inkrementierst du diesen Counter

in etwa so:
Java:
private int count = 0;
....

    public void setMitglied(Mitglied m) {
    	count ++;
        for (int i = 0; i < abteilungsliste.length
                && abteilungsliste[i] != null; i++) {
            emptyField++;
        }
        if (emptyField < 100) {
            abteilungsliste[emptyField] = m;
        } else {
            System.out.println("Abteilung voll!");
        }
 
    }
Um dann für jede Abteiling die Mitgliederanzahl korrekt zurück zu geben, überschreibst du in der Klasse Abteilung die Methode showMitglieder() , die du in der Klasse Sportverein() definiert hast.

Java:
	@Override 
        public byte getAnzahlMitglieder() {
		return ((byte) count );
	}

Wenn Du eine weitere Methode implementierst, die ein Mitglied aus einer Abteilung entfernst, kannst du dann den counter dekrementieren. So stimmt die Anzahl der Mitglieder beim Entferen und Hinzufügen...

Zu Punkt 2:
... immerhin muss innerhalb des konstruktors der konstruktor der oberklasse aufgerufen werden, da ich aber dafür name und nummer brauche ist hier iwie der wurm drinne.

In der Klasse Abteilung muss der Constructor geändert werden:
Java:
	public Abteilung(String name, int nummer) {
		super(name, nummer);
	}
Damit wird der Constructor der Klasse Sportverein() aufgerufen.

Gruss

Kilch
 
Zuletzt bearbeitet:

MrClave

Bekanntes Mitglied
Den Konstruktor der Super-Klasse aktivierst du über das super Keyword.

Java:
super( String, int );

Für den leeren Konstruktor der Abteilungsklasse, kannst du einfach

Java:
super( "", 0 );

verwenden.

Tja, ohne Mutator kannst du an der Mitgliederanzahl nichts rütteln. Da hilft auch Vererbung nicht.
Entweder protected/public machen, oder eine Methode erstellen.
Eine andere Lösung sehe ich gerade auch nicht.
 

ZebaX

Mitglied
Die Vergebung ist nicht wirklich sinnig.... Vererbung sollte man nach dem "is a" Prinzip gestalten und abteilung ist kein sportverein... das ist nen "has a" also nix mit Vergebung sondern als membervariable halten und in dem Fall einfach in ein hashSet packen. In die sportverein gehört die addAbteilung und in Abteilung die addMitgliedr und schon kann man überall drauf zugreifen....... wer gibt euch den solch ein uml
 

MrClave

Bekanntes Mitglied
Die Vergebung ist nicht wirklich sinnig.... Vererbung sollte man nach dem "is a" Prinzip gestalten und abteilung ist kein sportverein... das ist nen "has a" also nix mit Vergebung sondern als membervariable halten und in dem Fall einfach in ein hashSet packen. In die sportverein gehört die addAbteilung und in Abteilung die addMitgliedr und schon kann man überall drauf zugreifen....... wer gibt euch den solch ein uml

Offenbar die Schule.
Dass das UML Diagram unsinn ist, steht außer Frage.
Die Aufgabe ist aber klar definiert und sollte auch möglichst so gelöst werden.

Wenn man es ordentlich machen will, müsste man so einige Dinge ändern.
Das ist aber nicht der Ausgangspunkt der Aufgabe.

P.S. Ich glaube nicht, dass Klassen sind gegenseitig "Vergeben" müssen :p
 

QuiXotiK

Mitglied
in der tat, die schule hat mir diese aufgabe gegeben.
@knilch: 1. es ging mir eher hierum: "Die aktuelle Anzahl an Mitgliedern des Vereins (fortlaufende Nummer) soll abrufbar sein"
so wie ich es verstehe soll die gesamtzahl der mitglieder ausgegeben werden. in der klasse Sportverein gibt es eine klassenvariable anzahlMitglieder undb diese wollte ich beim erstellen eines neuen mitglieds um 1 erhöhen. auf deine weise wird mir aber die anzahl der mitglieder in der abteilung ausgegeben.

2. so ganz passt das doch nicht.. denn wenn ich über abteilung den konstruktor des sportvereins aufrufe ist es ja für mich möglich die die adresse unabhängig vom sportverein zu ändern. die aufgaben stellung sagt aber dass der sportverein DIE adresse für jede abteilung hat.

zebax hat hier gut aufn punkt gebracht

da werd ich wohl den lehrer aufsuchen müssen und fragen.

trotzdem danke für die hilfe
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Kleine Hilfe beim Schreiben eines Programmes benötigt :D Java Basics - Anfänger-Themen 40
E Kleine Hilfe für einen Einsteiger Java Basics - Anfänger-Themen 18
H Suche jemanden für kleine Uni-Abgabe/ mit Vergütung Java Basics - Anfänger-Themen 1
P eine kleine Aufgabe mit Audio Java Basics - Anfänger-Themen 1
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5
B Scanner-If/else kleine Abhebungs-Simulation Java Basics - Anfänger-Themen 3
J Kleine Frage zu OOP Java Basics - Anfänger-Themen 371
M Welches Framework für kleine WebApp nutzen? Java Basics - Anfänger-Themen 6
D Kleine Probleme mit Split-Befehlen Java Basics - Anfänger-Themen 5
O Datei in mehrere kleine Dateien umwandeln Java Basics - Anfänger-Themen 47
CptK Interface Kleine Kreise in großem Kreis anordnen Java Basics - Anfänger-Themen 3
CT9288 Kleine Simulation programmieren, denkanstöße erbeten Java Basics - Anfänger-Themen 19
S Kleine Frage zu Threads Java Basics - Anfänger-Themen 3
T Klassen Kleine Übung zum Thema Klassen Java Basics - Anfänger-Themen 3
O Kleine Frage zu Iterator und Iterable Java Basics - Anfänger-Themen 6
O Kleine Frage zu cast Java Basics - Anfänger-Themen 3
U DOM Parser, kleine Frage Java Basics - Anfänger-Themen 29
N BierSpiel von "Kopf bis Fuss" eigener Code...kleine Problemstellung. Java Basics - Anfänger-Themen 11
Anfänger2011 2 kleine Fragen zu ArrayListen Java Basics - Anfänger-Themen 5
TheSorm Kleine Speicher Klasse Java Basics - Anfänger-Themen 24
F Speicherlast mehrere GB durch kleine png files? Java Basics - Anfänger-Themen 1
T Kleine Anfängerfrage :) Java Basics - Anfänger-Themen 4
T Kleine Klausurfragen Java Basics - Anfänger-Themen 17
T viele "kleine" Fragen... Java Basics - Anfänger-Themen 3
DStrohma Best Practice Hibernate für kleine Anwendung nutzen? Java Basics - Anfänger-Themen 4
O Konsole - Kleine Frage Java Basics - Anfänger-Themen 22
N kleine get-Methode anhand einer Aufgabenstellung Java Basics - Anfänger-Themen 13
D Kleine Rechenregel... ++a Java Basics - Anfänger-Themen 4
ScottGambler Kleine Frage Java Basics - Anfänger-Themen 13
M Erste Schritte 2 Kleine Programme Java Basics - Anfänger-Themen 27
T Kleine Frage Java Basics - Anfänger-Themen 2
B Kleine Erklärung zu einer Codezeile benötigt Java Basics - Anfänger-Themen 5
A Java Flächeninhaltsberechnung kleine Frage Java Basics - Anfänger-Themen 8
H Datei in kleine Stücke teilen und wieder erkennen Java Basics - Anfänger-Themen 10
P eigene kleine Datenverwaltung Java Basics - Anfänger-Themen 5
K Erste Schritte Kleine Verständnisfrage Java Basics - Anfänger-Themen 12
S Erste Schritte Zwei kleine Fragen zu [], int und Konstruktor Java Basics - Anfänger-Themen 3
S Erste Schritte Kleine Problem mit Ausgabe in eine Datei Java Basics - Anfänger-Themen 11
G Kleine Java Programme aus Main Java Programm starten..... Java Basics - Anfänger-Themen 3
R Sehr kleine doubles nicht in Exponentialdarstellung ausgeben Java Basics - Anfänger-Themen 3
H Datenbank suche in kleine Schritte Java Basics - Anfänger-Themen 6
O kleine SwingFrame Java Basics - Anfänger-Themen 3
T Kleine Frage zu Collections Java Basics - Anfänger-Themen 3
J BlueJ! 2 kleine Fragen zum Spiel. Java Basics - Anfänger-Themen 3
J Kleine Datenbank programmieren Java Basics - Anfänger-Themen 2
J Eigene kleine Datenbank programmieren Java Basics - Anfänger-Themen 2
H Warum funktioniert diese kleine Methode nicht? Java Basics - Anfänger-Themen 8
Luk10 Dateipfad beim Laden einer Datei + Neue kleine Frage! Java Basics - Anfänger-Themen 11
U actionListener - eine Kleine Frage Java Basics - Anfänger-Themen 7
M kleine Verständisfrage zur Klassenhierarchie, speziel JMenuItem Java Basics - Anfänger-Themen 8
J Kleine Frage zu Methoden & OOP Java Basics - Anfänger-Themen 4
B Paar kleine Grundsatzfragen zu Java Java Basics - Anfänger-Themen 5
M kleine und einfache Verständnisfrage Java Basics - Anfänger-Themen 3
S 2 kleine Methoden negieren und print Java Basics - Anfänger-Themen 8
J if und kleine double Werte Java Basics - Anfänger-Themen 7
H kleine zwischenfrage string Java Basics - Anfänger-Themen 3
ModellbahnerTT Kleine Frage zu doppelten Arrays Java Basics - Anfänger-Themen 3
Y Kleine Verständnisfrage zum Thema dynamische Polymorphie Java Basics - Anfänger-Themen 3
M Kleine Konsole mit Threads + KeyAdapter Java Basics - Anfänger-Themen 6
hdi Kleine Design/Convention Frage zu Konstruktoren Java Basics - Anfänger-Themen 4
hdi kleine Verständnisfrage lokale + Member Variable Java Basics - Anfänger-Themen 10
R Kleine Frage zu Array Java Basics - Anfänger-Themen 2
B kleine Probleme beim auslesen einer m3u Datei Java Basics - Anfänger-Themen 3
G eine kleine verwaltung Java Basics - Anfänger-Themen 2
M Eine kleine Frage bzw kleine Theorie frage String[arg] Java Basics - Anfänger-Themen 6
Povlsen84 Initlialisierung, Vector, serialVersionUID . kleine Fragen Java Basics - Anfänger-Themen 4
M Kleine Anfängerfrage Java Basics - Anfänger-Themen 10
D kleine Passwortabfrage erstellen incl. Method zum verändern Java Basics - Anfänger-Themen 7
G jFTP - kleine Fragen Java Basics - Anfänger-Themen 2
P Eine kleine Frage. Java Basics - Anfänger-Themen 4
M kleine sql abfrage Frage Java Basics - Anfänger-Themen 5
K Kleine Fragen über Arrays Java Basics - Anfänger-Themen 8
Z kleine frage zu: Runtime.getRuntime().exec("cmd /c) Java Basics - Anfänger-Themen 3
M Zufallszahl - kleine Frage Java Basics - Anfänger-Themen 4
K Hallo, Ich suche kleine Java Program-Aufgaben zum üben ? Java Basics - Anfänger-Themen 4
S kleine suche Java Basics - Anfänger-Themen 9
D kleine spielerei mit swing Java Basics - Anfänger-Themen 5
A Kleine Tabelle . Java Basics - Anfänger-Themen 8
U kleine datenbank Java Basics - Anfänger-Themen 86
G kleine Frage Java Basics - Anfänger-Themen 4
Q Wie kann man eine kleine pause im Programm machen? Java Basics - Anfänger-Themen 13
J Kleine Connection Frage Java Basics - Anfänger-Themen 4
J kleine java aufgabe: ausgabe von sternchen Java Basics - Anfänger-Themen 20
P kleine db-aufgabe läuft nur suboptimal Java Basics - Anfänger-Themen 8
S ein paar kleine Fragen Java Basics - Anfänger-Themen 4
M Kleine Frage zu If-Bedingung Java Basics - Anfänger-Themen 4
X Kleine Frage: Split Java Basics - Anfänger-Themen 13
G sehr kleine Dezimalzahlen (BigDecimal) falsch angezeigt Java Basics - Anfänger-Themen 5
G Eigene kleine Sprache entwickeln Java Basics - Anfänger-Themen 6
T Kleine Verständnissfrage Java Basics - Anfänger-Themen 7
J Große *.Text Datei zum verschicken in viele kleine Java Basics - Anfänger-Themen 7
A Noch ne kleine Beanshell Frage Java Basics - Anfänger-Themen 7
B eine kleine leichte aufgabe mit einem stack programmieren Java Basics - Anfänger-Themen 2
A Kleine Anfängerfragen u.a.: Kann man Random "speichern& Java Basics - Anfänger-Themen 6
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
E Hilfe bei rekursiver Funktion Java Basics - Anfänger-Themen 3
H pdf stempel - Hilfe erbeten Java Basics - Anfänger-Themen 6
KogoroMori21 Wann ist der richtige Zeitpunkt, um sich Hilfe zu suchen? (Bin Informatik-Student) Java Basics - Anfänger-Themen 10
A Hilfe beim Lesen von Pfaden und Systemvariablen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben