Programmieren mit JAVA

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
der Universität Oldenburg
Einführung in die Programmierung Zusammenfassung
Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden
Warum Objektorientierung?
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Java: Grundlagen der Sprache
Java: Grundlagen der Objektorientierung
Ein Beispiel in Java.
Erweiterte Zuweisungskompatibilität
Polymorphie (Vielgestaltigkeit)
Objekte und Arbeitsspeicher
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
DO...WHILE Anweisung.
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 4 Vererbung Sommersemester 2003 Lars Bernard.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 5 Polymorphismus Sommersemester 2003 Lars Bernard.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Programmieren mit JAVA
Programmieren mit JAVA
Vererbung Spezialisierung von Klassen in JAVA möglich durch
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Das Java-Hamstermodell
1DVG3 - Paint Paint ein Zeichenprogramm. DVG3 - Paint 2 Paint – ein Zeichenprogramm.
DVG1 - Applets1 Applets. DVG1 - Applets2 Die Klasse Applet n Applets sind Grafikobjekte, die unter Steuerung eines anderen Programms (z.B. eines Browsers,
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
DVG Einführung in Java1 Einführung in JAVA.
DVG Klassen und Objekte
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Plattformunabhängige Programmiersprache
Herzlich Willkommen zu „Einführung in die Programmierung mit Java“
Einführung in die Programmiersprache Java
Applets Java für’s Web.
JavaScript.
Java und Eclipse.
CuP - Java Elfte Vorlesung Montag, 11. November 2002.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Eine Präsentation von Peter Rasser
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Informatik Objekte und Klassen 1. Objektorientiertes Modellieren und Programmieren 1.1 Objekte und Klassen.
CGI (Common Gateway Interface)
Objektorientiertes Konstruieren
Oliver Spritzendorfer Thomas Fekete
Unterprogramme in JAVA
Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.
Lernen der Programmiersprache Java
PI Burgenland Java und JavaScript 1. Teil
Objektorientierung.
3. Beschreibung von Abläufen durch Algorithmen 3.4 Zufall
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Übung Informatik I exercise01. 2 Inhaltsübersicht Nachbesprechung Übung 1 Individuelle Fragen/Bemerkungen.
Web und Mobile Apps Programmieren Marco Jakob Kurzvortrag OSS an Schulen
Java-Kurs Übung Benutzeroberflächen und Graphik Frames (Fenster)
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 9. Vorlesung WS 2001/2002.
Einführung in Java PING e.V. Weiterbildung Andreas Rossbacher 24. März 2005.
Objektorientierte Programmierung (OOP)
Objektorientierte Programmierung §Klassen §Objekte §Attribute §Eigenschaften §Methoden §Datenkapselung §Ereignisse §Vererbung §Entwicklungszeit §Laufzeit.
Vortrag Einführung in AspectJ. Gliederung 1 Einleitung 2 Querschnittsfunktionalitäten in AspectJ 2.1 Sprachelemente 3 Beispiel 4 Join Point Modell 5 Weaving.
Tutorium Software-Engineering SS14 Florian Manghofer.
JAVA - Einführung. © Übersicht Hintergrund und Geschichte Wie sieht ein JAVA Programm aus ? Was ist ein JAVA Programm ? Wie schreibt/übersetzt.
Hello World! Javakurs 2013 Arne Kappen
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
 Präsentation transkript:

Programmieren mit JAVA

JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen Interessen am besten wiederspiegelt! "Java ist ein Begriff, der für viele verschiedene Dinge steht ...“ Scott McNealy, President Sun Microsystems Inc.

JAVA? Zwischen 1990 und 1993 arbeitete James Gosling mit Anderen bei Sun Microsystems an einem Softwarekonzept für Steuergeräte und interaktives TV. Dabei entwickelten sie eine einfache objekt-orientierte Programmiersprache Um 1993 erkannte man bei Sun, dass interaktives TV "OUT" und dafür das Internet "IN" war. Man beschloss die Plattformunabhängigkeit der Sprache mit dem vollständig in Java programmierten Webbrowser "HotJava" zu demonstrieren. Der Durchbruch gelang allerdings erst 1995, als Netscape die Java-Technologie in ihren Browser aufnahm und weltweit verbreitete.

JAVA? Was ist das Besondere an Java? Plattformunabhängigkeit hohe Stabilität und Sicherheit hohe Performance in der Laufzeit Java-Quelltexte (die .java-Dateien) werden zunächst in plattformunabhängigen Byte-Code übersetzt (die .class-Dateien), der dann auf einer Virtual Machine interpretiert wird. Die Virtual Machine ist ein Programm, welches auf der Zielplattform installiert ist und den Java-Byte-Code Schritt für Schritt ausführt. Erklärtes Designziel der Java-Entwickler ist Sicherheit und Stabilität. Java ermöglicht es, über das World Wide Web geladene Programme (Applets) in einer abgeschlossenen Umgebung (der sogenannten "Sandbox") laufen zu lassen, wo sie keinerlei Schaden anrichten können. Wesentliche Schutzfaktoren: - keine Pointer - keinerlei Zugriff auf physische oder virtuelle Speicheradressen - restriktiver Zugriff auf das lokale Dateisystem Java kann durchaus als "multi-funktionale" Programmiersprache eingesetzt werden. Highlights sind dabei besonders die standardmässig mitgelieferten Klassenbibliotheken: Bibliotheken für fensterorientierte Benutzeroberflächen Unterstützung zur Decodierung vom Bildformaten (GIF/JPEG) und von Soundfiles Unterstützung von Netzwerk- und Internet-Diensten Datenbank-Anbindungen Die "Just-in-time" Compiler Technologie wird in Zukunft eine massive Performance Steigerung bis zur Geschwindigkeit von compilierten C-Programmen ermöglichen. Java: eine einfache, objektorientierte, dezentrale, interpretierte, stabil laufende, sichere, architekturneutrale, portierbare und dynamische Sprache, die Höchstgeschwindigkeitsanwendungen und Multithreading unterstützt. (offizielle Definition von Sun)

JAVA? Wie geht es weiter mit Java? Java contra Windows kostenlose Entwicklungsumgebung sehr viel Unterstützung im Internet Java ist zum de facto Standard für Web-basierte Software geworden. Dieser Herrschaftsanspruch von Sun's Programmiersprache gerät aber verständlicherweise von Microsoft unter Beschuss. Für Bill Gates, Präsident von Microsoft, ist Java zwar eine momentan wichtige Programmiersprache, aber auch nur eine Programmiersprache. Scott McNealy, Präsident von Sun, dagegen versteht Java als wesentlich mehr. Er und seine Partner, wie etwa Netscape, vertreten die Meinung dass die Java Virtual Machine quasi ein Mini-Betriebssystem darstelle und damit Entwickler davon befreie, Software für ein konkretes Betriebssystem entwicklen zu müssen. Sun stellt das JDK mit Compiler, Virtual Machine und umfassenden Klassenbibliotheken auf seiner Website kostenlos zur Verfügung. Als professionellerer Programmierer ist man allerdings mit einem der kommerziellen Produkte, wie etwa Symantec's Visual Café Pro oder Microsoft's Visual J++ besser bedient und geniesst den gewohnten Komfort moderner Entwicklungswerkzeuge. www.sun.com www.gamelan.com

Sequentiell - Objektorientierte Sprachen Ein herkömmliches Programm besteht aus einer Menge von Unterprogrammen, welche auf verschiedenste Weise Eingabedaten bearbeiten und verändern. Die Daten werden direkt (oder mittels Pointern und globalen Variablen) von Unterprogramm zu Unterprogramm weitergereicht und verändert. Man kann sich den Ablauf eines sequentiellen Programms als eine Art Fliessbandarbeit vorstellen. Beispiele: C, Cobol, Basic, Pascal

Sequentiell - Objektorientierte Sprachen Ein objekt-orientiertes Programm besteht aus einer strukturierten Menge von Objekten. Jedes Objekt stellt eine abgeschlossene, autonome Einheit von Daten und Algorithmen dar. Man kann sich den Ablauf eines objekt-orientierten Programm als eine Art Teamwork von Objekten vorstellen. Objekt-orientierte Techniken bringen insbesondere Vorteile für die Implementation von modernen fensterorientierten Anwendungen. Sie erlauben z. B. auf einfache Weise das quasiparallele Verwalten von verschiedenen gleichzeitig existierenden Objekten auf dem Bildschirm (Buttons, Fenster, Bilder, ...) Beispiele: Java, C++, Smalltalk

Applikationen - Applets sind selbständig lauffähige "stand-alone" Anwendungsprogramme benötigen zu Ausführung eine auf dem Zielsystem installierte Virtual Machine. haben vollen Zugriff auf das Filesystem sind Objekte aus der Unterklasse von Object brauchen (in Analogie zu C) eine main-Methode Applets werden von einer .HTML-Datei aus aufgerufen werden von einem Web-Browser ausgeführt (interpretiert) haben sehr beschränkte Zugriffsrechte ("Sandbox") sind Objekte aus der Unterklasse von Applet brauchen eine paint Methode

Beispiel: Applikation - Applet class HelloJava { public static void main (String args[]) { System.out.println("Hello Java!"); } import java.awt.*; public class HelloJava extends java.applet.Applet { public void paint(Graphics g) { g.drawString("Hello Java!",5,25); } } Definition einer neuen Klasse mit Namen HelloJava Aufruf der main-Methode arg ist der Name eines Zeichenkettenarrays, das eine Argumentenliste enthält und Java immer zur Verfügung steht. Innerhalb der main-Methode können Argumente beliebig behandelt werden. (Argumente immer als Zeichenkette übergeben, Argumentindex in Java beginnt im Gegensatz zu C mit 0!) Applet komplizierter, Java Anwendung benötigt immer nur eine main-Methode, Applets benötigen zwar keine main-Methode, dafür bei gleicher Funktionalität mindestens vier andere Methoden: - init-Methode public void init( ) {...} - start-Methode public void start( ) {...} - stop-Methode public void stop( ) {...} und die - destroy-Methode public void destroy( ) {...} diese Methoden sind in unserem Applet noch nicht direkt implementiert. Das Applet erbt diese Methoden von der Mutter aller Applets mit der Syntax extends java.applet.Applet Grund für die Kopliziertheit ist, das ein Applet in einem Container abläuft und mit diesem kooperieren muss, Es muss also die Ausgabemöglichkeiten des Cont. nutzen. Deshalb ist das Applet als Instanz einer Klasse erstellt, dessen Funktionen wir nutzen (malen statt schreiben)

Objektorientierung? ... es gilt als erstes festzuhalten, dass nicht die Eigenschaften einer Programmiersprache in der Regel Objektorientiertheit ausmachen, sondern der Denkansatz für die Lösung einer zu programmierenden Aufgabe!

Objektorientierung? ... Kennzeichnend ist die Aufhebung der Trennung von Datenebene und Anweisungsebene. ...Zusammengehörende Anweisungen und Daten bilden eine zusammengehörende, abgeschlossene und eigenständige Einheit. ...Man nennt diese Einheit: „Objekte“

Objekte Objekte bestehen aus: Daten (Instanz-Variablen oder Attributen) Die Beschreibung eines konkreten Objekts. (z.B. ein Haushalt-Roboter in Position und Zustand der Sensoren) Programmen (Methoden) Was kann man alles mit dem Objekt machen? (move, setPos, getSensors, ...) Die Summe aller Attribute und Methoden bilden zusammen die Eigenschaften des Objekts.

Klassen Eine Art Bauplan, der die Eigenschaften und das Verhalten von Objekten eines bestimmten Typs beschreibt. Das Programmstück Robot beschreibt z.B. die Klasse "Robot“ als Maschinen mit Position und Sensoren, die sich bewegen können. Die Attribute der Objekte werden in der Klasse gesammelt und zur späteren Erzeugung neuer Objekte verwendet. Ein Objekt ist eine Instanz seiner Klasse Bsp. Saxophon - Holzblasinstrument - Blasinstrument - Musikinstrument - Musik erzeugende Dinge - ...

Klassenhierarchie Alle Klassen sind hierarchisch aufgebaut. Jede Klasse erweitert dabei die Eigenschaften (Attribute und Methoden) ihrer Oberklasse um eine klar abgegrenzte Funktionalität. Ein Objekt verfügt nun also über alle Eigenschaften, die in seinem eigenen Klassencode und im Code seiner Oberklassen definiert worden sind. Ein wichtiger Spezialfall ist dabei, dass Klassen Methoden ihrer Oberklassen auch durch eine neue Implementation ersetzen können. Man sagt dann, eine Klasse überschreibt die Methode ihrer Oberklasse.

Übung Verwenden Sie die Begriffe Klasse, Instanz, Objekt, Attribut und Methode zur Beschreibung der Grafik! Finden Sie Beispiele für eine Superklasse und mehrere Unter(Sub)klassen

weitere Begriffe der OOP Metaklasse, Abstrakte Klasse, Vererbung, Überschreiben, Polymorphismus, Binden, ... das nächste Mal...

Literaturhinweise Ralph Steyer "Java 1.2", Markt & Technik, 1998 Arbeitshefte Informatik "Java", Klett, 1999 Java 1.2 Schnellübersicht, Markt & Technik, 1998 O'Niel Annand Valentin Som "Java - plattformunabhängig programmieren", BHV, 1997 Misgeld, Gruber "Einstieg in Java", Carl Hanser Verlag, 1996 java.sun.com; www.javasoft.com; www.gamelan.com http://www.zitadelle.juel.nw.schule.de/if/java/java.html http://www.rittershofer.de/info/java/java.htm http://java.cs.uni-magdeburg.de/dokus/Tutorial/javabuch-gk/ http://www.dd.shuttle.de/dd/srz/java/javaprj.htm

Verzweigung if ... else Anweisungen Wie in den meisten Programmiersprachen üblich, bietet Ihnen die if Anweisung die Möglichkeit, innerhalb Ihres Programms Entscheidungen zu treffen. if (cpuSpeed < 500) System.out.println(“Are things a bit slow?”);

Verzweigung if ... else Anweisungen Innerhalb der if Anweisung können Sie auch mehr als eine Test Bedingung angeben, z.B.: if ((cpuSpeed < 500) && (memorySize < 64)) System.out.println(“What’s the name of this computer? Snail? Or earthworm?”);

Verzweigung if ... else Anweisungen Mit Hilfe der else Anweisung kann auch auf den zweiten Fall, dass nämlich die Bedingung nicht erfüllt ist, reagiert werden. if (cpuSpeed < 500) System.out.println(“Perhaps you should bye a faster cpu or overclock your existing one?”); else System.out.println(“Cpu’s can’t never be fast enough but in this case we turn a blind eye.”);

Verzweigung if ... else Anweisungen Sie können auch mehrere else Klauseln verwenden: if (cpuSpeed <= 100) System.out.println(“Sorry for the delay, but with your cpu it needs some time to print this message out.”); else if (cpuSpeed <= 500) System.out.println(“Ok, let’s rock.”); else System.out.println(“Ooups, already finished. What the bloody hell was that?”);

Verzweigung Blockanweisungen Eine Folge von Anweisungen kann zu einem Anweisungsblock zusammengefasst werden. Dieser Block verhält sich dann wie eine einzelne Anweisung. if (day == “Sunday”) tidyUpComputer (); if (day == “Sunday”) { clearTempDirectory(); makeBackup (); scanDisk(); }

Verzweigung Der Bedingungsoperator Der Bedingungs Operator bietet eine Abkürzung für mehrere if ... else Anweisungen. if (modemSpeed <= 28800) message = “One bit ... and another one ...”; else message = “Just slippy.”; System.out.println (message); string message = modemSpeed <= 28800 ?“One bit ... and another one ...” : “Just slippy.” System.out.println (message);

Verzweigung Der Bedingungsoperator Die allgemeine Syntax lautet: test ? true result : false result

Verzweigung Die switch Anweisung Das switch ... case Konstrukt erlaubt eine kürzere Schreibweise für mehrere if ... else Anweisungen. if ( colorDepth == 16 ) System.out.println (“EGA Graphics is not supported. You need at least 65536 colors.”); else (if colorDepth == 256 ) System.out.println (“Standard VGA Graphics is not supported. You need at least 65536 colors.”); else (if colorDepth == 65536 ) System.out.println (“Your color depth is just adequate, but true color would be much better.”); else (if colorDepth == 16777216 ) System.out.println (“Ok, you fullfill all the color requirements.”);

Verzweigung Die switch Anweisung Dies kann durch folgenden, wesentlich übersichtlicheren Programmkode ersetzt werden: switch (colorDepth) { case 16: System.out.println (“EGA Graphics is not supported. You need at least 65536 colors.”); break; case 256: System.out.println (“Standard VGA Graphics is not supported. You need at least 65536 colors.”); break; case 65536: System.out.println (“Your color depth is just adequate, but true color would be much better.”); break; case 16777216: System.out.println (“Ok, you fullfill all the color requirements.”); }

Verzweigung Die switch Anweisung Beachten Sie, dass sich am Ende einer jeden case Klausel eine break Anweisung befindet. Werden die break Anweisungen nicht eingefügt und die Farbtiefe beträgt 16, dann werden alle vier Meldungen ausgegeben. Die break Anweisung stellt sicher, dass das Programm die switch Anweisung verlässt, wenn eine erfüllte Bedingung gefunden wurde

Verzweigung Die switch Anweisung Sie können am Ende (vor der schließenden } Klammer) noch eine default Klausel angeben. Diese wird ausgeführt, wenn keine der case Bedingungen erfüllt ist: default: System.out.println (“Unknown color depth”);

Schleifen Schleifen erlauben es, einen Block mit Programmkode mehrere Male zu wiederholen. In Java gibt es drei Arten von Schleifen: while Schleifen do ... while Schleifen for Schleifen

while Schleifen while Schleifen bestehen aus zwei Teilen, dem Schleifenkörper und einer vorangestellten Bedingung. Solange die Bedingung erfüllt ist, wird der Schleifenkörper ausgeführt. count = 0; while (count < 10) { System.out.println (“count is ” + count); count ++; }

while Schleifen Der while Ausdruck kann auch mehrere Testbedingungen enthalten, wie z.B.: count = 0; theend = false; while ((count < 10) && (theend == false)) { System.out.println (“count is ” + count); count ++; theend = instream.read(); // read a character }

do ... while Schleifen Dem Schleifenkörper wird die do Anweisung und eine öffnende Klammer vorangestellt. Die while Anweisung folgt der schließenden Klammer am Ende des Anweisungsblocks. count = 0; theend = false; do { System.out.println (“count is ” + count); count ++; theend = instream.read(); // read a character } while ((count < 10) && (theend == false))

for Schleifen Die for Schleifen bieten einen einfachen Weg, das Erhöhen bzw. Verringern eines Wertes zu realisieren. Die for Schleife besteht aus drei in runden Klammern eingeschlossenen Komponenten, gefolgt vom Schleifenkörper. for (count = 0; count < 10; count ++) { System.out.println (“count is ” + count); }

Schleifen verlassen Unter Benutzung der Anweisungen break und continue können Sie eine Schleife verlassen, bevor sie vollständig durchlaufen wurde (z.B. wenn ein Fehler aufgetreten ist und es keine Möglichkeit der Fortsetzung gibt). count = 0; do { newchar = instream.read (); // read a character if (newchar == ‚\n‘) break; System.out.println (“count is ” + count); count ++; } while (count < 10)

Schleifen verlassen Wird anstatt der break Anweisung continue verwendet, so ignoriert das Programm den Rest der Anweisungen im Schleifenkörper und geht sofort wieder an den Beginn der Schleife. endOfLoop: for (c1=0; c1<10; c1++) { for (c2=0; c2<50; c2++) { newchar = instream.read (); // read a character if (newchar == ‚\0‘) break enfOfLoop; System.out.println (newchar); } System.out.println (“\n”); } System.out.println (“The end”);