GRUNDKURS PROGRAMMIEREN IN JAVA

Größe: px
Ab Seite anzeigen:

Download "GRUNDKURS PROGRAMMIEREN IN JAVA"

Transkript

1 dietmar RATZ jens SCHEFFLER detlef SEESE jan WIESENBERGER Über rte begeister Lese GRUNDKURS PROGRAMMIEREN IN 7. Auflage JAVA Im Internet: Software und Tools, alle Beispielprogramme, Lösungen & mehr

2 Ratz/Scheffler/Seese/Wiesenberger Grundkurs Programmieren in Java Bleiben Sie auf dem Laufenden! Unser Computerbuch-Newsletter informiert Sie monatlich über neue Bücher und Termine. Profitieren Sie auch von Gewinnspielen und exklusiven Leseproben. Gleich anmelden unter Hanser Update ist der IT-Blog des Hanser Verlags mit Beiträgen und Praxistipps von unseren Autoren rund um die Themen Online Marketing, Webentwicklung, Programmierung, Softwareentwicklung sowie IT- und Projekt management. Lesen Sie mit und abonnieren Sie unsere News unter

3

4 Dietmar Ratz Jens Scheffler Detlef Seese Jan Wiesenberger Grundkurs Programmieren in Java 7., überarbeitete und erweiterte Auflage

5 Prof. Dr. Dietmar Ratz, Duale Hochschule Baden-Württemberg (DHBW) Karlsruhe Dipl-Math. Jens Scheffler, Google Inc., Mountain View, CA, USA Prof. Dr. Detlef Seese, Karlsruher Institut für Technologie (KIT), Institut für Angewandte Informatik und Formale Beschreibungsverfahren (AIFB) Dipl.-Wi.-Ing. Jan Wiesenberger, m+ps, Karlsruhe Alle in diesem Buch enthaltenen Informationen, Verfahren und Darstellungen wurden nach bestem Wissen zusammengestellt und mit Sorgfalt getestet. Dennoch sind Fehler nicht ganz auszuschließen. Aus diesem Grund sind die im vorliegenden Buch enthaltenen Informationen mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autoren und Verlag übernehmen infolgedessen keine juristische Verantwortung und werden keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieser Informationen oder Teilen davon entsteht, auch nicht für die Verletzung von Patentrechten und anderen Rechten Dritter, die daraus resultieren könnten. Autoren und Verlag übernehmen deshalb keine Gewähr dafür, dass die beschriebenen Verfahren frei von Schutzrechten Dritter sind. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Buch berechtigt deshalb auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften. Bibliografische Information der Deutschen Nationalbibliothek: Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über abrufbar. Dieses Werk ist urheberrechtlich geschützt. Alle Rechte, auch die der Übersetzung, des Nachdruckes und der Vervielfältigung des Buches, oder Teilen daraus, vorbehalten. Kein Teil des Werkes darf ohne schriftliche Genehmigung des Verlages in irgendeiner Form (Fotokopie, Mikrofilm oder ein anderes Verfahren) auch nicht für Zwecke der Unterrichtsgestaltung reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden Carl Hanser Verlag München, Lektorat: Brigitte Bauer-Schiewek Copy editing: Jürgen Dubau, Freiburg/Elbe Herstellung: Irene Weilhart Umschlagdesign: Marc Müller-Bremer, München, Umschlagrealisation: Stephan Rönigk Datenbelichtung, Druck und Bindung: Kösel, Krugzell Ausstattung patentrechtlich geschützt. Kösel FD 351, Patent-Nr Printed in Germany Print-ISBN E-Book-ISBN

6 »Der Weltuntergang steht bevor, aber nicht so, wie Sie denken. Dieser Krieg jagt nicht alles in die Luft, sondern schaltet alles ab.«im obersten Stock der Cornell University s Clark Hall stehen der Physiker Homer Layton und seine drei jungen Assistenten vor einem Durchbruch, der es ermöglicht, die Zeit etwas Tom langsamer DeMarco ablaufen zu lassen. Sie vermuten, dass der sogenannte Als Layton- auf der Welt das Licht ausging Effekt keinen praktischen Nutzen haben wird, rechnen aber damit, dass die von ihnen geplante Abhandlung einem Paukenschlag ca. 560 Seiten. in der Hardcover Welt der theoretischen Physik gleichkommen wird. ca. Doch 19,99 dann [D]/ 20,60 [A]/ sfr 28,90 bemerkt Loren Martine, jüngstes Mitglied von Homers ISBN Team, etwas Seltsames: Wird die Zeit verlangsamt, reicht Erscheint die Brennstoffen gespeicherte Energie nicht mehr für ein plötzliches Feuer. im November 2014 Dinge können noch immer brennen, wenn auch langsamer, aber nichts kann mehr explodieren. Die Wissenschaftler stellen sich eine Art Layton-Effekt-Taschenlampe vor, die das Abfeuern einer Waffe verhindert. Ihnen wird klar, dass man auch die Explosion einer Bombe oder gar einen ganzen Krieg verhindern könnte. Hier klicken zur Leseprobe Sie möchten mehr über Tom DeMarco und seine Bücher erfahren. Einfach Code scannen oder reinklicken unter Sie möchten mehr über Tom DeMarco und seine Bücher erfahren. Einfach reinklicken unter

7 Inhaltsverzeichnis Vorwort Einleitung Java mehr als nur kalter Kaffee? Java für Anfänger das Konzept dieses Buches Zusatzmaterial und Kontakt zu den Autoren Verwendete Schreibweisen Einige Grundbegriffe aus der Welt des Programmierens Computer, Software, Informatik und das Internet Was heißt Programmieren? I Einstieg in das Programmieren in Java Aller Anfang ist schwer Mein erstes Programm Formeln, Ausdrücke und Anweisungen Zahlenbeispiele Verwendung von Variablen Auf den Schirm! Das Programmgerüst Eingeben, übersetzen und ausführen Übungsaufgaben Grundlagen der Programmierung in Java Grundelemente eines Java-Programms Kommentare Bezeichner und Namen Literale Reservierte Wörter, Schlüsselwörter

8 6 Inhaltsverzeichnis Trennzeichen Interpunktionszeichen Operatorsymbole import-anweisungen Zusammenfassung Übungsaufgaben Erste Schritte in Java Grundstruktur eines Java-Programms Ausgaben auf der Konsole Eingaben von der Konsole Schöner programmieren in Java Zusammenfassung Übungsaufgaben Einfache Datentypen Ganzzahlige Datentypen Gleitkommatypen Der Datentyp char für Zeichen Zeichenketten Der Datentyp boolean für Wahrheitswerte Implizite und explizite Typumwandlungen Zusammenfassung Übungsaufgaben Der Umgang mit einfachen Datentypen Variablen Operatoren und Ausdrücke Arithmetische Operatoren Bitoperatoren Zuweisungsoperator Vergleichsoperatoren und logische Operatoren Inkrement- und Dekrementoperatoren Priorität und Auswertungsreihenfolge der Operatoren Allgemeine Ausdrücke Ein- und Ausgabe Statischer Import der IOTools-Methoden Zusammenfassung Übungsaufgaben Anweisungen und Ablaufsteuerung Anweisungen Blöcke und ihre Struktur Entscheidungsanweisung Die if-anweisung

9 Inhaltsverzeichnis Die switch-anweisung Wiederholungsanweisungen, Schleifen Die for-anweisung Vereinfachte for-schleifen-notation Die while-anweisung Die do-anweisung Endlosschleifen Sprungbefehle und markierte Anweisungen Zusammenfassung Übungsaufgaben Referenzdatentypen Felder Was sind Felder? Deklaration, Erzeugung und Initialisierung von Feldern Felder unbekannter Länge Referenzen Ein besserer Terminkalender Mehrdimensionale Felder Mehrdimensionale Felder unterschiedlicher Länge Vorsicht, Falle: Kopieren von mehrdimensionalen Feldern Vereinfachte for-schleifen-notation Zusammenfassung Übungsaufgaben Klassen Was sind Klassen? Deklaration und Instantiierung von Klassen Komponentenzugriff bei Objekten Ein erstes Adressbuch Klassen als Referenzdatentyp Felder von Klassen Vorsicht, Falle: Kopieren von geschachtelten Referenzdatentypen Auslagern von Klassen Zusammenfassung Übungsaufgaben Methoden, Unterprogramme Methoden Was sind Methoden? Deklaration von Methoden Parameterübergabe und Ergebnisrückgabe

10 8 Inhaltsverzeichnis Aufruf von Methoden Überladen von Methoden Variable Argument-Anzahl bei Methoden Vorsicht, Falle: Referenzen als Parameter Sichtbarkeit und Verdecken von Variablen Zusammenfassung Übungsaufgaben Rekursiv definierte Methoden Motivation Gute und schlechte Beispiele für rekursive Methoden Zusammenfassung Die Methode main Kommandozeilenparameter Anwendung der vereinfachten for-schleifen-notation Zusammenfassung Übungsaufgaben Methoden aus anderen Klassen aufrufen Klassenmethoden Die Methoden der Klasse java.lang.math Statischer Import Methoden von Objekten aufrufen Instanzmethoden Die Methoden der Klasse java.lang.string Übungsaufgaben II Objektorientiertes Programmieren in Java Die objektorientierte Philosophie Die Welt, in der wir leben Programmierparadigmen Objektorientierung im Vergleich Die vier Grundpfeiler objektorientierter Programmierung Generalisierung Vererbung Kapselung Polymorphismus Weitere wichtige Grundbegriffe Modellbildung von der realen Welt in den Computer Grafisches Modellieren mit UML Entwurfsmuster Zusammenfassung Übungsaufgaben

11 Inhaltsverzeichnis 9 8 Der grundlegende Umgang mit Klassen Vom Referenzdatentyp zur Objektorientierung Instanzmethoden Zugriffsrechte Was sind Instanzmethoden? Instanzmethoden zur Validierung von Eingaben Instanzmethoden als erweiterte Funktionalität Statische Komponenten einer Klasse Klassenvariablen und -methoden Klassenkonstanten Instantiierung und Initialisierung Konstruktoren Überladen von Konstruktoren Der statische Initialisierer Der Mechanismus der Objekterzeugung Zusammenfassung Übungsaufgaben Vererbung und Polymorphismus Wozu braucht man Vererbung? Aufgabenstellung Analyse des Problems Ein erster Ansatz Eine Klasse für sich Stärken der Vererbung Vererbung verhindern durch final Übungsaufgaben Die super-referenz Überschreiben von Methoden und Variablen Dynamisches Binden Überschreiben von Methoden verhindern durch final Die Klasse java.lang.object Übungsaufgaben Abstrakte Klassen und Interfaces Übungsaufgaben Weiteres zum Thema Objektorientierung Erstellen von Paketen Zugriffsrechte Innere Klassen Anonyme Klassen Zusammenfassung Übungsaufgaben

