Einführung in Java Folie 1. Vorlesung Elektronisches Publizieren. Einführung in Java



Ähnliche Dokumente
Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Applications Applets (eingeschränkte Rechte)

Java Einführung Programmcode

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Vorkurs Informatik WiSe 15/16

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Programmieren I. Die Programmiersprache Java. Institut für Angewandte Informatik

Grundlagen der Programmierung UE

Berner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi

Grundlagen von Python

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Vorlesung Informatik II

Programmieren in Java

Grundlagen der Programmierung UE

Objektorientierte Programmierung. Kapitel 12: Interfaces

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Grundlagen der Programmierung APPLETS

Java: Vererbung. Teil 3: super()

Grundlagen der Informatik für Ingenieure I

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien.

Distributed Computing Group

Java Kurs für Anfänger Einheit 5 Methoden

Programmentwicklung ohne BlueJ

Einführung in Eclipse und Java

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Vorkurs C++ Programmierung

Java Einführung Abstrakte Klassen und Interfaces

Java Virtual Machine (JVM) Bytecode

25 Import der Beispiele

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Übung: Verwendung von Java-Threads

AKTUEL ZU JAVA 8 PROGRAMMIEREN IN JAVA. 7. Auflage. Im Internet: Alle Beispielprogramme und Lösungen

Version 0.3. Installation von MinGW und Eclipse CDT

Einführung in PHP. (mit Aufgaben)

Tutorium Java Ein Überblick. Helge Janicke

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11

Objektorientierte Programmierung OOP Programmieren mit Java

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Prinzipien Objektorientierter Programmierung

Praktikum: Einstieg: Arbeitsplatz, JCreator

Innere Klassen in Java

Einführung in die Programmierung

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Programmierkurs Java

Zählen von Objekten einer bestimmten Klasse

Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder

Starthilfe für C# Inhaltsverzeichnis. Medien- und Kommunikationsinformatik (B.Sc.) Alexander Paharukov. Informatik 3 Praktikum

LEHRSTUHL FÜR DATENBANKEN

Objektorientierte Programmierung

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick

Javakurs 2013 Objektorientierung

Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

Java Übung. Einführung. 12. April Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung. Vorbereitendes.

Klassendefinitionen verstehen

Installation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren

Installation und Inbetriebnahme von Microsoft Visual C Express

Python SVN-Revision 12

Programmieren I. Die Programmiersprache Java. Institut für Angewandte Informatik

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

Erstellen einer PostScript-Datei unter Windows XP

Java Einführung Packages

Applets I. Grundlagen der g Applet-Programmierung

Programmieren I. Die Programmiersprache Java. Institut für Angewandte Informatik

J.5 Die Java Virtual Machine

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Kompilieren und Linken

C# im Vergleich zu Java

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Java-Tutorium WS 09/10

Installation der SAS Foundation Software auf Windows

JAVA als erste Programmiersprache Semesterkurs

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

Programmieren I. Administratives / Java Installation. Thomas Vetter, Brian Amberg, Andreas Forster. 21. September 2010 UNIVERSITÄT BASEL

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE

1. Java Grundbegriffe

Einführung in die Programmierung Blockkurs Java

Programmierung für Mathematik (HS13)

Software-Engineering Grundlagen des Software-Engineering

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Unigraphics Schnittstelle entfernen

Grundlagen. Kapitel 1

Einführung in die Programmierung Blockkurs Java

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

Technische Dokumentation SilentStatistikTool

Einführung in Javadoc

EasyWk DAS Schwimmwettkampfprogramm

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost

Einführung zu den Übungen aus Softwareentwicklung 1

HTML5. Wie funktioniert HTML5? Tags: Attribute:

Transkript:

Einführung in Java Folie 1 Vorlesung Elektronisches Publizieren Einführung in Java

Einführung in Java Folie 2 Literatur David Flanagan: Java In A Nutshell, Deutsche Ausgabe, 2. Auflage; O'Reilly / International Thomson Verlag, Bonn, 1997. Tim Ritchey: Java!, New Riders Publishing, Indianapolis, Indiana, 1995. Ed Tittel, Mark Gaither: 60 Minute Guide to Java, IDG Books Worldwide, Inc., Foster City, CA, 1995. The Java Tutorial: http://java.sun.com/docs/books/tutorial/index.html Online-Doku der HotJava Alpha 3 Distribution: http://tech-www.informatik.uni-hamburg.de/ Dokumentation/java/doc.alpha3/ Demos zur HotJava Alpha 3 Distribution: http://tech-www.informatik.uni-hamburg.de/ Dokumentation/java/demo.alpha3/

