# Kardinalität in Java



## Guest (11. Nov 2003)

Ich habe folgendes Problem. Und zwar möchte ich gerne ein UML Diagramm in Java Code umsetzen.
Jedoch scheitere ich an der Umsetzung folgender Kardinalitäten:

0..1 Telefonnummern sind an Stduierende vergeben
Studierende haben 0..* Telefonnummern
* - 0 bis beliebig viele Studierende sind in einer Übungsgruppe
Studierende haben genau 1 Übungsgruppe

Wie kann ich diese Kardinalitäten in den drei Klassen Studierende, Übungsgruppe und Telefonnummer darstellen?


----------



## Mick (11. Nov 2003)

Indem Deine Klasse Student ein Array (List, Vector, ...) mit Telefonnummern und genau ein Feld mit der Übrungsgruppe hat.
Die Klasse Telefonnummer hat ein Array (List, Vector, ...) mit bereits vergebenen Nummern. Vor Vergeben einer Nummer muss geprüft werden, ob sie bereits vergeben wurde.
Und in der Klasse Übungsgruppe hast Du wieder eine Liste von Studenten.


Grüße,
Mick


----------



## Guest (11. Nov 2003)

Und wie könnte ich das ausdrücken wenn gelten soll:
1. 0..1 Studierende haben 0..* Telefonnummern
2. * viele Studenten sind in genau 1 Übungsgruppe

Wie kriege ich diese 2 Aussagen in der Klasse Studierende formal zum laufen?


----------



## Mick (11. Nov 2003)

Anonymous hat gesagt.:
			
		

> Und wie könnte ich das ausdrücken wenn gelten soll:
> 1. 0..1 Studierende haben 0..* Telefonnummern
> 2. * viele Studenten sind in genau 1 Übungsgruppe
> 
> Wie kriege ich diese 2 Aussagen in der Klasse Studierende formal zum laufen?



Hast Du eine Klasse Student (also immer einer) oder eine Klasse Studierende (alle Studenten)? Das mit den Telefonnummern hab ich weiter oben ja schon geschrieben. Das Array hat halt keinen oder einen oder mehrere Einträge.
Und über das Array in der Übungsgruppe bekommst Du, wie viele Studenten drin sind.

Am besten postest Du mal mehr Informationen, welche Klassen Du hast und ob festgeschrieben ist, welche Klassen. Das ist nämlich so sehr weit interpretierbar. Oder den Code, den Du bis jetzt hast.

Grüße,
Mick


----------



## Guest (11. Nov 2003)

Also ich habe eine Klasse Übungsgruppe, eine Klasse Studierende und eine Klasse Telefonnummer.
Mein Code sieht bisher so aus:

```
import java.util.Vector;

public class Studierende
{
	String name;
	int Matrikelnummer;
	Vector Nummern = new Vector();
	Studierende s[] = new Studierende[1];
	Vector teilnehmer = new Vector();
	Übungsgruppe u[] = new Übungsgruppe[1];
}
```


```
public class Telefonnummer
{
	int Vorwahl;
	int Nummer;
	}
```


```
import java.util.Date;

public class Übungsgruppe
{
	String Raum;
	Date Tag;
	}
```


----------



## Mick (11. Nov 2003)

```
public class Studierende
{
	String name;
	int Matrikelnummer;
	Vector Nummern = new Vector();
	Studierende s[] = new Studierende[1];
	Vector teilnehmer = new Vector();
	Übungsgruppe u[] = new Übungsgruppe[1];
}
```
Willst Du hier eine verkettete Liste aufbauen? Sonst verstehe ich das nämlich nicht so ganz. Du legst ein Array von Studierenden an?
Wie halt oben schon gefragt, soll die Klasse einen Studenten darstellen, oder alle Studenten? Sonst könntest Du besser eine Klasse Student mit Name, Matrikelnummer, Tele und besuchte Übungsgruppe anlegen und eine Klasse Studierende, die dann einen Vektor aus Studenten enthält.


```
public class Telefonnummer
{
	int Vorwahl;
	int Nummer;
}
```
Hier würde ich String statt int nehmen, da Telefonnummern auch mal größer als int werden. Wenn es unbedingt Numerale enthalten muss, würde ich long nehmen.


```
public class Übungsgruppe
{
	String Raum;
	Date Tag;
}
```
Hier fehlt dann noch ein Array mit teilnemenden Studenten.


----------