12 10 Inhaltsverzeichnis 10 Exceptions und Errors Eine Einführung in Exceptions Was ist eine Exception? Übungsaufgaben Abfangen von Exceptions Ein Anwendungsbeispiel Die RuntimeException Übungsaufgaben Exceptions für Fortgeschrittene Definieren eigener Exceptions Übungsaufgaben Vererbung und Exceptions Vorsicht, Falle! Der finally-block Die Klassen Throwable und Error Zusammenfassung Übungsaufgaben Assertions Zusicherungen im Programmcode Compilieren des Programmcodes Ausführen des Programmcodes Zusammenfassung Fortgeschrittene objektorientierte Programmierung Aufzählungstypen Deklaration eines Aufzählungstyps Instanzmethoden der enum-objekte Selbstdefinierte Instanzmethoden für enum-objekte Übungsaufgaben Generische Datentypen Generizität in alten Java-Versionen Generizität ab Java Einschränkungen der Typ-Parameter Wildcards Bounded Wildcards Generische Methoden Ausblick Übungsaufgaben Sortieren von Feldern und das Interface Comparable Einige wichtige Hilfsklassen Die Klasse StringBuffer

13 Inhaltsverzeichnis Arbeiten mit String-Objekten Arbeiten mit StringBuffer-Objekten Übungsaufgaben Die Wrapper-Klassen (Hüll-Klassen) Arbeiten mit eingepackten Daten Aufbau der Wrapper-Klassen Ein Anwendungsbeispiel Automatische Typwandlung für die Wrapper-Klassen Übungsaufgaben Die Klassen BigInteger und BigDecimal Arbeiten mit langen Ganzzahlen Aufbau der Klasse BigInteger Übungsaufgaben Arbeiten mit langen Gleitkommazahlen Aufbau der Klasse BigDecimal Viele Stellen von Nullstellen gefällig? Übungsaufgaben Die Klasse DecimalFormat Standard-Ausgaben in Java Arbeiten mit Format-Objekten Vereinfachte formatierte Ausgabe Übungsaufgaben Die Klassen Date und Calendar Arbeiten mit Zeitpunkten Auf die Plätze, fertig, los! Spezielle Calendar-Klassen Noch einmal: Zeitmessung Übungsaufgaben Die Klassen SimpleDateFormat und DateFormat Arbeiten mit Format-Objekten für Datum/Zeit-Angaben Übungsaufgaben Die Collection-Klassen Sammlungen von Objekten der Aufbau des Interface Collection Sammlungen durchgehen der Aufbau des Interface Iterator Mengen Das Interface Set Die Klasse HashSet Das Interface SortedSet Die Klasse TreeSet Listen

14 12 Inhaltsverzeichnis Das Interface List Die Klassen ArrayList und LinkedList Suchen und Sortieren die Klassen Collections und Arrays Übungsaufgaben Die Klasse StringTokenizer Übungsaufgaben III Grafische Oberflächen in Java Aufbau grafischer Oberflächen in Frames von AWT nach Swing Grundsätzliches zum Aufbau grafischer Oberflächen Ein einfaches Beispiel mit dem AWT Let s swing now! Etwas Fill-in gefällig? Die AWT- und Swing-Klassenbibliothek im Überblick Übungsaufgaben Swing-Komponenten Die abstrakte Klasse Component Die Klasse Container Die abstrakte Klasse JComponent Layout-Manager, Farben und Schriften Die Klasse Color Die Klasse Font Layout-Manager Die Klasse FlowLayout Die Klasse BorderLayout Die Klasse GridLayout Einige Grundkomponenten Die Klasse JLabel Die abstrakte Klasse AbstractButton Die Klasse JButton Die Klasse JToggleButton Die Klasse JCheckBox Die Klassen JRadioButton und ButtonGroup Die Klasse JComboBox Die Klasse JList Die abstrakte Klasse JTextComponent Die Klassen JTextField und JPasswordField Die Klasse JTextArea Die Klasse JScrollPane

15 Inhaltsverzeichnis Die Klasse JPanel Spezielle Container, Menüs und Toolbars Die Klasse JFrame Die Klasse JWindow Die Klasse JDialog Die Klasse JMenuBar Die Klasse JToolBar Übungsaufgaben Ereignisverarbeitung Zwei einfache Beispiele Zufällige Grautöne als Hintergrund Ein interaktiver Bilderrahmen Programmiervarianten für die Ereignisverarbeitung Innere Klasse als Listener-Klasse Anonyme Klasse als Listener-Klasse Container-Klasse als Listener-Klasse Separate Klasse als Listener-Klasse Event-Klassen und -Quellen Listener-Interfaces und Adapter-Klassen Listener-Registrierung bei den Event-Quellen Auf die Plätze, fertig, los! Übungsaufgaben Einige Ergänzungen zu Swing-Komponenten Zeichnen in Swing-Komponenten Grafische Darstellung von Komponenten Das Grafik-Koordinatensystem Die abstrakte Klasse Graphics Ein einfaches Zeichenprogramm Layoutveränderungen und der Einsatz von revalidate Noch mehr Swing gefällig? Übungsaufgaben Applets Erstellen und Ausführen von Applets Vom Frame zum Applet am Beispiel Applet in HTML-Datei einbetten Applet über HTML-Datei ausführen Die Methoden der Klasse JApplet Zwei Beispiele Auf die Plätze, fertig, los!

16 14 Inhaltsverzeichnis Punkte verbinden im Applet Details zur HTML-Einbettung Der Applet-Tag Die Methode showdocument Sicherheitseinschränkungen bei Applets Übungsaufgaben IV Threads, Datenströme und Netzwerk-Anwendungen Parallele Programmierung mit Threads Ein einfaches Beispiel Threads in Java Die Klasse Thread Das Interface Runnable Threads vorzeitig beenden Wissenswertes über Threads Lebenszyklus eines Threads Thread-Scheduling Dämon-Threads und Thread-Gruppen Thread-Synchronisation und -Kommunikation Das Leser/Schreiber-Problem Das Erzeuger/Verbraucher-Problem Threads in Frames und Applets Auf die Plätze, fertig, los! Spielereien Swing-Komponenten sind nicht Thread-sicher Übungsaufgaben Ein- und Ausgabe über I/O-Streams Grundsätzliches zu I/O-Streams in Java Dateien und Verzeichnisse Die Klasse File Ein- und Ausgabe über Character-Streams Einfache Reader- und Writer-Klassen Gepufferte Reader- und Writer-Klassen Die Klasse StreamTokenizer Die Klasse PrintWriter Die Klassen IOTools und Scanner Was machen eigentlich die IOTools? Konsoleneingabe über ein Scanner-Objekt Ein- und Ausgabe über Byte-Streams Einige InputStream- und OutputStream-Klassen Die Serialisierung und Deserialisierung von Objekten

17 Inhaltsverzeichnis Die Klasse PrintStream Einige abschließende Bemerkungen Übungsaufgaben Client/Server-Programmierung in Netzwerken Wissenswertes über Netzwerk-Kommunikation Protokolle IP-Adressen Ports und Sockets Client/Server-Programmierung Die Klassen ServerSocket und Socket Ein einfacher Server Ein einfacher Client Ein Server für mehrere Clients Ein Mehrzweck-Client Wissenswertes über URLs Client/Server-Kommunikation über URLs Netzwerkverbindungen in Applets Übungsaufgaben V Aktuelles, Ausblick und Anhang Neuerungen in Java Spracherweiterungen Elementare Datentypen und Anweisungen Binäre ganzzahlige Literalkonstanten Unterstrich als Trennzeichen in Literalkonstanten Strings in der switch-anweisung Verkürzte Notation bei generischen Datentypen Ausnahmebehandlung Mehrere Ausnahme-Typen in einem catch-block try-block mit Ressourcen Erweiterungen der Klassenbibliothek Dateien und Verzeichnisse Das Interface Path und die Klasse Paths Die Klasse Files Grafische Oberflächen Neuerungen in Java Lambda-Ausdrücke Lambda-Ausdrücke in Aktion zwei Beispiele Lambda-Ausdrücke im Detail

18 16 Inhaltsverzeichnis Lambda-Ausdrücke und funktionale Interfaces Vordefinierte funktionale Interfaces und Anwendungen auf Datenstrukturen Methoden-Referenzen als Lambda-Ausdrücke Zugriff auf Variablen aus der Umgebung innerhalb eines Lambda-Ausdrucks Interfaces mit Default-Methoden und statischen Methoden Deklaration von Default-Methoden Deklaration von statischen Methoden Auflösung von Namensgleichheiten bei Default-Methoden Interfaces und abstrakte Klassen in Java Streams und Pipeline-Operationen Streams in Aktion Streams und Pipelines im Detail Erzeugen von endlichen und unendlichen Streams Die Stream-API Blick über den Tellerrand Der Vorhang fällt A fool with a tool Alles umsonst? Und fachlich? Zu guter Letzt A Der Weg zum guten Programmierer A.1 Die goldenen Regeln der Code-Formatierung A.2 Die goldenen Regeln der Namensgebung A.3 Zusammenfassung B Die Klasse IOTools Tastatureingaben in Java B.1 Kurzbeschreibung B.2 Anwendung der IOTools-Methoden C Der Umgang mit der API-Spezifikation C.1 Der Aufbau der API-Spezifikation C.2 Der praktische Einsatz der API-Spezifikation D Glossar Literaturverzeichnis Stichwortverzeichnis