Einführung in Java Folie 3 Java, die Internet-Programmiersprache In den letzten Jahren ist die Programmiersprache Java vor allem deshalb bekannt geworden, weil sie es ermöglicht, interaktive Web-Seiten zu erstellen. Doch die meisten Java-Applets, die es bislang zu sehen gibt, sind nur Spielereien und gewissermaßen die Spitze des Eisberges. Java wurde entworfen, um direkt im Internet zu programmieren. Mit Java ist es möglich, übers Internet nicht nur Daten, sondern auch Programme zu übertragen, die die Daten bearbeiten. So wäre es z.b. möglich, daß ein Rechenzentrum Internet-Benutzern erlaubt, ihre Hochleistungshardware zu benutzen, indem es eine Benutzeroberfläche als Java- Applet zur Verfügung stellt. Das Java-Applet würde damit die Schnittstelle bilden zwischen einer benutzerfreundlichen Datenein- und ausgabe und einer hochspezialisierten Maschine. Damit jeder Benuzer auch in den Genuß dieser Vorteile kommt, wurde Java als plattformunabhängige Sprache entwickelt. Die Ausführung der Programme auf einer spezifischen Plattform übernimmt der Java-fähige Web-Browser, der natürlich auf die vorhandene Hardware zugeschnitten ist.

Einführung in Java Folie 4 Die Konzepte von Java (1) Java wurde von der amerikanischen Firma Sun entwickelt. Sie definiert die Sprache folgendermaßen: Java: A simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high-performance, multi-threaded and dynamic language.

Einführung in Java Folie 5 Die Konzepte von Java (2) "Einfach" schnell erlernbar Zahl von Sprachkonstrukten ist klein keine fehlerträchtigen Zeiger automatische Speicherfreigabe durch "Garbage Collection" "Objektorientiert" "Denken" in Daten und Methoden anstatt in Prozeduren "Verteilt" Java wurde entwickelt, um Anwendungen auf Netzwerken zu unterstützen sehr mächtige Methoden für die Netzwerkkommunikation im java.net Paket in Java ist es genauso einfach, eine lokale wie eine entfernte Datei zu öffnen

Einführung in Java Folie 6 Die Konzepte von Java (3) "Interpretiert" Java-Compiler erzeugt Bytekode anstelle von Machinenkode Bytekode ist architekturunabhängiges Objektdateiformat Kompilierte Dateien benötigen Interpreter und Laufzeitsystem zur Ausführung (= Java Virtual Machine, VM) VM wird z.b. von Web-Browser oder dem Java Development Kit (JDK) zur Vefügung gestellt "Robust" Java vermeidet bestimmte Arten von Programmierfehlern stark typisierte Sprache, d.h. potentielle Typeninkonsistenzen können schon vom Compilererkannt werden keine Zeiger; schließt die Gefahr aus, Speicher zu überschreiben und Daten unbrauchbar zu machen sehr mächtige Ausnahmebehandlung; ermöglicht es, außergewöhniche Programmzustände zu erkennen und auch zu behandeln ohne Programmabstürze

Einführung in Java Folie 7 Die Konzepte von Java (4) "Sicher" Wichtiger Aspekt für den Einsatz in Netzwerkumgebungen Java's Modell zur Speicherverwaltung verhindert gefährlichen Kode. Programmierer können keine bestimmten Speicheradressen ansprechen, da keine Zeigermanipulation möglich ist. Speicheraufteilung und Adressengenerierung wird erst vom Interpreter ausgeführt. Laufzeitsystem verifiziert Bytekode vor der Ausführung auf Authentizität der Sprache "Architekturunabhängig" Wie gesehen, werden Javaprogramme in architekturunabhängigen Bytekode übersetzt nur Java VM muß vorhanden sein Java VM auf fast allen Systemen im Internet durch den Web-Browser vorhanden java.awt Paket ermöglicht vertrautes "Look-and- Feel" auf allen Plattformen "Portabilität" Portabilität größtenteils durch Architekturunabhängigkeit garantiert keine implementationsabhängigen Aspekte der Sprache Java-Umgebung auf neue Hardware- und Betriebssystemplattformen portierbar, da Compiler in Java und Laufzeitumgebung in ANSI C geschrieben

