Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Grobe Übersicht (vorläufig)

Ähnliche Präsentationen


Präsentation zum Thema: "Grobe Übersicht (vorläufig)"—  Präsentation transkript:

1 Grobe Übersicht (vorläufig)
Objektorientierte Programmierung (OOP) mit Java Computer Algebra System (CAS) Maple Internet (Grundlagen, Dienste, eigene Angebote) Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 1 /

2 OOP: Objektorientierung und Modell
Damit die Informatik reale Probleme lösen kann, muss die Wirklichkeit zunächst computerverständlich beschrieben werden: Man muss ein Modell der Wirklichkeit entwickeln. Durch Abstraktion werden die wesentlichen Eigenschaften und Funktionen eines realen Objekts erfasst und gegen andere Objekte abgegrenzt: objektorientierte Analyse (OOA). Kern der objektorientierten Programmierung (OOP) ist die Modellierung von Abstraktionen unter Verwendung von Objekten und Klassen. Das Hauptschwierigkeit ist es dabei, die dem Problem angemessenen Abstraktionen, sprich Klassen und Objekte zu finden. Quelle vieler Folien: Wilcek: Schule und Informatik 2004 Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 2 /

3 Objektorientierung und Java
Die Umsetzung von OOP kann mit zahllosen Programmiersprachen (C, Java, Delphi, …) oder Software-Werkzeugen erfolgen. Die erste objektorientierte Computersprache war SIMULA-67, entwickelt 1967. Wir werden Java verwenden. Ziel ist es mit Java, das OOP-Konzept  zu konkretisieren und  zu veranschaulich.  es geht nicht um Programmier-Virtuosität Nebeneffekt:  Förderung von genauem Denken und  präzisem Arbeiten. Quelle vieler Folien: Wilcek: Schule und Informatik 2004 Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 3 /

4 Sozialpädagogisches Gymnasium
Objektorientierung Die zentralen Begriffe sind hier Objekt und Klasse. Eine Klasse beschreibt eine Kategorie von Objekten. Eine Klasse dient als Bauplan, Vorlage, Leitfaden oder eine Schablone für die Erzeugung neuer Objekte. Eine Klasse definiert die Eigenschaften und Verhaltensweisen eines Objekts. Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 4 /

5 Sozialpädagogisches Gymnasium
Objektorientierung Beispiel: Kaffeemaschine Quelle: Wilcek: Schule und Informatik 2004 und Bock; Schäfer: Java-Einführung. Uni Leipzig Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 5 /

6 Kaffeemaschine: Funktion
Wasser hinzufügen Füllstand kontrollieren Kaffeebohnen hinzufügen Kaffee für eine Tasse erzeugen Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 6 /

7 Kaffeemaschine: Zustandswerte
Füllstand Wasser Füllstand Kaffeebohnen Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 7 /

8 Sozialpädagogisches Gymnasium
Funktion und Zustand unterstützte Funktionen Füllen mit Kaffeebohnen Kontrollieren des Bohnenvorrats Füllen mit Wasser Kontrollieren des Wasserstands Kaffee für eine Tasse erzeugen Interne Werte, die den Zustand definieren Wasserstand Bohnenvorrat Zusammenhang zwischen Funktionen und Zuständen Kaffe kann nur bei ausreichender Menge Wasser und Kaffeebohnen erzeugt werden Wasser kann nicht nachgefüllt werden, wenn Reservoir voll Bohnen können nicht nachgefüllt werden, wenn Reservoir voll Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 8 /

9 Innerhalb der Kaffeemaschine
Wie wird aus Wasser und Kaffeebohnen Kaffee? Die technische Realisierung interessiert bei der objektorientierten Betrachtungsweise nicht. Für die breite und einfache Nutzung von Geräten und Konzepten ist es wichtig, dass der Nutzer wenig bis nichts über die interne Realisierung wissen muss. Diese schlichte Erfahrung ist der Grundgedanke objektorientierter Analyse und Programmierung. Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 9 /

10 Von der Kaffeemaschine zu …
Ein Objekt ist eine handlungsfähige Einheit bestehend aus  von außen nicht erkennbarem Zustand,  von außen nicht sichtbaren Funktionen,  von außen sichtbaren Funktionen (Methoden), die das extern sichtbare Objektverhalten bestimmen. Ein Attribut ist ein „Behälter“ für einen Wert, der den inneren Zustand mitbestimmt. Eine Methode ist eine von außen sichtbare Funktion eines Objekts. Die Menge aller Methoden bilden die Schnittstelle eines Objekts. Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 10 /