19 Vorwort Unsere moderne Welt mit ihren enormen Informations- und Kommunikationsbedürfnissen wäre ohne Computer und mobile Endgeräte wie Smartphones oder GPS-Geräte und deren weltweite Vernetzung undenkbar. Ob wir Einkäufe abwickeln, uns Informationen beschaffen, Fahrpläne abrufen, Reisen buchen, Bankgeschäfte tätigen oder einfach nur Post verschicken wir benutzen diese Techniken wie selbstverständlich. Immer mehr Internet-Nutzer finden zudem Gefallen daran, Informationen oder gar Dienste, z. B. als Apps oder Web-Services, zur Verfügung zu stellen. Die Programmiersprache Java, die sich in den letzten Jahren zu einer weit verbreiteten Software-Entwicklungsplattform entwickelt hat, ermöglicht es, Software fürs Internet mit wenig Aufwand zu erstellen. Dienstleistungen, Produkte und die gesamte Arbeitswelt basieren in zunehmendem Maße auf Software. Schul- und vor allem Hochschulabgänger werden mit Sicherheit an ihrem späteren Arbeitsplatz in irgendeiner Weise mit Software oder gar Software-Entwicklung zu tun haben. Eine qualifizierte Programmiergrundausbildung ist somit unerlässlich, um bewusst und aktiv am modernen gesellschaftlichen Leben teilnehmen oder gar an der Gestaltung moderner Informatikanwendungen mitwirken zu können. Leider erscheint vielen das Erlernen einer Programmiersprache zu Beginn einer weitergehenden Informatikausbildung als unüberwindbare Hürde. Mit Java rückte eine Sprache als Ausbildungssprache in den Vordergrund, die sehr mächtig und vielfältig ist, deren Komplexität es Programmier-Anfängern aber nicht unbedingt leichter macht, in die Geheimnisse des Programmierens eingeweiht zu werden. Angeregt durch unsere Erfahrungen aus vielen Jahren Lehrveranstaltungen für Studierende unterschiedlicher Fachrichtungen, in denen in der Regel rund zwei Drittel der Teilnehmer bis zum Kursbeginn noch nicht selbst programmierten, entschlossen wir uns, das vorliegende Buch zu verfassen. Dabei wollten wir vor allem die Hauptanforderung Verständlichkeit auch für Programmier-Anfänger erfüllen. Schülerinnen und Schülern, Studentinnen und Studenten, aber auch Hausfrauen und Hausmännern sollte mit diesem Buch ein leicht verständlicher Grundkurs Programmieren in Java vermittelt werden. Auf theoretischen Ballast oder ein breites Informatikfundament wollten wir deshalb bewusst verzichten. Wir hofften, unser Konzept auch absolute Neulinge behutsam in die Materie einzuführen, überzeugt unsere Leserinnen und Leser. Diese Hoffnung wurde, wie

20 18 Vorwort wir zahlreichen überaus positiven Leserkommentaren entnehmen konnten, mehr als erfüllt. So liegt nun bereits die siebte, überarbeitete Auflage vor, in der wir viele konstruktive Umgestaltungsvorschläge von Leserinnen und Lesern berücksichtigt und außerdem Neuerungen der Java-Version 8 aufgenommen haben. Wenn man nach dem erfolgreichsten aller Bücher Ausschau hält, stößt man wohl auf die Bibel. Das Buch der Bücher steht für hohe Auflagen und eine große Leserschaft. In unzählige Sprachen übersetzt, stellt die Bibel den Traum eines jeden Autors dar. Was Sie hier in den Händen halten, hat mit der Bibel natürlich ungefähr so viel zu tun wie eine Weinbergschnecke mit der Formel 1. Zwar ist auch dieses Buch in mehrere Teile untergliedert und stammt aus mehr als einer Feder mit göttlichen Offenbarungen und Prophezeiungen können wir dennoch nicht aufwarten. Sie finden in diesem Buch auch weder Hebräisch noch Latein. Im schlimmsten Falle treffen Sie auf etwas, das Ihnen trotz all unserer guten Vorsätze (zumindest zu Beginn Ihrer Lektüre) wie Fach-Chinesisch oder böhmische Dörfer vorkommen könnte. Lassen Sie sich davon aber nicht abschrecken, denn im Glossar im Anhang können Sie Übersetzungen für den Fachjargon jederzeit nachschlagen. Etlichen Personen, die zur Entstehung dieses Buches beitrugen, wollen wir an dieser Stelle herzlichst danken: Die ehemaligen Tutoren Thomas Much, Michael Ohr und Oliver Wagner haben viel Schweiß und Mühe in die Erstellung von Teilen eines ersten Vorlesungsskripts gesteckt. Eine wichtige Rolle für die Reifung bis zur vorliegenden Buchfassung spielten unsere Korrektoren und Testleser. Hagen Buchwald, Michael Decker, Tobias Dietrich, Rudi Klatte, Niklas Kühl, Roland Küstermann, Joachim Melcher, Cornelia Richter-von Hagen, Sebastian Ratz, Frank Schlottmann, Oliver Schöll und Leonard von Hagen brachten mit großem Engagement wertvolle Kommentare und Verbesserungsvorschläge ein oder unterstützten uns beim Auf- und Ausbau der Buch-Webseite, bei der Überarbeitung von Grafiken oder mit der Erstellung und Bereitstellung von einfach zu handhabenden Entwicklungstools. Schließlich sind da noch mehrere Studierenden-Jahrgänge der Studiengänge Wirtschaftsingenieurwesen, Wirtschaftsmathematik, Technische Volkswirtschaftslehre und Wirtschaftsinformatik, die sich im Rahmen unserer Lehrveranstaltungen Programmieren I, Programmierung kommerzieller Systeme, Fortgeschrittene Programmiertechniken, Web-Programmierung und Verteilte Systeme mit den zugehörigen Webseiten, Foliensätzen und Übungsblättern herumgeschlagen und uns auf Fehler und Unklarheiten hingewiesen haben. Das insgesamt sehr positive Feedback, auch aus anderen Studiengängen, war und ist Ansporn für uns, diesen Grundkurs Programmieren weiterzuentwickeln. Schließlich geht auch ein Dankeschön an die Leserinnen und Leser, die uns per Hinweise und Tipps für die inhaltliche Verbesserung von Buch und Webseite zukommen ließen. Zu guter Letzt geht unser Dank an Frau Brigitte Bauer-Schiewek und Frau Irene Weilhart vom Carl Hanser Verlag für die gewohnt gute Zusammenarbeit. Karlsruhe, Sommer 2014 Die Autoren

21 Kapitel 1 Einleitung Kennen Sie das auch? Sie gehen in eine Bar und sehen eine wunderschöne Frau bzw. einen attraktiven Mann vielleicht den Partner fürs Leben! Sie kontrollieren unauffällig den Sitz Ihrer Kleidung, schlendern elegant zum Tresen und schenken ihr/ihm ein zuckersüßes Lächeln. Ihre Blicke sagen mehr als tausend Worte, jeder Zentimeter Ihres Körpers signalisiert: Ich will Dich! In dem Moment jedoch, als Sie ihr/ihm unauffällig Handy-Nummer und zustecken wollen, betritt ein Schrank von einem Kerl bzw. die Reinkarnation von Marilyn Monroe die Szene. Frau sieht Mann, Mann sieht Frau, und Sie sehen einen leeren Stuhl und eine Rechnung über drei Milchshakes und eine Cola. Wie kann Ihnen dieses Buch helfen, so etwas zu vermeiden? Die traurige Antwort lautet: Gar nicht! Sie können mit diesem Buch weder Frauen beeindrucken noch hochgewachsene Kerle niederschlagen (denn dafür ist es einfach zu leicht). Wenn Sie also einen schnellen Weg zum sicheren Erfolg suchen, sind Sie wohl mit anderen Werken besser beraten. Wozu ist das Buch also zu gebrauchen? Die folgenden Seiten verraten es Ihnen. 1.1 Java mehr als nur kalter Kaffee? Seit dem Einzug von Internet und World Wide Web (WWW) ins öffentliche Leben surfen, mailen und chatten Millionen von Menschen täglich in der virtuellen Welt. Es gehört beinahe schon zum guten Ton, im Netz der Netze vertreten zu sein. Ob Großkonzern oder privater Kegelclub jeder will seine eigene Homepage. Dieser Entwicklung hat es die Firma Sun, die im Januar 2010 von Oracle übernommen wurde, zu verdanken, dass ihre Programmiersprache Java einschlug wie eine Bombe. Am eigentlichen Sprachkonzept war nur wenig Neues, denn die geistigen Väter hatten sich stark an der Sprache C++ orientiert. Im Gegensatz zu C++ konnten mit Java jedoch Programme erstellt werden, die sich direkt in Webseiten einbinden und ausführen lassen. Java war somit die erste Sprache für das WWW.

22 20 1 Einleitung Natürlich ist für Java die Entwicklung nicht stehen geblieben. Die einstige Netzsprache hat sich in ihrer Version 8 (siehe z. B. [33] und [27]), mit der wir in diesem Buch arbeiten, zu einer vollwertigen Konkurrenz zu den anderen gängigen Konzepten gemausert. 1 Datenbank- oder Netzwerkzugriffe, anspruchsvolle Grafikanwendungen, Spieleprogrammierung alles ist möglich. Gerade in dem heute so aktuellen Bereich Verteilte Anwendungsentwicklung bietet Java ein breites Spektrum an Möglichkeiten. Mit wenigen Programmzeilen gelingt es, Anwendungen zu schreiben, die das Internet bzw. das World Wide Web (WWW) nutzen oder sogar über das Netz übertragen und in gängigen Web-Browsern gestartet werden können. Grundlage dafür bildet die umfangreiche Java-Klassenbibliothek, die Sammlung einer Vielzahl vorgefertigter Klassen und Interfaces, die einem das Programmiererleben wesentlich vereinfachen. Nicht minder interessante Teile dieser Klassenbibliothek statten Java-Programme mit enormen, weitgehend plattformunabhängigen grafischen Fähigkeiten aus. So können auch Programme mit grafischen Oberflächen portabel bleiben. Dies erklärt sicherlich auch das große Interesse, das der Sprache Java in den letzten Jahren entgegengebracht wurde. Bedenkt man die Anzahl von Buchveröffentlichungen, Zeitschriftenbeiträgen, Webseiten, Newsgroups, Foren und Blogs zum Thema, so wird der erfolgreiche Weg, den die Sprache Java hinter sich hat, offensichtlich. Auch im kommerziellen Bereich ist Java nicht mehr wegzudenken, denn die Produktpalette der meisten großen Softwarehäuser weist mittlerweile eine Java-Schiene auf. Und wer heute auch nur mit einem Handy telefoniert, kommt häufig mit Java in Berührung. Für Sie als Leserin oder Leser dieses Buchs bedeutet das jedenfalls, dass es sicherlich kein Fehler ist, Erfahrung in der Programmierung mit Java zu haben Java für Anfänger das Konzept dieses Buches Da sich Java aus dem etablierten C++ entwickelt hat, gehen viele Buchautoren davon aus, dass derjenige, der Java lernen will, bereits C++ kennt. Das macht erfahrenen Programmierern die Umstellung leicht, stellt Anfänger jedoch vor unüberwindbare Hürden. Manche Autoren versuchen, Eigenschaften der Sprache Java durch Analogien zu C++ oder zu anderen Programmiersprachen zu erklären, und setzen entsprechende Kenntnisse voraus, die den Einstieg in Java problemlos möglich machen. Wie sollen jedoch Anfänger, die über diese Erfahrung noch nicht verfügen, ein solches Buch verstehen? Erst C++ lernen und dann Java? Die Antwort auf diese Frage ist ein entschiedenes Nein, denn Sie lernen ja auch nicht Latein, um Französisch zu sprechen. Tatsächlich erkennen heutzuta- 1 Die Version 5 brachte gegenüber der Vorgängerversion 1.4 einige sehr interessante Erweiterungen, Erleichterungen und Verbesserungen. Kleinere Spracherweiterungen brachte Version 7 im Jahr 2011, und im Frühjahr 2014 ist die Version 8 mit umfangreichen Neuerungen erschienen. 2 Als potenzieller Berufseinsteiger oder -umsteiger wissen Sie vielleicht ein Lied davon zu singen, wenn Sie sich Stellenanzeigen im Bereich Software-Entwicklung ansehen Java scheint allgegenwärtig zu sein.