Einführung in Java Folie 8 Die Konzepte von Java (5) "Hochperformanz" sehr gute Performanz im Haupteinsatzgebiet von Java: interaktive, graphische und netzbasierte Anwendungen 20-mal langsamer als C, aber enormer Geschwindigkeitsgewinn durch Einsatz von neuen "Just in time"-compilern. Diese übersetzen den Bytekode während der Laufzeit in den jeweiligen Machinenkode. sehr viel schneller als voll-interpretierte Sprachen wie TCL, UNIX-Shells und sogar PERL "Multithread-Fähigkeit" unterstützt die Ausführung mehrere Aufgaben (Threads) gleichzeitig steigert den interaktiven Durchsatz graphischer Applikationen Java stellt direkt Methoden zur Erzeugung, Überwachung, Synchronisation und zum Beenden von Threads zur Verfügung "Dynamisch" Java paßt sich einer veränderlichen Umgebung an Klassen werden erst wenn sie gebraucht werden übers Netz geladen: Verteilung der Netzlast

Einführung in Java Folie 9 Anwendungen und Applets Man unterscheidet Java Programme hauptsächlich in Anwendungen und Applets. Anwendungen: sind "standalone" (eigenständige) Programme, d.h. sie werden direkt von der Kommandozeile aufgerufen und benötigen keinen Web-Browser lesen Parameter von der Kommandozeile enthalten eine main() Methode (s. später) Applets: werden in eine HTML-Dokument eingebettet und werden von einem Java-fähigen Web-Browser aufgerufen lesen Parameter aus dem HTML-Dokument können mit dem Browser interagieren (HTML-Dokumente anfordern, Systemdaten lesen, etc. )

Einführung in Java Folie 10 Chris

Einführung in Java Folie 11 Chris

