Grundwissen Informatik 10. Jahrgangsstufe Grundwissen Informatik 10. Jahrgangsstufe Objekt Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt (z. B. Autos, Räume, Bakterien, Lehrer, Schüler, Kunden, Unterrichtsstunden, Buchungen, Konten, …). Jedes Objekt besitzt einen eindeutigen Objektnamen (Bezeichner), mit dem es identifiziert werden kann. Als Attribute bezeichnet man die Eigenschaften, durch die sich ein Objekt von anderen unterscheidet. Die Attribute eines Objekts nehmen bestimmte Werte (Attributwerte) an. Jedes Objekt bietet Dienste an – die sogenannten (öffentlichen) Methoden. Klasse Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Objektdiagramm Objektdiagramme stellen bestehende Beziehungen zwischen Objekten in einer bestimmten Situation dar. Klassendiagramm In Klassendiagrammen drücken die Verbindungslinien zwischen zwei Klassen aus, dass Objekte dieser beiden Klassen möglicherweise in Beziehung stehen. entspricht der Kardinalität bei Datenbanken Attribut Multiplizität Datentypen Variablen Wertzuweisung sondierende Methoden StRin Susanne Ehmann primitive Datentypen: boolean, char, int, long, double, … komplexe Datentypen: String, alle selbst geschriebenen Klassen, alle Klassen aus der Java API Variablen sind Speicherplätze für veränderliche Werte. Jede Variable besitzt einen Namen, unter dem ihr Wert gelesen oder geändert werden kann. z. B. Deklaration der Variablen zustand: private String zustand; Zugriffsrecht Datentyp Variablenname z. B. zustand = “aus“; Der Wert der rechten Seite wird der linken Seite – also der Variablen – zugewiesen. Methoden, die an den Nutzer Informationen zurückgeben und dabei den Objektzustand nicht verändern. z.B. public String nachnameGeben() { return nachname; } 1 Grundwissen Informatik verändernde Methoden Konstruktor Erzeugung eines Objekts einer Klasse mit dem new-Operator Methodenaufruf 10. Jahrgangsstufe Methoden, mit denen Attributwerte von Objekten verändert werden können. z. B. public void nachnameSetzen(String nachname) { this.nachname = nachname; } Konstruktoren sind besondere Methoden zur Erzeugung von Objekten. z. B. public Schueler(String vorname, String nachname) { this.vorname = vorname; this.nachname = nachname; } Beim Standardkonstruktor werden keine Attribute gesetzt. z. B. public Schueler() { } Schueler max = new Schueler(“Max“,“Mustermann“); Objektname new-Operator Parameter Klassenname objektname.methodenname( wert1, wert2, …) z. B. max.nameGeben(); Bedingte Zustandsdiagramme Zustände: Anfangszustand: Endzustand: Zustandsübergänge: Ereignis: Bedingung: Ausgelöste Aktion: Algorithmus StRin Susanne Ehmann offen, verriegelt, blockiert offen blockiert Pfeile verriegeln, Code eingeben [Code korrrekt], [Code falsch und …] /Piepton Attributwerte bestimmen die Zustände von Objekten. Tritt ein Ereignis ein (z. B. Code eingeben) und trifft die Bedingung, dass der Code falsch ist und die Fehlversuche überschritten sind zu, dann geht es in den Zustand blockiert über (Attributwert der Variable zustand wird auf blockiert gesetzt) und ruft eine Methode auf, die einen Piepton auslöst. Ein Algorithmus ist eine Verarbeitungsvorschrift, die aus endlich vielen eindeutig ausführbaren Anweisungen besteht. 2 Grundwissen Informatik 10. Jahrgangsstufe Struktogramm Ein Struktogramm ist eine Darstellung für Algorithmen, die von der konkreten Schreibweise einer bestimmten Programmiersprache unabhängig ist. Kontrollstruktur: Sequenz Eine Folge von Anweisungen, die nacheinander abgearbeitet werden. Struktogramm: z. B. in Java: Struktogramm: Schueler max = new Schueler(); max.vornameSetzen(“Max”); max.nachnameSetzen(“Mustermann“); Anweisung 2 ... … Anweisung 1 Anweisung n Kontrollstruktur: Wiederholung mit fester Anzahl Soll eine Sequenz mehrmals wiederholt werden und steht die Anzahl der Wiederholungen fest, verwendet man zur Vereinfachung die Wiederholung mit fester Anzahl. z. B. in Java: Struktogramm: for (int i = 0; i < 10; i = i +1) { … } wiederhole <Anzahl> mal <Anweisungen> Kontrollstruktur: Bedingte Wiederholung mit Anfangsbedingung Die Anweisungen werden wiederholt, solange eine bestimmte Bedingung erfüllt ist. Ist die Bedingung zu Beginn nicht erfüllt, wird die Wiederholung kein einziges ausgeführt. Java: Struktogramm: while (Bedingung) { … } wdh. solange <Bedingung> <Anweisungen> Kontrollstruktur: Bedingte Wiederholung mit Endbedingung Die Anweisungen werden auf jeden Fall einmal ausgeführt, egal ob die Bedingung zutrifft oder nicht. Sie werden wiederholt, solange eine die Bedingung erfüllt ist. Java: Struktogramm: do { … } while (Bedingung); <Anweisungen> wdh. solange <Bedingung> StRin Susanne Ehmann 3 Grundwissen Informatik Kontrollstruktur: Einseitig bedingte Anweisung 10. Jahrgangsstufe Die einseitig bedingte Anweisung wird verwendet, um eine Sequenz abhängig von einer Bedingung auszuführen. Java: Struktogramm: if (Bedingung) { … } <Bedingung> wahr falsch <Anweisungen> Kontrollstruktur: Zweiseitig bedingte Anweisung Die zweiseitige bedingte Anweisung wird verwendet, wenn abhängig von einer Bedingung unterschiedliche Sequenzen ausgeführt werden sollen. Java: Struktogramm: if (Bedingung) { … } else { … } Kontrollstruktur: Mehrfachauswahl Feld (Array) StRin Susanne Ehmann <Bedingung> wahr falsch <Anweisungen> <Anweisungen> Mit der Mehrfachauswahl können beliebig viele Fälle untersucht werden. Die zu überprüfende Variable muss als Datentyp byte, short, int, char, String haben. Java: Struktogramm: Variable switch(Variable) { sonst Wert 1 Wert 2 Wert 3 case wert1: … break; <Anweisungen> <Anweisungen> <Anweisungen> <Anweisungen> (optional) case wert1: … break; default: … } In einem Feld können mehrere Werte eines Datentyps abgespeichert werden. Deklaration eines Felds: private double[] zahlen; Initialisierung eines Felds mit der Länge 10: zahlen = new double[10]; Speichern eines Wertes unter dem Index i: zahlen[i] = 10.3; Zugriff auf einen Wert unter dem Index i: zahlen[i] Länge des Felds: zahlen.length; Feld durchlaufen und Inhalt ausgeben: for (int i = 0; i < zahlen.length; i = i+1) { System.out.println( (i+1) + “: “ + zahlen[i] ); } 4 Grundwissen Informatik Referenz 10. Jahrgangsstufe Ein Verweis eines Objekts auf ein anders (Ziel-)Objekt. Umsetzung in Java: Definition eines Referenzattributs in der Klasse, deren Objekte die Beziehung nutzen sollen. Sollen Objekte auf andere Objekte einer Klasse mit der Multiplizität n zugreifen, soll ist das Referenzattribut ein Feld. Sequenzdiagramme Datenkapselung StRin Susanne Ehmann Durch die Definition des Referenzattributs wird bereits eine Beziehung zwischen den Klassen hergestellt. Der Wert des Referenzattributs ist jedoch null. Objekte, die miteinander in Beziehung stehen, können miteinander kommunizieren, in dem sie mit Methodenaufrufen Botschaften untereinander austauschen: referenz.methodenname(…); Die Kommunikation zwischen den Objekten lässt sich mit Sequenzdiagrammen grafisch darstellen. z. B. kunde1.kontostandErmitteln(); Objekte: Akteur, kunde1, konto1 Balken Aktivitätsbalken (Objekt ist aktiv) Gestrichelte Linie: Lebenslinie eines Objekts Durchgezogener Pfeil: Methodenaufruf (Botschaft wird gesendet) Gestrichelter Pfeil: Antwortbotschaft Das Zugriffsrecht für Attribute wird immer auf private gesetzt. Wir verstecken damit den Zustand der Objekte vor anderen Objekten (Geheimnisprinzip, information hiding). Über Methoden kann der Zustand eines Objekts erfragt werden. 5 Grundwissen Informatik Vererbung 10. Jahrgangsstufe Vererbung beschreibt eine neue Beziehung zwischen einer Oberklasse (Superklasse) und einer Unterklasse (Subklasse oder abgeleitete Klasse). Die Unterklasse erbt (erhält) von der Oberklasse alle Attribute und Methoden. Hat die Oberklasse eine Beziehung zu einer anderen Klasse, so hat auch die Unterklasse diese Beziehung. Umsetzung in Java: public class Unterklasse extends Oberklasse { … public Unterklasse(…) { super(); } … } Polymorphie StRin Susanne Ehmann Durch den Aufruf super(); wird zuerst der Konstruktor der Oberklasse aufgerufen. Man spricht von Polymorphie, wenn gleichnamige Methoden unterschiedliche Definitionen bzw. Implementierungen haben. Polymorphie wird durch Überschreiben der geerbten Methoden bewirkt. 6