23 1.2 Java für Anfänger das Konzept dieses Buches 21 ge immer mehr Autoren und Verlage, dass die Einsteiger-Literatur sträflich vernachlässigt wurde. Es ist daher zu hoffen, dass die Zahl guter und verständlicher Programmierkurse für Neulinge weiter zunimmt. Einen dieser Kurse halten Sie gerade in den Händen. Wie schreibt man nun ein Buch für den absoluten Neueinsteiger, wenn man selbst seit vielen Jahren programmiert? Vor diesem Problem standen die Autoren. Es sollte den Leserinnen und Lesern die Konzepte von Java korrekt vermitteln, ohne sie zu überfordern. Maßstab für die Qualität dieses Buches war deshalb die Anforderung, dass es sich optimal als Begleitmaterial für einführende und weiterführende Vorlesungen in Bachelor-Studiengängen einsetzen ließ, wie zum Beispiel die Veranstaltungen Programmieren I Java und Programmierung kommerzieller Systeme Anwendungen in Netzen mit Java des Instituts für Angewandte Informatik und Formale Beschreibungsverfahren (Institut AIFB), die jedes Winter- bzw. Sommersemester am Karlsruher Institut für Technologie (KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz- Gemeinschaft) für rund 600 bzw. 400 Studierende abgehalten wird. Weil die Autoren auf mehrere Jahre studentische Programmierausbildung (in oben genannten Veranstaltungen, in Kursen an der Dualen Hochschule Baden- Württemberg (DHBW) Karlsruhe und in weiterführenden Veranstaltungen im Bereich Programmieren) zurückblicken können, gab und gibt es natürlich gewisse Erfahrungswerte darüber, welche Themen gerade den Neulingen besondere Probleme bereiteten. Daher auch der Entschluss, das Thema Objektorientierung zunächst in den Hintergrund zu stellen. Fast jedes Java-Buch beginnt mit diesem Thema und vergisst, dass man zuerst programmieren und algorithmisch denken können muss, bevor man die Vorteile der objektorientierten Programmierung erkennen und nutzen kann. Seien Sie deshalb nicht verwirrt, wenn Sie dieses sonst so beliebte Schlagwort vor Seite 185 wenig zu Gesicht bekommen. Unser Buch setzt keinerlei Vorkenntnisse aus den Bereichen Programmieren, Programmiersprachen und Informatik voraus. Sie können es also verwenden, nicht nur, um Java, sondern auch das Programmieren zu erlernen. Alle Kapitel sind mit Übungsaufgaben ausgestattet, die Sie zum besseren Verständnis bearbeiten sollten. Man lernt eine Sprache nur, wenn man sie auch spricht! In den Teilen III und IV führen wir Sie auch in die Programmierung fortgeschrittener Anwendungen auf Basis der umfangreichen Java-Klassenbibliothek ein. Wir können und wollen dabei aber nicht auf jedes Detail eingehen, sodass wir alle Leserinnen und Leser bereits an dieser Stelle dazu animieren möchten, regelmäßig einen Blick in die so genannte API-Spezifikation 3 der Klassenbibliothek [33] zu werfen nicht zuletzt, weil wir im Programmier-Alltag von einem routinierten Umgang mit API-Spezifikationen nur profitieren können. Sollten Sie Schwie- rigkeiten haben, sich mit dieser von Sun bzw. Oracle zur Verfügung gestellten 3 API steht für Application Programming Interface, die Programmierschnittstelle für eine Klasse, ein Paket oder eine ganze Klassenbibliothek.

24 22 1 Einleitung Dokumentation der Klassenbibliothek zurechtzufinden, hilft Ihnen vielleicht unser kleines Kapitel im Anhang C. 1.3 Zusatzmaterial und Kontakt zu den Autoren Alle Leserinnen und Leser sind herzlich eingeladen, die Autoren über Fehler und Unklarheiten zu informieren. Wenn eine Passage unverständlich war, sollte sie zur Zufriedenheit künftiger Leserinnen und Leser anders formuliert werden. Wenn Sie in dieser Hinsicht also Fehlermeldungen, Anregungen oder Fragen haben, können Sie über unsere Webseite Kontakt mit den Autoren aufnehmen. Dort finden Sie auch alle Beispielprogramme aus dem Buch, Lösungshinweise zu den Übungsaufgaben und ergänzende Materialien zum Download sowie Literaturhinweise, interessante Links, eine Liste eventueller Fehler im Buch und deren Korrekturen. Dozenten, die das Material dieses Buchs oder Teile der Vorlesungsfolien für eigene Vorlesungen nutzen möchten, sollten sich mit uns in Verbindung setzen. Im Literaturverzeichnis haben wir sowohl Bücher als auch Internet-Links angegeben, die aus unserer Sicht als weiterführende Literatur geeignet sind und neben Java im Speziellen auch einige weitere Themenbereiche wie zum Beispiel Informatik, Algorithmen, Nachschlagewerke, Softwaretechnik, Objektorientierung und Modellierung einbeziehen. 1.4 Verwendete Schreibweisen Wir verwenden Kursivschrift zur Betonung bestimmter Wörter und Fettschrift zur Kennzeichnung von Begriffen, die im entsprechenden Abschnitt erstmals auftauchen und definiert bzw. erklärt werden. Im laufenden Text wird Maschinenschrift für Bezeichner verwendet, die in Java vordefiniert sind oder in Programmbeispielen eingeführt und benutzt werden, während reservierte Wörter (Schlüsselwörter, Wortsymbole), die in Java eine vordefinierte, unveränderbar festgelegte Bedeutung haben, in fetter Maschinenschrift gesetzt sind. Beide Schriften kommen auch in den vom Text abgesetzten Listings und Bildschirmausgaben von Programmen zum Einsatz. Java-Programme sind teilweise ohne und teilweise mit führenden Zeilennummern abgedruckt. Solche Zeilennummern sind dabei lediglich als Orientierungshilfe gedacht und natürlich kein Bestandteil des Java-Programms. Literaturverweise auf Bücher und Web-Links werden stets in der Form [nr] mit der Nummer nr des entsprechenden Eintrags im Literaturverzeichnis angegeben.

25 Kapitel 2 Einige Grundbegriffe aus der Welt des Programmierens Computer und ihre Anwendungen sind aus unserem Arbeitsalltag und unserer Freizeit nicht mehr wegzudenken, denn fast überall werden Daten verarbeitet oder Geräte gesteuert. Schätzte man Anfang der 1950er Jahre, dass man mit einem Dutzend Elektronengehirne den Bedarf der ganzen Erde decken könne, so findet man heute diese Anzahl an Rechnern (Mikroprozessoren in TV-Geräten, Waschmaschinen und ähnlichen Geräten mitgezählt) oft bereits in einem privaten Haushalt. Über die Hälfte aller Deutschen arbeiten zu Hause oder am Arbeitsplatz mit einem Computersystem, über 54 Millionen Deutsche nutzen (laut ARD/ZDF-Online-Studie [23]) das Internet, und an nahezu keinem qualifizierten Arbeitsplatz kommt man ohne Computerkenntnisse aus. In unserer Informationsgesellschaft haben daher die Informatik und speziell die Software-Technik eine große volkswirtschaftliche Bedeutung. Grundkenntnisse in diesen Bereichen sind also unerlässlich. Wir werden uns deshalb in diesem Kapitel zunächst ein wenig mit den grundlegenden Prinzipien der Informatik vertraut machen und Sie zumindest teilweise in den Aufbau, die Funktionsweise und die Terminologie der Informatik einführen. Ausführliches zu dieser Thematik findet sich z. B. in [4]. 2.1 Computer, Software, Informatik und das Internet Als Computer (deutsch: Rechner) bezeichnet man ein technisches Gerät, das schnell und meist zuverlässig nicht nur rechnen, sondern allgemein Daten bzw. Informationen automatisch verarbeiten und speichern (aufbewahren) kann. Im Unterschied zu einem normalen Automaten wie z. B. einem Getränkeautomaten, der nur festgelegte Aktionen ausführt, können wir einem Computer die Vorschrift, nach der er arbeiten soll, jeweils neu vorgeben. Beispiele für solche Ar-

