Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner. Einführung in Java

Ähnliche Dokumente
JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Einstieg in die Informatik mit Java

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Grundlagen der Informatik für Ingenieure I

Einstieg in die Informatik mit Java

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

Java I Vorlesung Imperatives Programmieren

Vorkurs Informatik WiSe 16/17

Teil 3 - Java. Grundlagen Klassen, Attribute Methoden

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

Einführung in Java. Ausgewählte Quellen zu Java

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Angewandte Mathematik und Programmierung

Primitive Datentypen

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Vorkurs Informatik WiSe 17/18

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

Informatik I - Einstiegskurs

Einstieg in die Informatik mit Java

Übungen zur Vorlesung Wissenschaftliches Rechnen I

Programmiervorkurs Einführung in Java Tag 1

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

Einstieg in die Informatik mit Java

Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich

3. Anweisungen und Kontrollstrukturen

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Praxis der Programmierung

Schwerpunkte. 8. Ausdrücke, Operatoren (einfache Typen) Beispiel: Schaltjahr Test. Einführendes Beispiel: Grundprobleme

Datenstrukturen und Algorithmen

Grundlagen der Modellierung und Programmierung, Übung

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JAVA 06: Gemischte einfache Fragen zu Java

Einstieg in die Informatik mit Java

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin

2 Programmieren in Java I noch ohne Nachbearbeitung

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 15/16

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

Anweisungen zur Ablaufsteuerung

Einführung in die Programmierung 1

Einführung in die Programmierung mit Java

Informatik Vorkurs - Vorlesung 2

Wiederholung JAVA. 1. (Vorbereitung)

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen.

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

Kapitel 1: Einführung

Ausdrücke der Programmiersprache Java

Martin Unold INFORMATIK. Geoinformatik und Vermessung

3. Java - Sprachkonstrukte I

Algorithmen zur Datenanalyse in C++

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

Einführung in die Programmierung

Java Einführung Programmcode

Praktische Softwaretechnologie Vorlesung 2

Einführung in die Programmierung Blockkurs Java

Grundlagen von C# - 1

Java-Applikationen (Java-Programme)

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010

2 Eine einfache Programmiersprache

This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 License.

2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen

Unterlagen. CPP-Uebungen-08/

System.out.println("TEXT");

Wo sind wir? Übersicht lexikale Struktur von Java

2 Eine einfache Programmiersprache

Martin Unold INFORMATIK. Geoinformatik und Vermessung

JAVA-Datentypen und deren Wertebereich

3. Java - Sprachkonstrukte I

Übungsblatt 1. Java Vorkurs (WS 2017)

Algorithmen und Datenstrukturen II

2 Eine einfache Programmiersprache

Liste Programmieren Java Überblick

Die einfachsten Anweisungen

Grundlagen der Programmierung Teil1 Einheit III Okt. 2009

2 Eine einfache Programmiersprache

Intensivübung zu Algorithmen und Datenstrukturen

Einführung in die Programmierung Blockkurs Java

Programmieren I + II Regeln der Code-Formatierung

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy

RO-Tutorien 3 / 6 / 12

Objektorientierte Programmierung Studiengang Medieninformatik

Die Programmiersprache C Eine Einführung

Programmiertechnik Kontrollstrukturen

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

Variablen. int Flugzeug. float. I write code Hund. String. long. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz

Transkript:

Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner Einführung in Java (Original Titel der Folien: Java- Intensivkurs am IAS) Vorlesung Informatik I, 15.11.2005, Daniel Huson 1

Überblick Teil 1: Erster Überblick Java Grundlagen Teil 2: Grundlagen der Objektorientierung Klassen und Objekte in Java Teil 3: Overloading, Konstruktoren, Vererbung Ausnahmebehandlung Teil 4: Datenstreams und Dateien Teil 5: Applet-Grundlagen Teil 6: Elemente des AWT

Überblick Teil 1: Erster Überblick Java Grundlagen Teil 2: Grundlagen der Objektorientierung Klassen und Objekte in Java

Erster Überblick Was ist Java? ein Projekt von Sun: Programmierumgebung WWW-Browser die Programmierumgebung (JavaDevelopersKit) besteht aus: einem Java-Compiler verschiedenen Bibliotheken einem Laufzeitsystem einem Debugger Kennzeichen der Java Programmiersprache: objektorientiert plattformunabhängig streng typisiert sicher in Netzen ähnliche Syntax wie C++