11 Sozialpädagogisches Gymnasium
Klasse und Objekt Eine Klasse ist  eine Definition, die eine Menge gleichartiger Objekte beschreibt,  sie umfasst die gemeinsamen Attribute und Methoden der Objekte. Ein Objekt  ist ein Exemplar (Instanz), einer Klasse,  hat Eigenschaften und Methoden, die in der Klasse festgelegt worden sind,  wird bei Bedarf aus der Klasse abgeleitet. Nochmals: Eine Klasse ist eine Schablone für die Erzeugung neuer Objekte. Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 11 /

12 Sozialpädagogisches Gymnasium
Klassen und Objekte Eigenschaften eines Objektes einer Klasse werden Attribute genannt und werden in Java durch Felder definiert. Ein Feld in einer Klassendefinition ist eine Variable, die einen Wert speichern kann, der eine Eigenschaft des Objekts repräsentiert. Das Verhalten eines Objektes einer Klasse wird durch Operationen definiert. Operationen werden Java mit Hilfe von Methoden definiert. Felder und Methoden in der Definition einer Klasse werden zusammen als member der Klasse bezeichnet. Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 12 /

13 Vertrag bzw. Implementierung
Der Vertrag (contract) definiert, welche Services von einer Klasse zur Verfügung gestellt werden. Die Implementierung definiert, wie diese Services von der Klasse zur Verfügung gestellt werden. Andere Objekte müssen lediglich die Verträge kennen, um zu wissen, auf welche Services der anderen Objekte und auf welche Weise zugegriffen werden kann. Andere Objekte hat es nicht zu interessieren, wie der Service eines anderen Objekts im Detail funktioniert bzw. welche Implementierung hinter einem Service steckt. Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 13 /

14 Unified Modeling Language (UML)
Darstellung einer Klasse in UML Kurzform Kaffeemaschine Kaffeemaschine wasserstand bohnenvorrat herstellername Felder Klasse seriennummer zeigeBohnenvorrat() members zeigeWasserstand() fuelleBohnen() fuelleWasser() Methoden erzeugeTasseKaffee() zeigeHerstellername() zeigeSeriennummer() Klasse Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 14 /

15 Sozialpädagogisches Gymnasium
Instantiierung Instantiierung nennt man den Prozess, bei dem aus einer Klasse ein Objekt erzeugt wird. Ein Objekt ist immer eine Instanz einer Klasse. Das Objekt wird nach dem „Bauplan“ erzeugt, den die Klasse definiert. Ein Objekt hat eine Lebensdauer, es muss immer erzeugt werden, bevor es im Programm benutzt werden kann. Spätestens am Programmende wird das Objekt zerstört. Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 15 /

16 Klassen und Objektdiagramm
Jura S50: Kaffeemaschine wasserstand: 4 bohnenvorrat: 22 herstellername: Jura seriennummer: Kaffeemaschine wasserstand bohnenvorrat herstellername seriennummer zeigeBohnenvorrat() zeigeWasserstand() fuelleBohnen() fuelleWasser() erzeugeTasseKaffee() zeigeHerstellername() zeigeSeriennummer() m1: Kaffeemaschine Wasserstand: 8 bohnenvorrat: 5 herstellername: Bosch seriennummer: masch3: Kaffeemaschine Wasserstand: 11 bohnenvorrat: 8 herstellername: Bosch seriennummer: S11753 Klasse Objekte (Instanzen der Klasse) Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 16 /

17 Sozialpädagogisches Gymnasium
Instance members Jedes Objekt hat seine eigene Kopie der Felder, die in der Klasse definiert worden sind. Die Felder eines Objekts werden auch Instanz-Variablen genannt. Die Methoden eines Objekts werden Instanz-Methoden. Jedes Objekt besitzt seine eigenen Instanz-Methoden. Wichtig: Die Implementierung der Methoden wird von allen Objekten einer Klasse geteilt und ist in der Klasse definiert. Instanz-Variablen und Instanz-Methoden werden als „instance members“ bezeichnet. Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 17 /