26 24 2 Einige Grundbegriffe aus der Welt des Programmierens beitsvorschriften oder Handlungsanleitungen wären die Regeln für Kreditberechnungen unserer Bank oder die Anleitung zur Steuerung von Signalanlagen für unsere Modelleisenbahn. In der Fachsprache heißt eine solche Handlungsanleitung Algorithmus. Um dem Computer einen Algorithmus in einer präzisen Form mitzuteilen, muss man diesen als ein Programm (eine spezielle Handlungsanweisung, die für den Computer verständlich ist) formulieren. Der Computer, zusammen mit seinen Programmen, wird auch als Computersystem bezeichnet. Generell gesehen setzt sich ein Computersystem zusammen aus den materiellen Teilen, der so genannten Hardware, und den immateriellen Teilen, der so genannten Software. Unter dem Begriff Software versteht man nicht nur Programme, sondern auch zugehörige Daten und Dokumentationen. Man unterscheidet dabei zwischen Systemsoftware und Anwendungssoftware. Zur erstgenannten Gruppe zählt man üblicherweise das Betriebssystem, Compiler, Datenbanken, Kommunikationsprogramme und spezielle Dienstprogramme. Beispiele für Anwendungssoftware, also Software, die Aufgaben der Anwender löst, sind Textverarbeitungsprogramme, Tabellenkalkulationsprogramme und Zeichenprogramme. Ein Computer setzt sich zusammen aus der Zentraleinheit und den Peripheriegeräten, wie in Abbildung 2.1 schematisch dargestellt. Die Zentraleinheit besteht aus dem Prozessor (er führt die Programme aus) und dem Arbeitsspeicher (in ihm werden Programme und Daten, die zur momentanen Programmausführung benötigt werden, kurzfristig gespeichert). Der Arbeitsspeicher wird häufig auch als RAM (Random Access Memory, deutsch: Direktzugriffsspeicher) bezeichnet. Unter dem Begriff Peripherie-Geräte fasst man Eingabegeräte wie Tastatur und Maus, Ausgabegeräte wie Bildschirm und Drucker sowie externen Speicher wie Festplatten, DVD-ROM-Speicher oder Memorysticks zusammen. Im Vergleich zum externen Speicher bietet der Arbeitsspeicher eines Rechners einen wesentlich schnelleren (lesenden und schreibenden) Zugriff. Die kleinste Einheit des Arbeitsspeichers wird Speicherzelle genannt. Sie besitzt einen Namen (Adresse) und kann eine Zahl oder ein Zeichen speichern. Wie viele Informationen ein Speicher insgesamt aufbewahren kann, hängt von seiner Speicherkapazität ab, die in Byte oder größeren Einheiten wie Kilobyte (1000 Bytes, abgekürzt kb) bzw. Kibibyte (1024 Bytes, abgekürzt KiB), Megabyte (1000 kb, abgekürzt MB) bzw. Mebibyte (1024 KiB, abgekürzt MiB), Gigabyte (1000 MB, abgekürzt GB) bzw. Gibibyte (1024 MiB, abgekürzt GiB) oder Terabyte (1000 GB, abgekürzt TB) bzw. Tebibyte (1024 GiB, abgekürzt TiB) angegeben wird. Ein Byte besteht aus acht binären Zeichen, so genannten Bits. Ein solches Bit kann zwei Zustände annehmen (1 oder 0, an oder aus, wahr oder falsch). Externe Speichermedien bieten in der Regel eine wesentlich höhere Speicherkapazität als der Arbeitsspeicher und dienen der langfristigen Aufbewahrung von Programmen und Informationen (Daten). Diese werden in so genannten Dateien (englisch: files) abgelegt. Solche Dateien können wir uns beispielsweise wie ein Sammelalbum vorstellen, in das wir unsere Daten (die Bilder) ablegen (einkleben). Um eine Datei anzulegen, müssen wir ihr einen Namen geben. Dieser Name wird zusammen mit den Namen weiterer Dateien in Verbindung mit Angaben zur

27 2.1 Computer, Software, Informatik und das Internet 25 Peripheriegeräte Diskettenlaufwerk CD/DVD-Laufwerk/Brenner Festplatte Fax, Modem, Netzwerkadapter Zentraleinheit (Prozessor und Arbeitsspeicher) Maus Drucker Tastatur Eingabegeräte Scanner Bildschirm Ausgabegeräte Abbildung 2.1: Aufbau eines Computers Größe der Dateien im Inhaltsverzeichnis (englisch: directory) unseres Speichermediums vermerkt. Mehrere Dateien können wir auch zu so genannten Ordnern bzw. Verzeichnissen zusammenfassen (ähnlich wie wir unsere Sammelalben in Ordnern abheften), die selbst wieder Namen bekommen und hierarchisch in weiteren Ordnern zusammengefasst werden können. Dateinamen werden häufig unter Verwendung eines Punktes (.) in zwei Teile gegliedert, den eigentlichen Namen und die so genannte Dateinamen-Erweiterung, die meist den Typ der Datei angibt (z. B. txt für Text-Dateien, java für Java-Dateien oder doc für Dateien eines Textverarbeitungssystems). Heutzutage sind viele Computersysteme über Datenleitungen oder per Funk und unter Verwendung spezieller Netz-Software miteinander vernetzt, d. h. sie können untereinander Informationen austauschen. Man spricht dann von einem Netz oder Netzwerk (englisch: net oder web) und speziell von einem Intranet, wenn die Vernetzung innerhalb einer Organisation oder Firma erfolgt, oder vom Internet, einem weltweiten Computer-Netzwerk.

28 26 2 Einige Grundbegriffe aus der Welt des Programmierens Maschinensprache LD RG1 23 MOV RG7 RG2 ADD RG2 RG1 ADD LD DIV MOV Assembler Frühe, problemorientierte Programmiersprache 10 PRINT "HALLO" 20 SET A = 7 Java 30 GOSUB public class HelloWorld { 40 PRINT public static void main(string[] args){ 50 GOSUB System.out.println("Hallo!"); 60 GOTO } } Abbildung 2.2: Programmiersprachen im Vergleich Die Computer- und Software-Technik nahm seit ihren Kindertagen eine rasante Entwicklung von den Rechnern mit Transistortechnik und integrierten Schaltungen in Großrechnern und Minicomputern über die ersten Mikroprozessoren und Personal Computer Ende der siebziger Jahre bis zu den heutigen leistungsfähigen PCs, Workstations und Supercomputern. So ist es auch nicht verwunderlich, dass sich recht bald eine (seit 1960) eigenständige Wissenschaftsdisziplin entwickelte, die Informatik. Sie beschäftigt sich mit der theoretischen Analyse und Konzeption, aber auch mit der konkreten Realisierung von Computersystemen in den Bereichen Hardware, Software, Organisationsstrukturen und Anwender. 2.2 Was heißt Programmieren? Wie bereits erwähnt, ist ein Programm nichts anderes als ein in einer Programmiersprache formulierter Algorithmus. Diese Sprache erlaubt es den Anwendern (Programmierern), mit dem Computer zu sprechen und ihm Anweisungen zu geben. Dieses Sprechen kann nun auf unterschiedliche Arten erfolgen. Man kann zum Beispiel eine Sprache verwenden, die der Computer (genau genommen der Prozessor) direkt versteht. Man nennt sie Maschinensprache. Da die Notation mit Nullen und Einsen nur schwer lesbar ist, verwendet man zur Formulierung von maschinennahen Programmen meist eine Assemblersprache, in der jedem binären Maschinencode ein entsprechender, aus Buchstaben und Ziffern bestehender Assemblercode entspricht. Programme in solchen Sprachen kann der Prozessor direkt ausführen, doch ist man dabei sehr vom Prozessortyp abhängig. Alternativ kann auch eine benutzernahe bzw. problemnahe Programmiersprache zum Einsatz kommen, die man als höhere Programmiersprache oder auch problemorientierte Programmiersprache bezeichnet. In diesem Fall benötigt man allerdings einen Übersetzer (eine spezielle Software), der die Sätze der höhe-

29 2.2 Was heißt Programmieren? 27 Java-Quell-Programm Java-Compiler Java-Bytecode Java VM für Windows... Java VM für Linux... Java VM für MacOS ausführbares Windows- Programm... ausführbares Linux- Programm... ausführbares MacOS- Programm Abbildung 2.3: Vom Java-Quellprogramm zum ausführbaren Programm ren Programmiersprache in die Maschinensprache oder eine spezielle Zwischensprache überführt. Ein Übersetzer, der problemorientierte Programme in maschinennahe Programme transformiert, wird Compiler genannt. Werden Programme nicht vollständig übersetzt und später ausgeführt, sondern Anweisung für Anweisung übersetzt und unmittelbar ausgeführt, nutzt man einen Interpreter. Traditionelle höhere Programmiersprachen benötigen für jeden Prozessortyp einen Compiler, der das jeweilige so genannte Quellprogramm (geschrieben in der Programmiersprache) in ein so genanntes Zielprogramm (ausführbar auf dem Prozessor) übersetzt (compiliert). Unser Programm muss daher für jeden Rechner- bzw. Prozessortyp übersetzt werden. Bei der Entwicklung der Sprache Java hingegen wurde das Ziel angestrebt, plattformunabhängig zu sein, indem man nur einen Compiler für alle Plattformen benötigt. Dieser Compiler übersetzt das Quellprogramm (auch Quellcode oder Quelltext genannt) in den so genannten Java-Bytecode, der unabhängig von einem bestimmten Prozessor ist, jedoch nicht unmittelbar ausgeführt werden kann. Erst der Java-Interpreter analysiert den erzeugten Bytecode schrittweise und führt ihn aus. Der Bytecode ist also portabel (auf unterschiedliche Plattformen übertragbar) und sozusagen für eine Art virtuellen Prozessor (man spricht hier auch von einer virtuellen Maschine, abgekürzt VM) gefertigt. Abbildung 2.3 verdeutlicht diesen Sachverhalt. Unter Programmieren versteht man nun eine Tätigkeit, bei der unter Einsatz einer gegebenen Programmiersprache ein gestelltes Problem zu lösen ist. Programmieren heißt also nicht einfach nur, ein Programm einzutippen. Meist sind eine ganze Reihe von Arbeitsschritten nötig, bis ein Problem zufriedenstellend mit dem Computer gelöst ist (vgl. Abbildung 2.4). Die Bezeichnung Programmieren um-

30 28 2 Einige Grundbegriffe aus der Welt des Programmierens Analyse / Modellierung Programmierung / Codierung Übersetzung / Compilierung Ausführung / Interpretierung Problem algorithmische Beschreibung Programm ausführbares Programm Problemlösung? Welches Problem ist zu lösen? Was erwarte ich von meiner Lösung? Wie lässt sich das Problem lösen? Wie bringe ich meine Idee dem Computer bei? Z. B. durch ein Java-Programm? Wie muss der ausführbare Code aussehen? Z. B. Java-Bytecode oder Maschinencode? Ist das Problem gelöst? Abbildung 2.4: Was bedeutet Programmieren? fasst daher eine ganze Kette von Arbeitsgängen, beginnend bei der Analyse des Problems und endend bei der Kontrolle oder Interpretation der Resultate. Bei der Problemanalyse oder auch Modellierung müssen wir ein meistens umgangssprachlich formuliertes Problem analysieren und so aufbereiten (modellieren), dass sich die einzelnen Teilprobleme leicht und übersichtlich programmieren lassen. Wir erstellen somit eine algorithmische Beschreibung für die Lösung des Problems bzw. seiner Teilprobleme. Wenn wir diese algorithmische Beschreibung in eine Programmiersprache übertragen und unser Programm in einen Computer eingeben, nennt man diesen Vorgang Codierung. Dazu verwenden wir einen Texteditor (auch nur Editor genannt), in dem wir das Programm eintippen und danach in einer Datei speichern. Schließlich muss unser Programm vom Compiler übersetzt werden, bevor wir es ausführen und damit testen können, ob es unser ursprünglich formuliertes Problem korrekt löst. In nahezu allen Fällen werden erstmalig codierte Programme in irgendeiner Form Fehler aufweisen. Dies können einfache Schreibfehler, so genannte Syntaxfehler (z. B. durch falschen Einsatz von Sprachelementen) oder so genannte Semantikfehler (z. B. durch falschen logischen Aufbau des Programms) sein. Auch insgesamt gesehen kann unser Programm eine falsche Struktur haben, was meistens auf eine fehlerhafte Problemanalyse zurückzuführen ist. Selbst nach umfangreichen Tests müssen richtig erscheinende Programme nicht zwangsweise korrekte Programme sein. Erfahrungsgemäß enthält ein hoher Prozentsatz aller technisch-wissenschaftlichen Programme auch nach umfassenden Tests noch Fehler, die nur mit hohem Aufwand oder durch Zufall entdeckt werden können.