Erster Überblick Geschichtliches... August 1991: James Gosling (SUN) entwickelt Oak (Java) Entwicklungsziel: einfache Programmiersprache für Consumer Electronics (z.b Interactive TV, Settop-Boxes) Anfang 1994: Nach Misserfolgen im Bereich Consumer Electronics und zunehmendem Erfolg des WWW - Neuausrichtung auf Internet Februar 1995: Erste Version von Oak (jetzt: Java) und einem Java WWW-Browser (Hotjava) werden veröffentlicht August 1995: SUN lizensiert Java an Netscape, IBM und Microsoft Dezember 1998: JDK 1.2 Juni 2004: aktuelle Version J2SE 5.0

Erster Überblick Allgemeine Konzepte Java wird interpretiert (schneller Entwicklungszyklus) Hohe Zuverlässigkeit und Robustheit durch Speichermanager Verzicht auf (herkömmliche) Zeigertechniken strikte Typenüberprüfung zur Kompilier- und Laufzeit hohe Verfügbarkeit - Code kann jederzeit über das Netzwerk nachgeladen werden Portabilität - Write once, run everywhere GUI-Klassenbibliothek (AbstractWindowingToolkit)

Erster Überblick Plattformunabhängigkeit Java- Interpreter (Pentium) Java-Compiler (Pentium) Java- Code *.java Java-Compiler (SPARC)... *.class Java- Interpreter (SPARC) Java- Bytecode (plattformunabhängig) Java- Interpreter (...)

Erster Überblick Vergleich mit C++ (1) Java baut auf C++ auf: größtenteils identische Syntax Ausnahmebehandlung (exception handling) Meta-Objekt-Informationen Java vermeidet folgende (teilweise kritische ) C++ Elemente: Zeiger (Pointer) Mehrfachvererbung Präprozessor, keine Header-Dateien generischen Klassen, Templates Java enthält zusätzliche Elemente Garbage Collection Interface-Konzept Unicode Threads

Erster Überblick Werkzeuge des JDK Interpreter (Java Virtual Machine): java Testumgebung für Applets: appletviewer Java-Compiler: javac Generierung von HTML-Dokumentation für Klassen: javadoc Java-Debugger: jdb Headerfile-Generator zur Einbindung von C-Funktionen: javah Disassembler für Java-Bytecode: javap werden im Rahmen des Kurses nicht behandelt! JDK kostenlos verfügbar: http://java.sun.com/j2se/

Erster Überblick Applikation contra Applet Applikation: normales, Java-Programm, vergleichbar mit anderen (interpretierten) Programmiersprachen Bytecode wird von einem Interpreter ausgeführt Applets: werden in HTML-Seiten eingebunden und von Web-Browsern ausgeführt können über das Netz geladen werden unterliegen strengen Sicherheitsanforderungen (z.b. kein Schreiben im lokalen Dateisystem) ermöglichen interaktive Web-Seiten

Erster Überblick HelloWorld-Applikation (1) // Datei: HelloWorld.java public class HelloWorld { public static void main( String[] args ) { System.out.println( Hello World! ); } } das gesamte Programm befindet sich innerhalb der Klassendefinition public class HelloWorld {} Java-Programm = Menge von Klassendefinitionen die Klassendefinition HelloWorld muss in einer gleichnamigen Datei HelloWorld.java abgespeichert main()-methode ist der Einstiegspunkt des Programms Bildschirmausgabe mit System.out.println()

Erster Überblick HelloWorld-Applikation (2) Übersetzung der Applikation (Compiler): % javac HelloWorld.java nach fehlerfreier Übersetzung entsteht die Bytecode-Datei: HelloWorld.class ausführbares Programm = Menge von.class-dateien Ausführen der Applikation (Interpreter): % java HelloWorld Ausgabe von HelloWorld auf dem Bildschirm

Erster Überblick HelloWorld-Applet (1) // Datei: HelloWorld.java import java.awt.graphics; public class HelloWorld extends java.applet.applet { public void paint( Graphics g ) { g.drawstring( Hello World!, 50, 25); } } import ermöglich Zugriff auf AWT-Bibliothek (Abstract Windowing Toolkit, JDK) keine main-methode Überschreiben von vorgegebenen Methoden (paint), die in der AWT-Klasse Applet definiert sind Compiler-Aufruf wie bei Applikation

Erster Überblick HelloWorld-Applet (2) // minimale HTML-Datei mit eingebundenem Applet <HTML> <HEAD> <TITLE>HelloWorld Applet</TITLE> </HEAD><BODY> <APPLET CODE= HelloWorld.class WIDTH=100 HEIGHT=100> </APPLET> </BODY> </HTML> CODE gibt Name der Appletklasse an WIDTH und HEIGHT bestimmen die (Pixel-)Größe des Applets HTML-Datei und HelloWorld.class sollten im gleichen Verzeichnis liegen HTML-Datei in Java-fähigen Browser oder mit appletviewer aufrufen

Überblick Teil 1: Erster Überblick Java Grundlagen Teil 2: Grundlagen der Objektorientierung Klassen und Objekte in Java

Java Grundlagen Prinzip: Die Syntax von Java ist stark an C/C++ angelehnt und größtenteils identisch. Anweisungen einzelne Java-Operationen: Zuweisungen (int i = 1) Ablaufsteuerung (if/else, do-while) Methodenaufrufe (System.out.println( Hallo )) Instanziierungsaufrufe (Date today = new Date()) sonstige Anweisungen (import java.awt.font) Wichtig: Anweisungen werden durch Semikolon (;) getrennt, z.b.: import java.awt.font; int i = 1; System.out.println( Hallo );

Java Grundlagen Variablen (1) Stellen im Speicher, die Werte aufnehmen können bestehen aus Typ, Namen und Wert: int i = 12; müssen vor der Benutzung deklariert werden: zaehler = 7; // Fehler: Variable zaehler unbekannt! Deklaration mit Anfangswerten erlaubt: boolean muede = false; Mehrfachdeklarationen in einer Zeile möglich: int i = 0, j = 3, k = 5; Variablennamen müssen mit einem Buchstaben, einem Unterstreichungsstrich (_) oder einem Dollarzeichen ($) beginnen

Java Grundlagen Variablen (2) Java unterscheidet Groß/Kleinbuchstaben aussagekräftige Variablennamen wählen! Variablentyp darf sein: primitiver Datentyp Klassenname Array neue (benutzerspezifische) Variablentypen können nur durch neue Klassen erzeugt werden (kein typedef wie in C/C++!)

Java Grundlagen Primitive Datentypen Typ Bedeutung Größe boolean true oder false 1 Bit char Unicode-Zeichen 16 Bits byte Ganze Zahl mit Vorzeichen 8 Bits short Ganze Zahl mit Vorzeichen 16 Bits int Ganze Zahl mit Vorzeichen 32 Bits long Ganze Zahl mit Vorzeichen 64 Bits float IEEE 754-Fließkommazahl 32 Bits double IEEE 754-Fließkommazahl 64 Bits keine Implementierungsabhängigkeiten

Java Grundlagen Kommentare // Text Kommentar bis zum Ende der Zeile /* Text */ mehrzeilige Kommentare möglich, aber kein Verschachteln von Kommentaren! /** Text */ spezielle Kommentare für javadoc Zeichenketten keine Zeichen-Arrays sondern Objekte der Klasse String bestehen aus mehreren Zeichen zwischen doppelten Anführungszeichen ( Hallo ) Verkettung (+) möglich ( Hallo +, World ) können Escape-Zeichen enthalten (Auszug): \n neue Zeile \t Tab \b Rückschritt \r Return \\ Backslash \ doppeltes Anführungszeichen \xdd Hexadezimal \uddd Unicode-Zeichen

Java Grundlagen Operatoren (1) Arithmetik Operator Bedeutung Beispiel + Addition 3 + 4 - Subtraktion 5-7 * Multiplikation 5 * 5 / Division 14 / 7 % Modulo 20 % 7 Zuweisungen Ausdruck x += y x -= y x *= y x /= y Bedeutung x = x + y x = x - y x = x * y x = x / y

Java Grundlagen Operatoren (2) Inkrement/Dekrement Ausdruck x++ x-- ++x --x Bsp.: y = x++ und y = ++x Vergleiche und Boolean Bedeutung x = x + 1, Inkrementieren (postfix) x = x 1, Dekrementieren (postfix) x = x + 1, Inkrementieren (prefix) x = x - 1, Dekrementieren (prefix) Operator Bedeutung Beispiel == Gleich x == 3!= Ungleich x!= 3 <, > Kleiner als, Größer als x < 3, x > 3 <=, >= Kleiner gleich, Größer gleich x <= 3, x >= 3 && Und (x > 0) && (x < 1) Oder (x > 0) (x < 1)