18 Sozialpädagogisches Gymnasium
Static members In manchen Fällen sollten „members“ nicht zu einem einzelnen Objekt, sondern zur Klasse gehören. Beispiel: Zähler für die bisher erzeugten Objekte. Eine Klasse kann statische („static“) Variablen besitzen. Eine Klasse kann statische („static“) Methoden besitzen. Statische Variablen und statische Methoden heißen „static members“. Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 18 /

19 Sozialpädagogisches Gymnasium
Klassendiagramm mit „static members“ Kaffeemaschine wasserstand bohnenvorrat herstellername seriennummer zaehler zeigeBohnenvorrat() zeigeWasserstand() fuelleBohnen() fuelleWasser() erzeugeTasseKaffee() zeigeHerstellername() zeigeSeriennummer() zeigeZaehler() Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 19 /

20 members Klasse: Kaffemaschine Instanz-Variable wasserstand
bohnenvorrat herstellername seriennummer Statische Variablen zaehler Attribute Felder Instanz-Methoden zeigeBohnenvorrat() zeigeWasserstand() fuelleBohnen() fuelleWasser() erzeugeTasseKaffee() zeigeHerstellername() zeigeSeriennummer() Statische Methoden zeigeZaehler() members Verhalten Methoden Objekte Klasse Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 20 /

21 Sozialpädagogisches Gymnasium
Java Und nun zu Java Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 21 /

22 Sozialpädagogisches Gymnasium
Entwicklung von Java 1991 wurde eine Programmiersprache „oak“ entwickelt, die elektronische Geräte (Videorekorder, Telefone, etc.) miteinander kommunizieren lassen sollte. Das Projekte scheiterte. Mit „oak“ ließen sich aber sehr gut Multimedea-Anwendungen für das Internet entwickeln. 1995 muss „oak“ aus patentrechtlichen Gründen umbenannt werden. Bei der Abstimmung setzt sich Java gegen Silk und DNA durch. Der in den USA beliebte „Peet´s Java-Kaffee“ soll Pate gestanden haben. Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 22 /

23 Sozialpädagogisches Gymnasium
Java Einige Eigenschaften von Java: Java ist  objektorientiert  verteilt (Internetangepasste Programmiersprache)  einfach (Zeiger-Zugriffe und andere raffinierten Programmiertricks sind nicht möglich)  multithreaded (es können mehrere Prozesse parallel laufen)  sicher (viele gefährlichen Aktionen sind in Java-Programmen nicht zugelassen)  plattformunabhängig (läuft auf Windows, Unix, Mac, usw.), Näheres siehe Folie 28 f. Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 23 /

24 Applet und Applikation
Java-Applet  in Web-Seiten eingebettet,  wird von Web-Browsern ausgeführt,  aus Sicherheitsgründen eingeschränkte Rechte. Java-Applikation  wird als Windows-Anwendung gestartet (oder von Kommandozeile aus),  wird auf Client oder Server ausgeführt,  volle Rechte einer eigenständigen Anwendung Programmierung Applets und Applikationen sehr ähnlich Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 24 /

25 Sozialpädagogisches Gymnasium
Java-Applet Beschränkung der Rechte (Sandkasten-Prinzip: nur ungefährliches „Spielzeug“ zugelassen) nicht lesend oder schreibend auf Dateien des lokalen Rechners zugreifen, keine Programme starten, keine Bibliotheken laden, keine Verbindungen zu einem anderen Rechner (mit Ausnahme des Rechners, von dem das Applet geladen wurde) aufnehmen, keine System-Eigenschaften des lokalen Rechners auslesen, keine Top-Level-Fenster ohne Warnhinweise erzeugen, die virtuelle Maschine (JVM) nicht beenden. Ratz: Grundkurs Programmieren in Java. Band 2. München 2003, S. 283 Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 25 /

26 Sozialpädagogisches Gymnasium
Java mit Eclipse Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 26 /

27 Sozialpädagogisches Gymnasium
Java mit Eclipse Es folgt ein erstes Programm: Hello World! Daran wird erläutert, wie die Plattformunabhängigkeit der Java-Programme zustande kommt. Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 27 /

28 Hello World: 1. Programmierung
Programmierer schreibt Quelltext (Hello.java): Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 28 /

29 Hello World: 2. Kompilierung
Compiler übersetzt den Quelltext in Bytecode (Hello.java): Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 29 /

30 Hello World: 3. Ausführung
Java Virtual Maschine (JVM) interpretiert Bytecode und führt ihn aus Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 30 /