Grundkurs Programmieren in Java

Grundkurs Programmieren in Java Dietmar Ratz Jens Scheffler Detlef Seese Jan Wiesenberger Grundkurs Programmieren in Java 5., überarbeitete Auflage HANSER Inhaltsverzeichnis Vorwort 15 1 Einleitung 17 1.1 Java - mehr als nur kalter Kaffee?

Mehr

Grundkurs Programmieren in Java

Grundkurs Programmieren in Java Grundkurs Programmieren in Java Band 1: Der Einstieg in Programmierung und Objektorientierung Bearbeitet von Dietmar Ratz, Jens Scheffler, Detlef Seese 1. Auflage 2001. Taschenbuch. 463 S. Paperback ISBN

Mehr

Grundkurs Programmieren in Java

Grundkurs Programmieren in Java Grundkurs Programmieren in Java Dietmar Ratz, Detlef Seese, Jan Wiesenberger, Jens Scheffler Band 2: Einführung in die Programmierung kommerzieller Systeme ISBN 3-446-40494-5 Inhaltsverzeichnis Weitere

Mehr

Grundkurs Programmieren in Java Band 1: Der Einstieg in Programmierung und Objektorientierung

Grundkurs Programmieren in Java Band 1: Der Einstieg in Programmierung und Objektorientierung Dietmar Ratz, Jens Scheffler, Detlef Seese, Jan Wiesenberger Grundkurs Programmieren in Java Band 1: Der Einstieg in Programmierung und Objektorientierung ISBN-10: 3-446-41268-9 ISBN-13: 978-3-446-41268-2

Mehr

Grundkurs Programmieren in Java

Grundkurs Programmieren in Java Grundkurs Programmieren in Java Jens Scheffler, Dietmar Ratz, Jan Wiesenberger, Detlef Seese Band 1: Der Einstieg in Programmierung und Objektorientierung ISBN 3-446-40493-7 Inhaltsverzeichnis Weitere

Mehr

GRUNDKURS PROGRAMMIEREN IN JAVA

GRUNDKURS PROGRAMMIEREN IN JAVA dietmar RATZ jens SCHEFFLER detlef SEESE jan WIESENBERGER Über 50.000 rte begeister Lese GRUNDKURS PROGRAMMIEREN IN 7. Auflage JAVA Im Internet: Software und Tools, alle Beispielprogramme, Lösungen & mehr

Mehr

Grundkurs Programmieren in Java

Grundkurs Programmieren in Java Dietmar Ratz Jens Scheffler Detlef Seese Jan Wiesenberger Grundkurs Programmieren in Java 7., überarbeitete und erweiterte Auflage HANSER Inhaltsverzeichnis Vorwort 17 1 Einleitung 19 1.1 Java - mehr als

Mehr

Grundkurs Programmieren in Java

Grundkurs Programmieren in Java Dietmar Ratz Jens Scheffler Detlef Seese Jan Wiesenberger Grundkurs Programmieren in Java Band 2: Programmierung kommerzieller Systeme HANSER Inhaltsverzeichnis Vorwort 15 1 Einleitung 17 1.1 Java - definitiv

Mehr

Inhaltsverzeichnis. Grundkurs Programmieren in Java

Inhaltsverzeichnis. Grundkurs Programmieren in Java Inhaltsverzeichnis zu Grundkurs Programmieren in Java von Dietmar Ratz, Dennis Schulmeister-Zimolong, Detlef Seese und Jan Wiesenberger ISBN (Buch): 978-3-446-45212-1 ISBN (E-Book): 978-3-446-45384-5 Weitere

Mehr

GRUNDKURS PROGRAMMIEREN IN JAVA

GRUNDKURS PROGRAMMIEREN IN JAVA dietmar RATZ jens SCHEFFLER detlef SEESE jan WIESENBERGER Über 50.000 rte begeister Lese GRUNDKURS PROGRAMMIEREN IN 7. Auflage JAVA Im Internet: Software und Tools, alle Beispielprogramme, Lösungen & mehr

Mehr

Grundkurs Programmieren in Java

Grundkurs Programmieren in Java Grundkurs Programmieren in Java Band 1: Der Einstieg in Programmierung und Objektorientierung von Dietmar Ratz, Jens Scheffler, Detlef Seese 2. Auflage Hanser München 2004 Verlag C.H. Beck im Internet:

Mehr

Grundkurs Programmieren in Java

Grundkurs Programmieren in Java Dietmar Ratz Jens Scheffler Detlef Seese Grundkurs Programmieren in Java Band 1: Der Einstieg in Programmierung und Objektorientierung 2., neu bearbeitete Auflage HANSER Inhaltsverzeichnis Vorwort 15 1

Mehr

Grundkurs Programmieren in Java

Grundkurs Programmieren in Java 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Dietmar Ratz Jens Scheffler Detlef Seese Grundkurs Programmieren

Mehr

JAVA GRUNDKURS PROGRAMMIEREN IN. EXTRA: Mit kostenlosem E-Book MIT JAVA7. dietmar RATZ jens SCHEFFLER detlef SEESE jan WIESENBERGER. 6.

JAVA GRUNDKURS PROGRAMMIEREN IN. EXTRA: Mit kostenlosem E-Book MIT JAVA7. dietmar RATZ jens SCHEFFLER detlef SEESE jan WIESENBERGER. 6. MIT JAVA7 dietmar RATZ jens SCHEFFLER detlef SEESE jan WIESENBERGER GRUNDKURS PROGRAMMIEREN IN JAVA 6. Auflage EXTRA: Mit kostenlosem E-Book Onlinebonus: Software und Tools, alle Beispiel-Programme, Lösungen

Mehr

Grundkurs Programmieren in Java

Grundkurs Programmieren in Java Dietmar Ratz Jens Scheffler Detlef Seese Jan Wiesenberger Grundkurs Programmieren in Java Band 1: Der Einstieg in Programmierung und Objektorientierung 4 V iiberarbeitete Auflage HANSER Vorwort 13 1 Einleitung

Mehr

Grundkurs Programmieren in Java

Grundkurs Programmieren in Java Grundkurs Programmieren in Java von Dietmar Ratz, Jens Scheffler, Detlef Seese, Jan Wiesenberger 5., aktualisierte und erweiterte Auflage Hanser München 2010 Verlag C.H. Beck im Internet: www.beck.de ISBN

Mehr

JAVA GRUNDKURS PROGRAMMIEREN IN. EXTRA: Mit kostenlosem E-Book MIT JAVA7. dietmar RATZ jens SCHEFFLER detlef SEESE jan WIESENBERGER. 6.

JAVA GRUNDKURS PROGRAMMIEREN IN. EXTRA: Mit kostenlosem E-Book MIT JAVA7. dietmar RATZ jens SCHEFFLER detlef SEESE jan WIESENBERGER. 6. MIT JAVA7 dietmar RATZ jens SCHEFFLER detlef SEESE jan WIESENBERGER GRUNDKURS PROGRAMMIEREN IN JAVA 6. Auflage EXTRA: Mit kostenlosem E-Book Onlinebonus: Software und Tools, alle Beispiel-Programme, Lösungen

Mehr

Inhaltsverzeichnis. Dietmar Ratz, Jens Scheffler, Detlef Seese, Jan Wiesenberger. Grundkurs Programmieren in Java. ISBN (Buch):

Inhaltsverzeichnis. Dietmar Ratz, Jens Scheffler, Detlef Seese, Jan Wiesenberger. Grundkurs Programmieren in Java. ISBN (Buch): Inhaltsverzeichnis Dietmar Ratz, Jens Scheffler, Detlef Seese, Jan Wiesenberger Grundkurs Programmieren in Java ISBN (Buch): 978-3-446-44073-9 ISBN (E-Book): 978-3-446-44110-1 Weitere Informationen oder

Mehr

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Kommentartext Medien sinnvoll nutzen

Kommentartext Medien sinnvoll nutzen Kommentartext Medien sinnvoll nutzen 1. Kapitel: Wir alle nutzen Medien Das ist ein Computer. Und da ist einer. Auch das hier ist ein Computer. Wir alle kennen Computer und haben vielleicht auch schon

Mehr

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage .htaccess HOWTO zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage Stand: 21.06.2015 Inhaltsverzeichnis 1. Vorwort...3 2. Verwendung...4 2.1 Allgemeines...4 2.1 Das Aussehen der.htaccess

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

Kill Keyword Density. Weshalb die Keyword Density blanker Unsinn ist.

Kill Keyword Density. Weshalb die Keyword Density blanker Unsinn ist. Kill Keyword Density Weshalb die Keyword Density blanker Unsinn ist. Kill Keyword Density» & Karl Kratz Das ist. Jana ist Diplom- Mathematikerin und Controlling-Leiterin bei der Innovation Group AG. Ihr

Mehr

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003 Nicht kopieren Der neue Report von: Stefan Ploberger 1. Ausgabe 2003 Herausgeber: Verlag Ploberger & Partner 2003 by: Stefan Ploberger Verlag Ploberger & Partner, Postfach 11 46, D-82065 Baierbrunn Tel.

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Scholz (Hrsg.) / Krämer / Schollmayer / Völcker. Android-Apps. Konzeption, Programmierung und Vermarktung

Scholz (Hrsg.) / Krämer / Schollmayer / Völcker. Android-Apps. Konzeption, Programmierung und Vermarktung Scholz (Hrsg.) / Krämer / Schollmayer / Völcker Android-Apps entwickeln Konzeption, Programmierung und Vermarktung Vom Entwurf bis zum Einstellen bei Google Play und Co. So entwickeln Sie native Apps für

Mehr

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

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2.1 Die Einrichtung der Benutzeroberfläche Das Einrichten einer Android-Eclipse-Entwicklungsumgebung zur Android-Entwicklung ist grundsätzlich nicht

Mehr

Institut für Telematik Universität zu Lübeck. Programmieren. Kapitel 0: Organisatorisches. Wintersemester 2008/2009. Prof. Dr.

