Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Grobe Übersicht (vorläufig) Objektorientierte Programmierung (OOP) mit Java Computer Algebra System (CAS) Maple Internet (Grundlagen, Dienste, eigene Angebote)

Ähnliche Präsentationen


Präsentation zum Thema: "Grobe Übersicht (vorläufig) Objektorientierte Programmierung (OOP) mit Java Computer Algebra System (CAS) Maple Internet (Grundlagen, Dienste, eigene Angebote)"—  Präsentation transkript:

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

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. Sozialpädagogisches GymnasiumMaurer / Folie 2 / Datenverarbeitung Jahrgangsstufe I Quelle vieler Folien: Wilcek: Schule und Informatik 2004

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 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. Sozialpädagogisches GymnasiumMaurer / Folie 3 / Datenverarbeitung Jahrgangsstufe I Quelle vieler Folien: Wilcek: Schule und Informatik 2004

4 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. Sozialpädagogisches GymnasiumMaurer / Folie 4 / Datenverarbeitung Jahrgangsstufe I

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

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

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

8 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 Sozialpädagogisches GymnasiumMaurer / Folie 8 / Datenverarbeitung Jahrgangsstufe I

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. Sozialpädagogisches GymnasiumMaurer / Folie 9 / Datenverarbeitung Jahrgangsstufe I

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. Sozialpädagogisches GymnasiumMaurer / Folie 10 / Datenverarbeitung Jahrgangsstufe I

11 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. Sozialpädagogisches GymnasiumMaurer / Folie 11 / Datenverarbeitung Jahrgangsstufe I

12 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. Sozialpädagogisches GymnasiumMaurer / Folie 12 / Datenverarbeitung Jahrgangsstufe I

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. Sozialpädagogisches GymnasiumMaurer / Folie 13 / Datenverarbeitung Jahrgangsstufe I

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

15 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. Sozialpädagogisches GymnasiumMaurer / Folie 15 / Datenverarbeitung Jahrgangsstufe I

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

17 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. Sozialpädagogisches GymnasiumMaurer / Folie 17 / Datenverarbeitung Jahrgangsstufe I

18 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. Sozialpädagogisches GymnasiumMaurer / Folie 18 / Datenverarbeitung Jahrgangsstufe I

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

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

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

22 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 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. Sozialpädagogisches GymnasiumMaurer / Folie 22 / Datenverarbeitung Jahrgangsstufe I

23 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. Sozialpädagogisches GymnasiumMaurer / Folie 23 / Datenverarbeitung Jahrgangsstufe I

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 Sozialpädagogisches GymnasiumMaurer / Folie 24 / Datenverarbeitung Jahrgangsstufe I

25 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 Sozialpädagogisches GymnasiumMaurer / Folie 25 / Datenverarbeitung Jahrgangsstufe I

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

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

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

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

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

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

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

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,00,600 0,30050,300600, ,450 0,600600,600 Sozialpädagogisches GymnasiumMaurer / Folie 33 / Datenverarbeitung Jahrgangsstufe I

34 Geiergrafik: Grundstruktur 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. } Sozialpädagogisches GymnasiumMaurer / Folie 34 / Datenverarbeitung Jahrgangsstufe I Es handelt sich um ein Applet, keine Anwendung. Objekt vom Typ Geier wird definiert und initialisiert. Kommentarzeilen werden durch // eingeleitet. Erzeugung eines Zeichenfelds.

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 Sozialpädagogisches GymnasiumMaurer / Folie 35 / Datenverarbeitung Jahrgangsstufe I

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) Sozialpädagogisches GymnasiumMaurer / Folie 36 / Datenverarbeitung Jahrgangsstufe I

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.blackColor.blue Color.cyanColor.darkGray Color.gray Color.greenColor.lightGrayColor.magenta Color.orangeColor.pinkColor.redColor.white Color.yellowZ. 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); Der Text muss in Anführungszeichen geschrieben werden! Sozialpädagogisches GymnasiumMaurer / Folie 37 / Datenverarbeitung Jahrgangsstufe I

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


Herunterladen ppt "Grobe Übersicht (vorläufig) Objektorientierte Programmierung (OOP) mit Java Computer Algebra System (CAS) Maple Internet (Grundlagen, Dienste, eigene Angebote)"

Ähnliche Präsentationen


Google-Anzeigen