31 Plattformunabhängigkeit
Der Bytecode ist plattformunabhängig. JVM existieren für verschiedene Plattformen, damit ist der Bytecode auf verschiedenen Plattformen ausführbar. Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 31 /

32 Sozialpädagogisches Gymnasium
Geiergrafik Wir werden jetzt die Klasse Geier verwenden, um einfache Grafiken zu erstellen. Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 32 /

33 Geiergrafik: Zeichenfeld
Das Zeichenfeld besteht aus Bildpunkten (Pixel), die über x-y-Koordinaten angesprochen werden können. Allerdings ist werden die y-Koordinaten wie bei der Zeilenzählung nach unten gezählt. 0,0 0,600 0,300 50, ,300 300,450 0, ,600 Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 33 /

34 Geiergrafik: Grundstruktur
Objekt vom Typ Geier wird definiert und initialisiert. Grundstruktur import java.awt.*; import java.applet.*; public class Muster extends Applet { Geier testGeier; public void paint(Graphics screen){ testGeier = new Geier(10,10,0,screen); // Hier folgen die Zeichenanweisungen. } Es handelt sich um ein Applet, keine Anwendung. Erzeugung eines Zeichenfelds. Kommentarzeilen werden durch // eingeleitet. Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 34 /

35 Geiergrafik: Konstruktor
Konstruktor: Erzeugung eines Objekts der Geier-Klasse Geier dreieck = new Geier(screen); Start in (0 ,0) mit Blick nach rechts Geier dreieck = new Geier(300,300,0, screen); Start in (300 ,300) mit Blick nach rechts Geier dreieck = new Geier(300,300,90, screen); Start in (300 ,300) mit Blick nach oben Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 35 /

36 Geiergrafik: Methoden 1
Methoden (Werkzeuge) der Klasse Geier: lt(winkel); Dreh Dich um soviel Grad, wie Winkel angibt, nach links. (left turn). {winkel vom Typ double} Z.B.: lt(120); rt(winkel); Dreh Dich um soviel Grad, wie Winkel angibt, nach rechts. (right turn). {winkel vom Typ double } Z.B.: rt(120); fd(strecke); Bewege Dich soviel Schritte in Pfeilrichtung, wie Strecke angibt. (forward) {strecke vom Typ double} Z.B.: fd(200); fd(-200); Bewege Dich entgegen der Pfeilrichtung. pd(); Zeichne bei den folgenden Befehlen Deine Spur auf den Schirm. (Pen down) pu(); Zeichne bei den folgenden Befehlen Deine Spur nicht auf den Schirm. (Pen up) Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 36 /

37 Geiergrafik: Methoden 2
setColor(farbe); Zeichne bei den folgenden Befehlen Deine Spur in der Farbe farbe. {farbe vom Typ Color} Die möglichen Farben befinden sich in der Klasse Color (was das heiß später). Jedenfalls werden sie mit Color.Farbname aufgerufen: Color.black Color.blue Color.cyan Color.darkGray Color.gray Color.green Color.lightGray Color.magenta Color.orange Color.pink Color.red Color.white Color.yellow Z. B.: farbeNeu(Color.red); goTo(x,y,winkel); Bewege den Geier an die Position (x,y) mit dem Blick in Richtung winkel ohne eine Spur zu hinterlassen. {x,y vom Typ int} Von der Bildschirmmitte aus x Pixel nach rechts oder links, je nach Vorzeichen, y Pixel nach oben oder unten. writeString (text); Schreibe an der aktuellen GeierPosition x,y den Text text. {Text vom Typ String, x,y vom Typ int } Z. B.: WriteString("Stern"); Der Text muss in Anführungszeichen geschrieben werden! writeStringXY (text,x,y); Schreibe an der Position x,y den Text text. {Text vom Typ String, x,y vom Typ int } Z. B.:WriteStringXY("Stern",20,200); Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 37 /

38 Sozialpädagogisches Gymnasium
Java Eclipse ist eine schlichte Entwicklungsumgebung für Java-Programme. Eine Klasse ist Datenverarbeitung Jahrgangsstufe I Sozialpädagogisches Gymnasium Maurer / Folie 38 /


Herunterladen ppt "Grobe Übersicht (vorläufig)"

Ähnliche Präsentationen


Google-Anzeigen