35
Programmieren mit JAVA

Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

Embed Size (px)

Citation preview

Page 1: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

Programmieren mit JAVA

Page 2: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

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.

Page 3: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

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.

Page 4: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

JAVA?

Was ist das Besondere an Java?

• Plattformunabhängigkeit

• hohe Stabilität und Sicherheit

• hohe Performance in der Laufzeit

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)

Page 5: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

JAVA?

Wie geht es weiter mit Java?

• Java contra Windows

• kostenlose Entwicklungsumgebung

• sehr viel Unterstützung im Internet

Page 6: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

Sequentiell - Objektorientierte Sprachen

sequentiell• 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

Page 7: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

Sequentiell - Objektorientierte Sprachenobjektorientiert

• 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

Page 8: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

Applikationen - AppletsApplets

• 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

Applikationen• 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

Page 9: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

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);

}

}

Page 10: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

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!

Page 11: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

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“

Page 12: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

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.

Page 13: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

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 - ...

Page 14: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

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.

Page 15: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

Übung

Computer K lasse

• 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

Page 16: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

weitere Begriffe der OOP

• Metaklasse, Abstrakte Klasse, Vererbung, Überschreiben, Polymorphismus, Binden, ...das nächste Mal...

Page 17: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

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.htmlhttp://www.rittershofer.de/info/java/java.htmhttp://java.cs.uni-magdeburg.de/dokus/Tutorial/javabuch-gk/http://www.dd.shuttle.de/dd/srz/java/javaprj.htm

Page 18: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

Verzweigungif ... 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?”);

Page 19: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

Verzweigungif ... 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?”);

Page 20: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

Verzweigungif ... 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.”);

Page 21: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

Verzweigungif ... 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?”);

Page 22: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

VerzweigungBlockanweisungen

• 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();

}

Page 23: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

VerzweigungDer 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);

Page 24: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

VerzweigungDer Bedingungsoperator

• Die allgemeine Syntax lautet:

test ? true result : false result

Page 25: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

VerzweigungDie 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.”);

Page 26: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

VerzweigungDie 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 notsupported. 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 thecolor requirements.”);

}

Page 27: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

VerzweigungDie 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

Page 28: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

VerzweigungDie 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”);

Page 29: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

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

Page 30: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

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 ++;

}

Page 31: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

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

}

Page 32: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

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))

Page 33: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

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);

}

Page 34: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

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)

Page 35: Programmieren mit JAVA JAVA? Um herauszufinden ob diese Programmiersprache für Sie geeignet ist, zeigen Sie bitte auf das Bild, welches Ihre gegenwärtigen

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”);