Die Seite wurde neu angelegt: „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 Obje…“
 
Keine Bearbeitungszusammenfassung
 
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== Einführung ==
Klassen sind das wichtigste Merkmal [[Objektorientierung|objektorientierter]] Programmiersprachen. Unter einer Klasse versteht man in der objektorientierten Programmierung ein abstraktes Modell bzw. einen Bauplan für eine Reihe von ähnlichen [[Objekt|Objekten]].
Klassen sind das wichtigste Merkmal [[Objektorientierung|objektorientierter]] Programmiersprachen. Unter einer Klasse versteht man in der objektorientierten Programmierung ein abstraktes Modell bzw. einen Bauplan für eine Reihe von ähnlichen [[Objekt|Objekten]].


Zeile 12: Zeile 13:


Die Klasse, [[Attribut|Attribute]], [[Methode|Methoden]] und [[Konstruktor|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.
Die Klasse, [[Attribut|Attribute]], [[Methode|Methoden]] und [[Konstruktor|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.
<html>
<iframe width="450" height="300" src="https://www.youtube.com/embed/94Zu4C3XEIU?si=WJVomZNxqpFsZRb5" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></html>
== 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 [[Bibliothek|Bibliotheken]] importiert werden, benötigt man ein
=== Import Statement. ===
<syntaxhighlight lang="Java">
import Bibliothekspfad.Klassenname;</syntaxhighlight>
=== Kopf ===
Eine Klasse benötigt einen Kopf. Der Kopf besteht aus folgenden Angaben:
1. Sichtbarkeit
Mögliche [[Sichtbarkeit|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 [[Vererbung|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 {}.
* Zu Beginn werden Attribute ([[Instanzvariable|Instanzvariablen]]) deklariert.
* Dann folgen [[Methode|Methoden]] und
* [[Konstruktor|Konstruktoren]].
== Beispiel ==
Betrachten wir ein Beispiel. Die Kommentare wurden blau formatiert.
<syntaxhighlight lang="Java">
// 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;
    }
}
</syntaxhighlight>
[[Kategorie:Programmierung]]
[[Kategorie:AHR_I_Informatik_LK]]
[[Kategorie:FI_I_SDM]]