Institut für Telematik Universität zu Lübeck. Programmieren. Kapitel 0: Organisatorisches. Wintersemester 2008/2009. Prof. Dr. Institut für Telematik Universität zu Lübeck Programmieren Kapitel 0: Organisatorisches Wintersemester 2008/2009 Prof. Dr. Christian Werner 1-2 Überblick Ziele Inhaltsüberblick Ablauf der Veranstaltung

Mehr

GRUNDKURS PROGRAMMIEREN IN JAVA

GRUNDKURS PROGRAMMIEREN IN JAVA Über 50.000 rte begeister Lese GRUNDKURS PROGRAMMIEREN IN JAVA 7. Auflage dietmar RATZ jens SCHEFFLER detlef SEESE jan WIESENBERGER Im Internet: Software und Tools, alle Beispielprogramme, Lösungen & mehr

Mehr

GRUNDKURS PROGRAMMIEREN IN JAVA

GRUNDKURS PROGRAMMIEREN IN JAVA Über 50.000 rte begeister Lese GRUNDKURS PROGRAMMIEREN IN JAVA 7. Auflage dietmar RATZ jens SCHEFFLER detlef SEESE jan WIESENBERGER Im Internet: Software und Tools, alle Beispielprogramme, Lösungen & mehr

Mehr

ICS-Addin. Benutzerhandbuch. Version: 1.0

ICS-Addin. Benutzerhandbuch. Version: 1.0 ICS-Addin Benutzerhandbuch Version: 1.0 SecureGUARD GmbH, 2011 Inhalt: 1. Was ist ICS?... 3 2. ICS-Addin im Dashboard... 3 3. ICS einrichten... 4 4. ICS deaktivieren... 5 5. Adapter-Details am Server speichern...

Mehr

Guide DynDNS und Portforwarding