Einführung in Java Folie 12 Ein erstes Beispiel (1) Der folgende Java Code, der in einer Datei "HelloWorld.java", enthalten sein muß, stellt ein einfaches Beispiel dar: /** * Die HelloWorld Klasse implementiert eine * Anwendung, die einfach "Hello World" in * die Standardausgabe schreibt.. */ class HelloWorld { public static void main(string[] args) { System.out.println("Hello World!"); // Gib die Zeichenkette aus. } } Die Quelldatei kann nun mit dem Java Compiler übersetzt werden. Bei Erfolg erzeugt der Compiler im gleichen Verzeichnis wie "HelloWorld.java" die Datei "HelloWorld.class". Diese Datei enthält den plattformunabhängigen Java Bytecode, der vom Java Laufzeitsystem interpretiert werden kann.

Einführung in Java Folie 13 Ein erstes Beispiel (2) Das Programm kann nun mit dem Java Interpreter gestartet werden. > java HelloWorld Hello World! > Das eben erzeugte Programm stellt eine Java Anwendung dar; sie kann unabhängig von einem Browser gestartet werden.

Einführung in Java Folie 14 Aufbau des Beispielprogrammes (1) Kommentare im Java Code Die "HelloWorld" Anwendung enthält zwei Kommentarblöcke. Der erste Block, am Anfang des Programms, verwendet /** und */ um den Kommentar einzuklammern. Eine Code-Zeile kann aber auch, wie beim zweiten Kommentar, mit // angefangen werden. Desweiteren kann man, wie in C, Kommentare auch mit /* und */ eingrenzen. /** * Die HelloWorld Klasse implementiert eine * Anwendung, die einfach "Hello World" in * die Standardausgabe schreibt.. */ class HelloWorld { public static void main(string[] args) { System.out.println("Hello World!"); // Gib die Zeichenkette aus. } }

Einführung in Java Folie 15 Aufbau des Beispielprogrammes (2) Definieren einer Klasse In Java existiert jede Methode (Funktion) und Variable innerhalb einer Klasse oder eines Objektes (einer Instanz einer Klasse). Java erlaubt keine globalen Funktionen oder Variablen. Deshalb ist das Grundgerüst jedes Java Programmes eine Klassendefinition.

Einführung in Java Folie 16 Aufbau des Beispielprogrammes (3) Die main() Methode Der Startpunkt für jede Java Anwendung ist die main() Methode. Um eine Anwendung im Java Interpreter zu starten, übergibt man ihm den Namen der Klasse. Der Interpreter ruft darauf hin die main() Methode dieser Klasse auf. Die main() Methode bestimmt den Programmablauf, legt benötigte Ressourcen an und ruft eventuell andere Methoden der Anwendung auf.

Einführung in Java Folie 17 Aufbau des Beispielprogrammes (4) Klassen und Objekte Klassen und Objekte sind die Bausteine jedes Java Programmes. Mit ihnen und den darin enthaltenen Methoden und Anweisungen wird die Funktionalität des Programmes festgelegt.

Einführung in Java Folie 18 Definieren einer Klasse (1) Die fett gedruckten Zeilen des Beispielprogrammes begrenzen den Block einer Klassendefinition: class HelloWorld { public static void main(string[ ] args) { System.out.println("Hello World!"); // Gib die Zeichenkette aus. } }

Einführung in Java Folie 19 Definieren einer Klasse (2) Eine Klasse ist ein elementarer Baustein einer objektorientierten Sprache wie Java. Die Klasse enthält eine Beschreibung der Daten und des Verhaltens, die mit den Instanzen dieser Klasse verbunden werden. Beim Instanziieren einer Klasse erzeugt man ein Objekt, das das gleiche Verhalten aufweist wie andere Instanzen der gleichen Klasse. Die Daten, die mit einer Klasse oder einem Objekt assoziiert sind, werden in Variablen gespeichert. Das Verhalten einer Klasse oder eines Objektes wird durch die Methoden festgelegt. Methoden können mit Funktionen oder Prozeduren einer prozeduralen Sprache wie C verglichen werden.

Einführung in Java Folie 20 Definieren einer Klasse (3) Zum Verständnis des Klassenkonzeptes kann man z.b. ein Rechteck als Klasse sehen. Ein Rechteck ist definiert durch seine Dimensionen, deshalb enthält die Klasse 'Rechteck' Variablen für die Breite und die Länge. Die Klasse 'Rechteck' könnte auch noch eine Methode enthalten, die den Flächeninhalt des Rechteckes ausrechnet. class Rechteck { int laenge; int breite; } int FlaechenInhalt() { return laenge * breite; } Eine Instanz der Rechteck Klasse würde die Informationen eines bestimmten Rechteckes enthalten, z.b. die Ausmaße dieser Seite.

Einführung in Java Folie 21 Definieren einer Klasse (4) Die einfachste Form einer Klassendefinition in Java ist also: class Name {... } Das Schlüsselwort class führt eine die Definition der Klasse Name ein. Die Variable und Methoden der Klasses werden danach von geschweiften Klammern umgeben. Unsere 'HelloWorld' Anwendung besteht aus einer Methode, hat aber keine Variablen.

Einführung in Java Folie 22 Die main() Methode (1) Die folgenden fett gedruckten Zeilen umgeben die Definition der main() Methode. class HelloWorld { public static void main(string[ ] args) { System.out.println("Hello World!"); // Gib die Zeichenkette aus. } } Jede Java Anwendung muß eine main() Methode mit der festgelegten Signatur haben: public static void main(string[ ] args)

Einführung in Java Folie 23 Die main() Methode (2) Die Signatur der main() Methode enthält drei Schlüsselwörter: das Schlüsselwort public bewirkt, daß die main() Methode von jedem Objekt aufgerufen werden kann. das Schlüsselwort static definiert main() als Klassenmethode. Dies bedeutet, daß zum Aufruf der Methode die enthaltende Klasse nicht instanziiert werden muß. das Schlüsselwort void gibt an, daß main() keinen Rückgabewert liefert. Wie oben gesehen, erhält die main() Methode als Argument ein Array mit Elementen vom Typ string. In diesem Array werden vom Betriebssystem die Kommandozeilenparameter übergeben.

Einführung in Java Folie 24 Klassen und Objekte (1) Die Hello World Anwendung ist sehr einfach und definiert selbst keine weiteren Klassen. Sie benutzt jedoch eine andere Klasse - die System Klasse, die Bestandteil des Java API (application programming interface) ist. Das Java API gehört zur Entwicklungsumgebung.

Einführung in Java Folie 25 Klassen und Objekte (2) Die fett gedruckte Zeile zeigt die Benutzung einer Klassenvariable der System Klasse und einer Instanzenmethode. class HelloWorld { public static void main(string[] args) { System.out.println("Hello World!"); // Gib die Zeichenkette aus. } } Der erste Teil der Anweisung System.out ist der vollständige Name der Variable out innerhalb der System Klasse. Eine Besonderheit hier ist, daß die System Klasse von der Anwendung nicht instanziiert und auf die Variable out über den Klassennamen zugegriffen wird. Dies ist möglich weil out eine Klassenvariable ist, und sich demnach auf die Klasse anstatt auf eine Instanz der Klasse bezieht.

Einführung in Java Folie 26 Using a Class Method or Variable Let s take a look at the first segment of the statement: System.out.println("Hello World!"); The construct System.out is the full name of the out variable in the System class. Notice that the application never instantiates the System class and that out is referred to directly from the class name. This is because out is a class variable--a variable associated with the class rather than with an instance of the class. You can also associate methods with a class- -class methods. To refer to class variables and methods, you join the class name and the name of the class method or class variable together with a period (".").

Einführung in Java Folie 27 Using an Instance Method or Variable (1) Methods and variables that are not class methods or class variables are known as instance methods and instance variables. To refer to instance methods and variables, you must reference the methods and variables from an object. While System s out variable is a class variable, it refers to an instance of the PrintStream class (a class provided with the Java development environment) that implements the standard output stream. When the System class is loaded into the application, it instantiates PrintStream and assigns the new PrintStream object to the out class variable. Now that you have an instance of a class, you can call one of its instance methods: System.out.println("Hello World!"); As you can see, you refer to instance methods and variables similarly to the way you refer to class methods and variables. You join an object reference (out) and the name of the instance method or variable (println) together with a period (".").

Einführung in Java Folie 28 Using an Instance Method or Variable (2) The Java compiler allows you to cascade references to class and instance methods and variables together, resulting in constructs like the one that appears in the sample program: System.out.println("Hello World!"); This line of code displays "Hello World!" to the application s standard output stream.

Einführung in Java Folie 29 Summary A class method or class variable is associated with a particular class. The runtime system allocates a class variable once per class, no matter how many instances exist of that class. You access class variables and methods through the class. An instance method or instance variable is associated with a particular object (an instance of a class). Every time you create an object, the new object gets a copy of every instance variable defined in its class. You access instance variables and methods through objects.

Einführung in Java Folie 30 Applets (1) Applets sind Java Programme die nicht wie eine Anwendung direkt vom Java Interpreter gestartet werden, sondern in ein HTML-Dokument eingebettet werden und von einem Java-fähigen Browser oder einem speziellen Applet Viewer geladen werden.

Einführung in Java Folie 31 Applets (2) Ein Beispiel-Applet könnte in der Datei "Hello- WorldApplet.java" wie folgt implementiert werden: import java.applet.applet; import java.awt.graphics; // public class HelloWorldApplet // extends Applet { public void paint(graphics g) { g.drawstring("hello world!", 50, 25); } }

Einführung in Java Folie 32 Applets (3) Compipieren des Java Quellcodes: UNIX: javac HelloWorld.java DOS shell (Windows 95/NT): javac HelloWorld.java MacOS: HelloWorld.java File Icon auf das Java Compiler Icon schieben.

Einführung in Java Folie 33 Applets (4) Die Übersetzung erzeugt die Bytecode-Datei "Hello- WorldApplet.class" Nun muß noch die einbettende HTML-Seite (z.b. "Hello.html") erzeugt werden: <HTML> <HEAD> <TITLE> The Hello World Applet </TITLE> </HEAD> <BODY> Here is the output of my program: <APPLET CODE="HelloWorld.class" WIDTH=150 HEIGHT=25> </APPLET> </BODY> </HTML>

Einführung in Java Folie 34 Applets (5) Fertig! Das Programm wird ausgeführt indem man die HTML Seite in einen Browser lädt. Die Ausgabe sieht wie folgt aus: