Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- *
- * @author Knusperpudding
- */
- public class Examples {
- static class Klasse {
- private String bezeichnung;
- private List<Schueler> schueler;
- // Klassenkonstruktor: Es wird die Bezeichnung gesetzt und die Schülerliste initialisiert.
- public Klasse(String bezeichnung) {
- this.bezeichnung = bezeichnung;
- this.schueler = new ArrayList<>();
- }
- /**
- *
- * @return Gibt die Klassenbezeichnung zurück.
- */
- public String getBezeichnung() {
- return bezeichnung;
- }
- /**
- * Fügt einen Schüler einer Klasse hinzu
- *
- * @param schueler hinzuzufügender Schüler
- */
- public void addSchueler(Schueler schueler) {
- // Ist ein Schüler noch keiner Klasse zugewiesen oder befindet er sich in einer anderen Klasse
- if (schueler.getKlasse() == null || !schueler.getKlasse().equals(this)) {
- // Der Schüler wird der neuen Klasse zugewiesen
- this.schueler.add(schueler);
- // Dannach Wird die setKlasse Methode aufgerufen, die ihn aus seiner alten Klasse entfernt und ihm die neue mitteilt
- schueler.setKlasse(this);
- }
- }
- public Schueler getSchueler(int i) {
- return schueler.get(i);
- }
- public List<Schueler> getSchueler() {
- return schueler;
- }
- /**
- * Entfernen eines Schülers aus einer Klasse
- *
- * @param schueler der zu entfernende Schüler
- */
- public void removeSchueler(Schueler schueler) {
- // Der Schüler wird aus der Klasse entfernt
- this.schueler.remove(schueler);
- // Und setKlasse teilt es dem Schüler mit
- schueler.setKlasse(null);
- }
- /**
- * ermittelt einen Schüler anhand von Vorname und nachname
- *
- * @param vorname Vorname des Schülers
- * @param nachname Nachname des Schülers
- * @return Schüler
- */
- public Schueler getSchueler(String vorname, String nachname) {
- for (Schueler schueler : this.schueler) {
- if (schueler.getNachname().equals(nachname) && schueler.getVorname().equals(vorname)) {
- return getSchueler(this.schueler.indexOf(schueler));
- }
- }
- return null;
- }
- ;
- }
- static class Schueler {
- private String vorname;
- private String nachname;
- private Klasse klasse;
- /**
- * Konstruktor setzt Vor und Nachname des Schülers
- *
- * @param vorname
- * @param nachname
- */
- public Schueler(String vorname, String nachname) {
- this.vorname = vorname;
- this.nachname = nachname;
- }
- /**
- * Setzt die Klasse eines Schülers.
- *
- * @param klasse
- */
- public void setKlasse(Klasse klasse) {
- // Ist der Schüler bereits einer Klasse zugewiesen
- if (this.klasse != null) {
- // wird der Schüler in der Klasse ermittelt
- Schueler schueler = this.klasse.getSchueler(this.getVorname(), this.getNachname());
- // Wird er dort gefunden
- if (schueler != null) {
- // Wird er dort entfernt
- this.klasse.removeSchueler(schueler);
- }
- }
- // Ist die neue Klasse eine Klasse und in dieser existiert der Schüler noch nicht
- if (klasse != null && klasse.getSchueler(this.getVorname(), this.getNachname()) == null) {
- // Wird er dort hinzugefügt
- klasse.addSchueler(this);
- }
- // und dem Schüler wird die Klasse mitgeteilt
- this.klasse = klasse;
- }
- public Klasse getKlasse() {
- return this.klasse;
- }
- public String getNachname() {
- return nachname;
- }
- public String getVorname() {
- return vorname;
- }
- }
- public static void main(String[] args) {
- Klasse zehnteKlasse = new Klasse("10A");
- Klasse elfteKlasse = new Klasse("11B");
- Schueler schueler1 = new Schueler("Klaus", "Muster");
- Schueler schueler2 = new Schueler("Klara", "Hampelmann");
- zehnteKlasse.addSchueler(schueler1);
- zehnteKlasse.addSchueler(schueler2);
- System.out.println("Zehnte Klasse: " + zehnteKlasse.getBezeichnung());
- System.out.println("Schüler:");
- for (Schueler schueler : zehnteKlasse.getSchueler()) {
- System.out.println(schueler.getVorname() + " " + schueler.getNachname());
- }
- System.out.println("");
- System.out.println("Elfte Klasse: " + elfteKlasse.getBezeichnung());
- System.out.println("Schüler:");
- for (Schueler schueler : elfteKlasse.getSchueler()) {
- System.out.println(schueler.getVorname() + " " + schueler.getNachname());
- }
- System.out.println("");
- System.out.println("******");
- System.out.println("Schuljahreswechsel");
- System.out.println("******");
- System.out.println("");
- elfteKlasse.addSchueler(schueler1);
- System.out.println("Zehnte Klasse: " + zehnteKlasse.getBezeichnung());
- System.out.println("Schüler:");
- for (Schueler schueler : zehnteKlasse.getSchueler()) {
- System.out.println(schueler.getVorname() + " " + schueler.getNachname());
- }
- System.out.println("");
- System.out.println("Elfte Klasse: " + elfteKlasse.getBezeichnung());
- System.out.println("Schüler:");
- for (Schueler schueler : elfteKlasse.getSchueler()) {
- System.out.println(schueler.getVorname() + " " + schueler.getNachname());
- }
- System.out.println("");
- System.out.println("******");
- System.out.println("Nachträgliche Klassenänderung");
- System.out.println("Klara wird doch in die 11B Versetzt");
- System.out.println("******");
- System.out.println("");
- schueler2.setKlasse(elfteKlasse);
- System.out.println("Zehnte Klasse: " + zehnteKlasse.getBezeichnung());
- System.out.println("Schüler:");
- for (Schueler schueler : zehnteKlasse.getSchueler()) {
- System.out.println(schueler.getVorname() + " " + schueler.getNachname());
- }
- System.out.println("");
- System.out.println("Elfte Klasse: " + elfteKlasse.getBezeichnung());
- System.out.println("Schüler:");
- for (Schueler schueler : elfteKlasse.getSchueler()) {
- System.out.println(schueler.getVorname() + " " + schueler.getNachname());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement