Einführung Willkommen zu Vorlesung + Praktikum Programmieren 2 © Prof. Dr. H. Gläser, Programmieren 2 Einführung zur Person: •Harald Gläser •Sprechstunde: Dienstag 12:45 C2.07 •[email protected] •Webpage mit Lehrmaterial: http://www.informatik.hs-furtwangen.de/~glaeser/ © Prof. Dr. H. Gläser, Programmieren 2 Einführung zur Vorlesung und Praktikum: Fragen gleich stellen ! „Selbsttests“ evtl. Tutorium 2 Prüfungslstg.: a) Klausur Die Tests spielen für Scheine keine Rolle b) Praktikum: I) Alle Aufgaben müssen von jedem selbständig innerhalb der Praktikumsstunden bearbeitet werden (kein “leeres Blatt”, beim 2. Fehlen: ärztliches Attest). II) 13 von 13 Aufgaben müssen bestanden werden. III) Abgabe jeweils nächste Woche © Prof. Dr. H. Gläser, Programmieren 2 Einteilung in 2 Übungsgruppen Bitte in Praktikumslisten eintragen ! Erster Praktikumstermin: 25.März Treffpunkt 14.00 C1.20 Jeder geht mit seinen Betreuern zum Praktikumsraum im email - UFO System anmelden !! Link zu UFO: http://www.hs-furtwangen.de/fachbereiche/in/deutsch/intranet/uf/?tg=0 Spale © Prof. Dr. H. Gläser, Programmieren 2 „Skript - Vorlesung“kaufen: www.informatik.hs-furtwangen.de\~glaeser Nr. 705 regelmäßig bestimmte Abschnitte lesen Vorlesungszeit: Fragen klären, Übungen, Selbsttest © Prof. Dr. H. Gläser, Programmieren 2 Einführung Klausurtermin: 22.7.09 14:00 Raum: Aula © Prof. Dr. H. Gläser, Programmieren 2 Texte zu Java http://Java.sun.com/docs/books/tutorial HFU Bibliothek Suchwort: Java Objektorientierte Programmierung in Java Otto Rauh Vieweg ISBN 3-528-15721-6 Java Nachschlagewerk: Java g-packt H. Schildt, Joe O’Neil mitp Verlag Isbn 3-8266-0716-3 Java ist auch eine Insel (C. Ullenboom) http://www.galileocomputing.de/openb ook/javainsel6/ Besonders Einsteiger mit Programmierkenntnissen und Industrieprogrammierer profitieren von diesem umfassenden Werk. © Prof. Dr. H. Gläser, Programmieren 2 Thinking in Java Bruce Eckel, 1997 Fachhochschule Furtwangen Nr.398 IS 10/98 19,40 DM Umstieg auf Java O.Borkner-Delcarlo, 1998 Hanser Verlag , Internet:http://www.hanser.de Java in 21 Tagen Laura Lemay, Charles L. Perkins, 1996 SAMS, Markt&Technik Sprechen Sie Java Hanspeter Mössenböck dpunkt.verlag ISBN 3-89864-231-3 Einführung, aber nicht so stark auf Objektorientierung konzentriert Gemeinsamkeiten und Unterschied C und Java http://www.db.informatik.uni-kassel.de/Help/www/java21days/anh_d.htm Klassen und Objekte Objekte sind in Java Zusammenfassung von verschiedenen Daten (ähnlich einem struct) und Unterprogrammen, die auf den Daten arbeiten. Objekte werden in Klassen beschrieben. Eine Klasse definiert auch einen Datentyp. (sogenannte komplexer Datentyp) Es gibt in Java auch die von C bekannten „normalen „ Datentypen wie int, double etc. (sogenannte einfache Datentypen) © Prof. Dr. H. Gläser, Programmieren 2 Gemeinsamkeiten und Unterschied C und Java Programmrahmen /*** Kommentar */ ... Daten Deklarationen main() { ...Befehle... return (0); } C Java class Klasse { /** Kommentar */ public static void main(String[] args) { ...Befehle... } } © Prof. Dr. H. Gläser, Programmieren 2 Gemeinsamkeiten und Unterschied C und Java Bildschirmausgabe #include <stdio.h> C (void) printf(„Hello World“\n); Java System.out.println(„Hello World“); Operatoren, Klammern Java = C Deklarationen Java = C, aber in Java kann überall deklariert werden aber Sichtbarkeit hängt vom Deklarationsort ab! © Prof. Dr. H. Gläser, Programmieren 2 Kurzschlussoperatoren && (Und) || (Oder) Der zweite Operand wird gegebenenfalls nicht ausgewertet. Nicht-Kurzschlussoperatoren | und & erzwingt eine Auswertung aller Teilausdrücke. Beispiel: // foo() wird nicht aufgerufen foo(); // foo() wird aufgerufen boolean b1 = true || foo(); boolean b2 = false & if (objektvariable != null && objektvariable.zahl == 5) Für Xor kann es keinen Kurzschlussoperator geben, da immer beide Operanden ausgewertet werden müssen © Prof. Dr. H. Gläser, Programmieren 2 Gemeinsamkeiten und Unterschied C und Java int, long, float, double Heißen in Java und C genauso. In Java ist der für einen Datentyp reservierte Speicherplatz genormt struct, union und typedef Die Zusammensetzung von Datentypen wird in Java ausschließlich durch Verwendung von Klassendefinitionen erreicht. Die Schlüsselwörter struct, union und typedef wurden zugunsten von Klassen weggelassen. © Prof. Dr. H. Gläser, Programmieren 2 Gemeinsamkeiten und Unterschied C und Java Pointer Java hat keinen expliziten Pointer-Typ. (Aber Objektvariablen) Arrays Arrays sind in Java vor allem Klassenobjekte. Referenzen auf Arrays und ihre Inhalte werden nicht durch PointerArithmetik, sondern durch explizite Referenzen realisiert. Die Array-Grenzen werden streng eingehalten. Ein Versuch, über das Ende eines Arrays hinaus zu lesen, führt zu einem Kompilier- oder Laufzeitfehler. Java unterstützt multidimensionalen Arrays nicht genauso wie C und C++. In Java werden Arrays erstellt, die andere Arrays enthalten. © Prof. Dr. H. Gläser, Programmieren 2 Gemeinsamkeiten und Unterschied C und Java Strings Strings sind in C und C++ Zeichenketten, die mit einem Nullzeichen (\0) enden. Strings werden genauso behandelt wie andere Arrays, mit allen innewohnenden Schwierigkeiten, d. h. die Pointer-Arithmetik zu verfolgen und das Ende des Arrays nicht zu überschreiten. In Java sind Strings Objekte. Strings werden nicht durch eine Null beendet und das Ende eines Strings kann nicht versehentlich überschritten werden © Prof. Dr. H. Gläser, Programmieren 2 Gemeinsamkeiten und Unterschied C und Java boolean Java: die booleschen primitiven Datentypen können zwei Werte haben: true oder false. Der boolesche Datentyp ist keine Ganzzahl und kann auch nicht als solche behandelt werden, da in Java auf boolesche Typen keine 0 oder 1 (Ganzzahlen) abgebildet werden können. © Prof. Dr. H. Gläser, Programmieren 2 Gemeinsamkeiten und Unterschied C und Java Programmsteuerung Obwohl die Anweisungen if, while, for und do in Java syntaktisch gleich sind wie in C und C++, gibt es einen entscheidenden Unterschied. Das Testkriterium für jedes Entscheidungsgebilde muss einen tatsächlichen booleschen Wert (true oder false) ausgeben. In C und C++ kann der Ausdruck eine Ganzzahl ausgeben. Seit java 1.5 gibt es einen neuen Typ von for Schleife ohne Indexvariable © Prof. Dr. H. Gläser, Programmieren 2 Java installieren www.java.sun.com Java SE JDK 6 siehe Studienbrief 3 © Prof. Dr. H. Gläser, Programmieren 2