Klasse: Unterschied zwischen den Versionen

Aus FLBK-Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 230: Zeile 230:
}
}
</syntaxhighlight>
</syntaxhighlight>
[[Kategorie:Informatik]]
[[Kategorie:AHR_I_Informatik_LK]]
[[Kategorie:FI_I_SDM]]

Version vom 6. September 2025, 10:44 Uhr

Einführung

Klassen sind das wichtigste Merkmal objektorientierter Programmiersprachen. Unter einer Klasse versteht man in der objektorientierten Programmierung ein abstraktes Modell bzw. einen Bauplan für eine Reihe von ähnlichen Objekten.

Die Klasse dient als Bauplan für die Abbildung von realen Objekten in Objekte in der Programmierung und beschreibt Attribute (Eigenschaften) und Methoden (Verhaltensweisen) der Objekte. Jedes Objekt ist ein Exemplar einer Klasse.

Welche Eigenschaften und welches Verhalten eine Klasse tatsächlich besitzen soll, wird in der Analyse- und Designphase festgelegt. Die Attribute eines Objekts definieren die Zustände und sie werden durch Variablen implementiert. Methoden definieren das Verhalten einer Klasse. Der Anfangszustand einer Klasse wird durch einen Konstruktor definiert. Er legt konkrete Startwerte für Variablen fest. Eine Klasse definiert im Wesentlichen also drei Dinge:

Um bereits realisierte Funktionalität wiederzuverwenden, gibt es zwei Möglichkeiten. Eine Klasse kann zusätzliche Eigenschaften und weiteres Verhalten von einer Vater-Klasse erben (http://openbook.galileocomputing.de/javainsel/javainsel_03_001.html#dodtp394ff2f8-9134-4eb3-a6b4-469ed4572a74). Funktionalität kann in Form von bereits realisierten Bibliotheken bzw. Klassen importiert werden.

Die Klasse, Attribute, Methoden und Konstruktoren können mit Kommentaren versehen werden. Sie haben auf den Programmablauf keinen Einfluss. Sie dienen nur der Erläuterung und erleichtern das Verständnis. Klassen stehen nie für sich allein. Sie sind immer in einem Projekt gebündelt.

Aufbau

Bei der Programmierung einer Java-Klasse müssen syntaktische Regeln eingehalten werden, damit der Compiler den Quellcode erfolgreich übersetzten kann.

Import

Sollen Klassen anderer Bibliotheken importiert werden, benötigt man ein

Import Statement.

import Bibliothekspfad.Klassenname;

Kopf

Eine Klasse benötigt einen Kopf. Der Kopf besteht aus folgenden Angaben:

1. Sichtbarkeit

Mögliche Sichtbarkeiten sind public, private oder protected.

2. Schlüsselwort class

3. Name der Klasse. Er muss immer mit einem großen Anfangsbuchstaben beginnen

4. Gegebenenfalls weitere Schlüsselwörter wie implements oder extends

Optional können im Kopf noch die Schlüsselwörter extends für Vererbung und implements für Interfaces aufgeführt werden. Zudem können Klassen mit dem Schlüsselwort import und dem Bibliothekspfad importiert werden.

Körper

Eine Klasse benötigt einen Körper. Hier steht der eigentliche Inhalt. Der Körper wird durch ein Klammerpaar gebildet {}.

Beispiel

Betrachten wir ein Beispiel. Die Kommentare wurden blau formatiert.

// Schlüsselwort import leitet den Verweis auf eine Bibliothek ein

import java.util.*;

//public ist ein Schlüsselwort und bestimmt die Sichtbarkeit einer Klasse

//class ist ein Schlüsselwort und  macht dem Compiler bekannt, dass nun eine Klasse beginnt.

//Salon ist der Name der Klasse

//extends ist ein Schlüsselwort. Es zeigt an, dass die Klasse Salon von einer anderen Klasse erbt.

//Geschaeftsobjekt ist die Klasse, welche Eigenschaften und Verhalten vererbt.

public class Salon extends Geschaeftsobjekt

{

    // Es folgen Deklarationen von Attributen

   private String name; 
   private String salonNummer;

  private ArrayList<Mitarbeiter> mitarbeiterListe;

  private ArrayList<Kunde> kundenListe;

  private ArrayList<Termin> terminListe;

    

    // Dies ist ein Konstruktor

   public Salon(String name){

        this.name = name;

        mitarbeiterListe = new ArrayList<Mitarbeiter>();

        kundenListe = new  ArrayList<Kunde>();

        terminListe = new ArrayList<Termin>();

  }

    // Dies ist ein Konstruktor

    public Salon(int salonNummer, String name){

        this.setNummer(salonNummer);

        this.name = name;

        mitarbeiterListe = new ArrayList<Mitarbeiter>();

        kundenListe = new  ArrayList<Kunde>();

        terminListe = new ArrayList<Termin>();

    }

    

    // Es folgen mehrere Methoden

   public Mitarbeiter findeMitarbeiter(String nachname){

        for(Mitarbeiter aktuellerMitarbeiter:mitarbeiterListe){

            if(aktuellerMitarbeiter.equals(nachname)){

                return aktuellerMitarbeiter;

            }

        }

        return null;

    }

    

    public Kunde findeKunden(String nachname){

        for(Kunde aktuellerKunde:kundenListe){

            if(aktuellerKunde.equals(nachname)){

                return aktuellerKunde;

            }

        }

        return null;

    }

   

    public ArrayList<Termin> getTerminListe(){

        return terminListe;

    }

    

    public void setTerminListe(ArrayList<Termin> terminListe){

        this.terminListe = terminListe;

    }

    

    public ArrayList<Kunde> getKundenListe(){

        return kundenListe;

    }

    

    public void setKundenListe(ArrayList<Kunde> kundenListe){

        this.kundenListe = kundenListe;

    }

   

    public ArrayList<Mitarbeiter> getMitarbeiterListe(){

        return mitarbeiterListe;

    }

    

    public void setMitarbeiterListe(ArrayList<Mitarbeiter> mitarbeiterListe){

        this.mitarbeiterListe = mitarbeiterListe;

    }

   

    public String getName(){

        return name;

    }

   

    public void setName(String name){

        this.name = name;

    }

    

    public String toString(){

        return getNummer() + " " + getName();

    }

    public void setNummer(int salonNummer){

        this.salonNummer=salonNummer;

    }

}