Java Grundlagen Operatoren (3) Bitweise Operatoren Operationen auf einzelne Bits in Ganzzahlen (z.b. Verschiebungen, Komplement, AND, OR,...) spielen in diesem Kurs keine Rolle Operatorpräzedenz Reihenfolge, in der Ausdrücke mit Operatoren bewertet werden, z.b y = 6 + 4 / 2 ist 8 und nicht 5! Reihenfolge (kann durch Klammerung geändert werden): 1) Klammern ([], ()) und Methoden- und Variablenzugriffe (.) 2) Inkrement/Dekrementausdrücke (++, --) 3) Multiplikation, Division, Modulo (*, /, %) 4) Addition, Subtraktion (+, -) 5) Bitweise Operationen 6) Vergleiche (<, >, ==,!=) 7) Logische (Boolsche) Operatoren (&&, ) 8) Zuweisungen (=, +=, -=, *=, /=,...)

Java Grundlagen Operatoren (4) Beispiel: // Datei: OperatorTest.java class OperatorTest { public static void main(string[] args) { int x = 6; int y = 4; } } System.out.println( x + y = + (x + y)); // = 10 System.out.println( x / y = + (x / y)); // = 1 System.out.println( x % y = + (x / y)); // = 2 System.out.println( ++x : + (++x)); // = 7 System.out.println( --x : + (--x)); // = 6

Java Grundlagen Ablaufsteuerung (1) if-anweisung if( wert >= 1 ){ // Bedingung summe = summe + wert; // Anweisungen } else { // alternativer Zweig wert = 0; // Anweisungen } else-zweig ist optional bei nur einem Befehl im if/else-zweig kann die {}- Klammerung weggelassen werden: if( wert >= 1 ) summe = summe + wert;

Java Grundlagen Ablaufsteuerung (2) switch-anweisung switch( wert ){ case 1: summe++; // wert = 1! case 2: summe = summe + 2; // wert = 2! break; // springt aus der {}-Klammer } default: // Vergleich immer erfüllt! summe = 0; zur Variablen wert passender Ausdruck und/oder Default- Ausdruck wird ausgeführt

Java Grundlagen Ablaufsteuerung (3) while-schleife while( summe >= 1 ){ // Schleifen-Bedingung } summe--; // Anweisungen Wiederholung der Anweisungen bis Schleifen-Bedingung falsch do-while-schleife do{ summe--; // Anweisungen } while( summe >= 1 ); wie while-schleife, Anweisungen werden jedoch mindestens einmal durchlaufen

Java Grundlagen Ablaufsteuerung (4) for-schleife for( int i = 0; i < 10; i++ ){ } System.out.println(i); // Anweisungen zunächst Ausführung der Initialisierungsanweisung (int i = 0) Auswertung des Boolschen Ausdrucks ( i < 10 ): falls wahr, wird zunächst die Anweisung (System.out.println(i)) und dann die Inkrementierunganweisung (i++) ausgeführt Ablauf wiederholen solange Boolscher Ausdruck wahr ist in der for-schleife deklarierte Variablen sind nur innerhalb der Schleife gültig

Java Grundlagen Ablaufsteuerung (5) continue-anweisung for( int i = 0; i < 10; i++ ){ } if( i > 6 ) continue; System.out.println(i); // continue springt hierher springt an das Ende des Schleifenrumpfes return-anweisung return i; beendet Methode und liefert (falls vorhanden) Rückgabewert der Methode

Java Grundlagen Zusammenfassung Java ist eine objektorientierte Sprache von Sun, die für den Einsatz in Netzen konzipiert ist Portabilität wird durch plattformunabhängigen Bytecode erreicht: Write once, run everywhere Java vereinfacht C++ (Zeiger, Präprozessor) und bietet zusätzliche Elemente (Garbage Collection) mit Java können sowohl normale Programme als auch Applets geschrieben werden Anweisungen, Variablen, Operatoren und Ablaufsteuerung sind bis auf wenige Ausnahmen mit C/C++ identisch das JDK ist kostenlos verfügbar