Guide DynDNS und Portforwarding Guide DynDNS und Portforwarding Allgemein Um Geräte im lokalen Netzwerk von überall aus über das Internet erreichen zu können, kommt man um die Themen Dynamik DNS (kurz DynDNS) und Portweiterleitung(auch

Mehr

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Peter Koos 03. Dezember 2015 0 Inhaltsverzeichnis 1 Voraussetzung... 3 2 Hintergrundinformationen... 3 2.1 Installationsarten...

Mehr

Leseprobe. Thomas Hummel, Christian Malorny. Total Quality Management. Tipps für die Einführung. ISBN (Buch): 978-3-446-41609-3

Leseprobe. Thomas Hummel, Christian Malorny. Total Quality Management. Tipps für die Einführung. ISBN (Buch): 978-3-446-41609-3 Leseprobe Thomas Hummel, Christian Malorny Total Quality Management Tipps für die Einführung ISBN (Buch): 978-3-446-41609-3 ISBN (E-Book): 978-3-446-42813-3 Weitere Informationen oder Bestellungen unter

Mehr

Einführung in Eclipse und Java

Einführung in Eclipse und Java Universität Bayreuth Lehrstuhl für Angewandte Informatik IV Datenbanken und Informationssysteme Prof. Dr.-Ing. Jablonski Einführung in Eclipse und Java Dipl.Inf. Manuel Götz Lehrstuhl für Angewandte Informatik

Mehr

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang Einleitung Dieses Buch wendet sich an jeden Leser, der die Programmiersprache C++ neu lernen oder vertiefen möchte, egal ob Anfänger oder fortgeschrittener C++-Programmierer. C++ ist eine weitgehend plattformunabhängige

Mehr

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 Referentin: Dr. Kelly Neudorfer Universität Hohenheim Was wir jetzt besprechen werden ist eine Frage, mit denen viele

Mehr

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Roboter programmieren mit NXC für Lego Mindstorms NXT 1. Auflage Roboter programmieren mit NXC für Lego Mindstorms NXT schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag

Mehr

Interaktive Whiteboards im Unterricht

Interaktive Whiteboards im Unterricht Stefan Hohlfeld Interaktive Whiteboards im Unterricht Wie kann guter Unterricht mit multimedialer Unterstützung aussehen? Bachelorarbeit BACHELOR + MASTER Publishing Hohlfeld, Stefan: Interaktive Whiteboards

Mehr

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation (Bei Abweichungen, die bspw. durch technischen Fortschritt entstehen können, ziehen Sie bitte immer das aktuelle Handbuch

Mehr

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Anmeldung http://www.ihredomain.de/wp-admin Dashboard Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Das Dashboard gibt Ihnen eine kurze Übersicht, z.b. Anzahl der Beiträge,

Mehr

virtuos Leitfaden für die virtuelle Lehre

virtuos Leitfaden für die virtuelle Lehre virtuos Zentrum zur Unterstützung virtueller Lehre der Universität Osnabrück virtuos Leitfaden für die virtuelle Lehre Zentrum virtuos Tel: 0541-969-6501 Email: [email protected] URL: www.virtuos.uni-osnabrueck.de

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Serienbrief aus Outlook heraus Schritt 1 Zuerst sollten Sie die Kontakte einblenden, damit Ihnen der Seriendruck zur Verfügung steht. Schritt 2 Danach wählen Sie bitte Gerhard Grünholz 1 Schritt 3 Es öffnet

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

etermin Einbindung in Outlook

etermin Einbindung in Outlook etermin Einbindung in Outlook 1. Einführung Über etermin gebuchte Termine können bei Bedarf auch mit externen Terminkalendern, wie zum Beispiel Outlook, ical oder Google synchronisiert werden. Dieses Dokument

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Step by Step Webserver unter Windows Server 2003. von Christian Bartl

Step by Step Webserver unter Windows Server 2003. von Christian Bartl Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird

Mehr

Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote

Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote Zweck dieser Anleitung ist es einen kleinen Überblick über die Funktion Last Minute auf Swisshotelportal zu erhalten. Für das erstellen

Mehr

Anwendungsbeispiele. Neuerungen in den E-Mails. Webling ist ein Produkt der Firma:

Anwendungsbeispiele. Neuerungen in den E-Mails. Webling ist ein Produkt der Firma: Anwendungsbeispiele Neuerungen in den E-Mails Webling ist ein Produkt der Firma: Inhaltsverzeichnis 1 Neuerungen in den E- Mails 2 Was gibt es neues? 3 E- Mail Designs 4 Bilder in E- Mails einfügen 1 Neuerungen

Mehr

Grundlagen der Informatik

Grundlagen der Informatik : : : : : : : : : : : : : : : : : : : : : : Grundlagen der Informatik Unter Verwendung von Folien von Prof. Helmut Balzert MICHAEL M. RESCH (HLRS) Rechnersysteme II : : : : : : : : : : : : : : : : : :

Mehr

Informationsblatt Induktionsbeweis

Informationsblatt Induktionsbeweis Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln

Mehr

Website. zur eigenen. Ihr Weg ins Web: Domain, Hoster, Installation, Verwaltung, Pflege und IT-Recht. Websites. erstellen

Website. zur eigenen. Ihr Weg ins Web: Domain, Hoster, Installation, Verwaltung, Pflege und IT-Recht. Websites. erstellen Websites ohne Programmierkenntnisse erstellen Anita Woitonik / Vilma Niclas Ohne HTML zur eigenen Website Ihr Weg ins Web: Domain, Hoster, Installation, Verwaltung, Pflege und IT-Recht Anita Woitonik /

Mehr

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt Inhaltsverzeichnis Aufgabe... 1 Allgemein... 1 Active Directory... 1 Konfiguration... 2 Benutzer erstellen... 3 Eigenes Verzeichnis erstellen... 3 Benutzerkonto erstellen... 3 Profil einrichten... 5 Berechtigungen

Mehr

Grundkenntnisse am PC Das Internet

Grundkenntnisse am PC Das Internet Grundkenntnisse am PC Das Internet EDV-Services Johannes Steinkuhle IT-Coaching, Projekte, Qualitätsmanagement Bielefelder Straße 47 33104 Paderborn Telefon: 05254/13140 Fax:05254/8254 111 www.steinkuhle-edv.de

Mehr

Gelassenheit gewinnen 30 Bilder für ein starkes Selbst

Gelassenheit gewinnen 30 Bilder für ein starkes Selbst Gelassenheit gewinnen 30 Bilder für ein starkes Selbst Barbara Burghardt Gelassenheit gewinnen 30 Bilder für ein starkes Selbst Wie Sie Ihren inneren Reichtum neu entdecken 2., verbesserte Auflage Barbara

Mehr

Wenn keine Verbindung zwischen den Computern besteht, dann bist du offline.

Wenn keine Verbindung zwischen den Computern besteht, dann bist du offline. online Das ist ein englisches Wort und bedeutet in der Leitung". Wenn du mit einem Freund oder einer Freundin telefonierst, bist du online. Wenn sich 2 Computer dein Computer und einer in Amerika miteinander

Mehr

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über

Mehr

Wir wünschen Ihnen viel Freude und Erfolg mit Ihrem neuen X-PRO-USB-Interface. Ihr Hacker-Team

Wir wünschen Ihnen viel Freude und Erfolg mit Ihrem neuen X-PRO-USB-Interface. Ihr Hacker-Team Installationsanleitung Hacker X-PRO-USB-Controller V2 Software + Interface Sehr geehrter Kunde, wir freuen uns, dass Sie sich für das X-PRO-USB-V2-Interface aus unserem Sortiment entschieden haben. Sie

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

Über die Herausgeber

Über die Herausgeber Über die Herausgeber Frank R. Lehmann, Paul Kirchberg und Michael Bächle (von links nach rechts) sind Professoren im Studiengang Wirtschaftsinformatik an der Dualen Hochschule Baden-Württemberg (DHBW),

Mehr

Leichte-Sprache-Bilder

Leichte-Sprache-Bilder Leichte-Sprache-Bilder Reinhild Kassing Information - So geht es 1. Bilder gucken 2. anmelden für Probe-Bilder 3. Bilder bestellen 4. Rechnung bezahlen 5. Bilder runterladen 6. neue Bilder vorschlagen

Mehr

PHPNuke Quick & Dirty

PHPNuke Quick & Dirty PHPNuke Quick & Dirty Dieses Tutorial richtet sich an all die, die zum erstenmal an PHPNuke System aufsetzen und wirklich keine Ahnung haben wie es geht. Hier wird sehr flott, ohne grosse Umschweife dargestellt

Mehr

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst. 40-Tage-Wunder- Kurs Umarme, was Du nicht ändern kannst. Das sagt Wikipedia: Als Wunder (griechisch thauma) gilt umgangssprachlich ein Ereignis, dessen Zustandekommen man sich nicht erklären kann, so dass

Mehr

Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten

Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten Version 1.0 Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten In unserer Anleitung zeigen wir Dir, wie Du Blogbeiträge

Mehr

Zwischenablage (Bilder, Texte,...)

Zwischenablage (Bilder, Texte,...) Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen

Mehr

Das Persönliche Budget in verständlicher Sprache

Das Persönliche Budget in verständlicher Sprache Das Persönliche Budget in verständlicher Sprache Das Persönliche Budget mehr Selbstbestimmung, mehr Selbstständigkeit, mehr Selbstbewusstsein! Dieser Text soll den behinderten Menschen in Westfalen-Lippe,

Mehr

Erstellen einer PostScript-Datei unter Windows XP

Erstellen einer PostScript-Datei unter Windows XP Erstellen einer PostScript-Datei unter Windows XP Sie möchten uns Ihre Druckvorlage als PostScript-Datei einreichen. Um Fehler in der Herstellung von vorneherein auszuschließen, möchten wir Sie bitten,

Mehr

objectif Import von Excel-Daten Bei Fragen nutzen Sie bitte unseren Support: Telefon: +49 (30) 467086-20 E-Mail: service@microtool.

objectif Import von Excel-Daten Bei Fragen nutzen Sie bitte unseren Support: Telefon: +49 (30) 467086-20 E-Mail: service@microtool. objectif RM Import von Excel-Daten Bei Fragen nutzen Sie bitte unseren Support: Telefon: +49 (30) 467086-20 E-Mail: [email protected] 2014 microtool GmbH, Berlin. Alle Rechte vorbehalten. 1 Inhalt Import

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

Einkaufen im Internet. Lektion 5 in Themen neu 3, nach Übung 10. Benutzen Sie die Homepage von: http://www.firstsurf.de/klietm9950_f.

Einkaufen im Internet. Lektion 5 in Themen neu 3, nach Übung 10. Benutzen Sie die Homepage von: http://www.firstsurf.de/klietm9950_f. Themen neu 3 Was lernen Sie hier? Sie formulieren Ihre Vermutungen und Meinungen. Was machen Sie? Sie erklären Wörter und Ausdrücke und beurteilen Aussagen. Einkaufen im Internet Lektion 5 in Themen neu

Mehr

Gruppenrichtlinien und Softwareverteilung

Gruppenrichtlinien und Softwareverteilung Gruppenrichtlinien und Softwareverteilung Ergänzungen zur Musterlösung Bitte lesen Sie zuerst die gesamte Anleitung durch! Vorbemerkung: Die Begriffe OU (Organizational Unit) und Raum werden in der folgenden

Mehr

Anleitung für die Umstellung auf das Sm@rt-TAN plus Verfahren mit manueller und optischer Übertragung

Anleitung für die Umstellung auf das Sm@rt-TAN plus Verfahren mit manueller und optischer Übertragung Bitte zuerst Sm@rtTAN plus über die ebanking-seite www.vr-amberg.de Konto/Depot-Login Verwaltung Sm@rtTAN-Leser anmelden Anleitung für die Umstellung auf das Sm@rt-TAN plus Verfahren mit manueller und

Mehr

Filmpraxis: Offline-Aktivierung für Edius

Filmpraxis: Offline-Aktivierung für Edius Schritt-für-Schritt Anleitung: EDIUS FREISCHALTEN, WENN DER SCHNITT-COMPUTER KEINE INTERNET-VERBINDUNG HAT Filmpraxis: Offline-Aktivierung für Edius 2013 Autor: Dipl. Regisseur Thomas Wagner Filmpraxis

Mehr

Objektorientierte Programmierung in Java

Objektorientierte Programmierung in Java Objektorientierte Programmierung in Java 1. Auflage Objektorientierte Programmierung in Java schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag C.H. Beck im Internet:

Mehr

Nutzung dieser Internetseite

Nutzung dieser Internetseite Nutzung dieser Internetseite Wenn Sie unseren Internetauftritt besuchen, dann erheben wir nur statistische Daten über unsere Besucher. In einer statistischen Zusammenfassung erfahren wir lediglich, welcher

Mehr

Anleitung für die Hausverwaltung

Anleitung für die Hausverwaltung www.gruppenhaus.ch Version vom 15. September 2006 Autor Kontakt Gruppenhaus.ch GmbH [email protected] Inhalt 1 Allgemeines... 2 1.1 Login... 2 1.2 Wenn Sie nicht mehr weiter wissen... 2 2 Belegungsplan...

Mehr

Multicheck Schülerumfrage 2013

Multicheck Schülerumfrage 2013 Multicheck Schülerumfrage 2013 Die gemeinsame Studie von Multicheck und Forschungsinstitut gfs-zürich Sonderauswertung ICT Berufsbildung Schweiz Auswertung der Fragen der ICT Berufsbildung Schweiz Wir

Mehr

Tevalo Handbuch v 1.1 vom 10.11.2011

Tevalo Handbuch v 1.1 vom 10.11.2011 Tevalo Handbuch v 1.1 vom 10.11.2011 Inhalt Registrierung... 3 Kennwort vergessen... 3 Startseite nach dem Login... 4 Umfrage erstellen... 4 Fragebogen Vorschau... 7 Umfrage fertigstellen... 7 Öffentliche

Mehr

Seniorenbüros im Land Brandenburg

Seniorenbüros im Land Brandenburg Nancy Bauer Seniorenbüros im Land Brandenburg Innovative und zukunftsorientierte Kommunalpolitik unter dem Aspekt des demographischen Wandels Diplomarbeit BACHELOR + MASTER Publishing Bauer, Nancy: Seniorenbüros

Mehr

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer. Benutzerhandbuch Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer. 1 Startseite Wenn Sie die Anwendung starten, können Sie zwischen zwei Möglichkeiten wählen 1) Sie können eine Datei für

Mehr

SEO Strategie, Taktik und Technik

SEO Strategie, Taktik und Technik SEO Strategie, Taktik und Technik Andre Alpar Markus Koczy Maik Metzen SEO Strategie, Taktik und Technik Online-Marketing mittels effektiver Suchmaschinenoptimierung Andre Alpar Maik Metzen Markus Koczy

Mehr

Kurze Benutzungsanleitung für Dozenten

Kurze Benutzungsanleitung für Dozenten Kurze Benutzungsanleitung für Dozenten Einstiegsbild Wenn Sie die Internet-Adresse studieren.wi.fh-koeln.de aufrufen, erhalten Sie folgendes Einstiegsbild: Im oberen Bereich finden Sie die Iconleiste.

Mehr

Facebook erstellen und Einstellungen

Facebook erstellen und Einstellungen Facebook erstellen und Einstellungen Inhaltsverzeichnis Bei Facebook anmelden... 3 Einstellungen der Benachrichtigungen... 4 Privatsphäre... 4 Einstellungen... 5 Eigenes Profil bearbeiten... 6 Info...

Mehr

Erweiterung AE WWS Lite Win: AES Security Verschlüsselung

Erweiterung AE WWS Lite Win: AES Security Verschlüsselung Erweiterung AE WWS Lite Win: AES Security Verschlüsselung Handbuch und Dokumentation Beschreibung ab Vers. 1.13.5 Am Güterbahnhof 15 D-31303 Burgdorf Tel: +49 5136 802421 Fax: +49 5136 9776368 Seite 1

Mehr

Netzlaufwerke mit WebDAV einbinden

Netzlaufwerke mit WebDAV einbinden Den Anwendern der Wirtschaftsinformatik steht mit dem Dienst WebDAV die Möglichkeit zur Verfügung, um von externen Netzwerken (außerhalb der WI-Domäne) auf die Netzlaufwerke der WI zuzugreifen. WebDAV

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

GEONET Anleitung für Web-Autoren

GEONET Anleitung für Web-Autoren GEONET Anleitung für Web-Autoren Alfred Wassermann Universität Bayreuth [email protected] 5. Mai 1999 Inhaltsverzeichnis 1 Technische Voraussetzungen 1 2 JAVA-Programme in HTML-Seiten verwenden

Mehr

icloud nicht neu, aber doch irgendwie anders

icloud nicht neu, aber doch irgendwie anders Kapitel 6 In diesem Kapitel zeigen wir Ihnen, welche Dienste die icloud beim Abgleich von Dateien und Informationen anbietet. Sie lernen icloud Drive kennen, den Fotostream, den icloud-schlüsselbund und

Mehr

M03a Lernstraße für den Unterricht in Sekundarstufe I

M03a Lernstraße für den Unterricht in Sekundarstufe I M03a Lernstraße für den Unterricht in Sekundarstufe I 1. Station: Der Taufspruch Jedem Täufling wird bei der Taufe ein Taufspruch mit auf den Weg gegeben. Dabei handelt es sich um einen Vers aus der Bibel.

Mehr

Audiospektrum- Analyse mit Mikrocontrollern

Audiospektrum- Analyse mit Mikrocontrollern PC & ELEKTRONIK Felix Irmscher Entwicklung und Programmierung in Assembler und LabVIEW Audiospektrum- Analyse mit Mikrocontrollern Analyseschaltungen mit dem ATmega644 einfach selbst entwickeln Auf CD-ROM:

Mehr

SF-RB. Modul Provisionsabrechnung & Planung Reiseagentenprovisionsabrechnung & Planung. SF-Software Touristiksoftware

SF-RB. Modul Provisionsabrechnung & Planung Reiseagentenprovisionsabrechnung & Planung. SF-Software Touristiksoftware SF-RB Modul Provisionsabrechnung & Planung Reiseagentenprovisionsabrechnung & Planung SF-Software Touristiksoftware Telefon: +420/ 380 331 583 Telefax: +420/ 380 331 584 E-Mail: [email protected]

Mehr

SANDBOXIE konfigurieren

SANDBOXIE konfigurieren SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:

Mehr

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten 2008 netcadservice GmbH netcadservice GmbH Augustinerstraße 3 D-83395 Freilassing Dieses Programm ist urheberrechtlich geschützt. Eine Weitergabe

Mehr

10.1 Auflösung, Drucken und Scannen

10.1 Auflösung, Drucken und Scannen Um einige technische Erläuterungen kommen wir auch in diesem Buch nicht herum. Für Ihre Bildergebnisse sind diese technischen Zusammenhänge sehr wichtig, nehmen Sie sich also etwas Zeit und lesen Sie dieses

Mehr

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden. In einer Website haben Seiten oft das gleiche Layout. Speziell beim Einsatz von Tabellen, in denen die Navigation auf der linken oder rechten Seite, oben oder unten eingesetzt wird. Diese Anteile der Website

Mehr

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...

Mehr

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man

Mehr