O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Java™ von Kopf bis Fuß

Book Description

Java von Kopf bis Fuß ist eine umfassende Erlebnistour durch die Objektorientierte Programmierung und Java. Ganz nach modernen Lernprinzipien entworfen, führt Sie dieses Buch von den Grundlagen der Sprache zu fortgeschrittenen Themen wie Threads, N

Table of Contents

  1. Copyright
  2. Widmung
  3. Die Köpfe hinter dieser Reihe
  4. Einführung
  5. Die Oberfläche durchbrechen
    1. Wie Java funktioniert
    2. Code-Struktur in Java
    3. Anatomie einer Klasse
    4. Eine Klasse mit einer main-Methode schreiben
    5. Schleifen, Schleifen, Schleifen ...
    6. Bedingte Verzweigungen
    7. Eine ernsthafte Geschäftsanwendung schreiben
    8. Phras-O-Mat
    9. Kamingespräche
    10. ÜBung
  6. Ein Ausflug nach Objekthausen
    1. Stuhlkriege
    2. Also hat der OO-Typ Stefan den Stuhl bekommen, oder?
    3. Und was ist mit dem rotieren() von Amöbe?
    4. Wenn Sie eine Klasse entwerfen, sollten Sie an die Objekte denken, die von dieser Klasse erzeugt werden. Denken Sie an:
    5. Ein erstes Objekt machen
    6. Schnell! Kehren Sie main den Rücken!
    7. ÜBung
  7. Verstehen Sie Ihre Variablen
    1. Eine Variable deklarieren
    2. »Einen doppelten Espresso bitte. Ach nein, mach lieber ein int daraus.«
    3. Elementare Typen
    4. Finger weg von dem Schlüsselwort!
    5. Ihr Hund-Objekt steuern
    6. Eine Objektreferenz ist einfach ein weiterer Variablenwert.
    7. Leben auf dem Garbage Collectible Heap
    8. Ein Array ist wie ein Tablett mit Bechern
    9. Übung
  8. Wie sich Objekte verhalten
    1. Die Größe beeinfl usst das Bellen
    2. Sie können einer Methode Informationen schicken
    3. Java ist Pass-by-Value.
    4. Coole Sachen, die Sie mit Paramtern und Rückgabetypen anstellen können
    5. Kapselung
    6. Wie verhalten sich Objekte in einem Array?
    7. Übung
  9. Methoden mit Superkraft
    1. Bauen wir ein Spiel im Schiffe-versenken-Stil: »Dot-Com versenken«
    2. »EinfachesDotComSpiel« – eine sanftere Einführung
    3. Vorcode Testcode Hauptcode
    4. Den Testcode für die Klasse EinfachesDotCom schreiben
    5. Testcode für die Klasse EinfachesDotCom
    6. Der endgültige Code für EinfachesDotCom und EinfachesDotComTestlauf
    7. random() and getBenutzereingabe()
    8. Eine letzte Klasse: SpielHelfer
    9. Mehr zu for-Schleifen
    10. Elementare Typen casten
    11. Übung
  10. Die Java-Bibliothek verwenden
    1. Im letzten Kapitel haben wir Sie über einem Abgrund – mit einem Bug – hängen lassen.
    2. Wachen Sie auf und schnuppern Sie an der Java-API
    3. Reparieren wir den DotCom-Code.
    4. Bauen wir das RICHTIGE Spiel auf: »Dot-Com versenken«
    5. Vorcode für die echte DotComVersenken-Klasse
    6. Boolesche Ausdrücke mit Super-Power
    7. Die Bibliothek verwenden (die Java-API)
    8. Sie müssen den vollständigen Namen. der Klasse kennen, die Sie in Ihrem Code verwenden möchten.
    9. Wie man mit der API spielt
    10. übung
  11. Besser leben in Objekthausen
    1. Vererbung verstehen
    2. Entwerfen wir einen Vererbungsbaum für eine Tier-Simulation
    3. Mit Vererbung Codeverdopplung in Unterklassen verhindern
    4. IS-A und HAS-A verwenden
    5. Was also bringt Ihnen der ganze Vererbungskram?
    6. Mit Vererbung können Sie garantieren, dass alle Klassen, die unter einem bestimmten Supertyp gruppiert werden, alle Methoden haben, die der Supertyp hat.
    7. Den Vertrag einhalten: Regeln zum Überschreiben
    8. Eine Methode überladen
    9. Übung
  12. Ernsthafte Polymorphie
    1. Manche Klassen sollten einfach nicht instantiiert werden!
    2. Der Compiler verhindert, dass Sie eine abstrakte Klasse instantiieren
    3. Abstrakte Methoden
    4. Polymorphie in Aktion
    5. Was ist mit Nicht-Tieren? Warum machen wir die Klasse nicht so allgemein, dass sie mit allem umgehen kann?
    6. Die Verwendung polymorpher Referenzen vom Typ Object hat ihren Preis ...
    7. Object bellt nicht
    8. Finden Sie Ihr inneres Object.
    9. »Polymorphie« heißt »viele Formen«.
    10. Eine Objektreferenz auf Ihren richtigen Typ casten.
    11. »The Deadly Diamond of Death«
    12. Die Rettung: Interfaces!
    13. ÜBung
  13. Leben und Sterben eines Objekts
    1. Der Stack und der Heap: wo das Leben spielt
    2. Methoden werden gestapelt
    3. Was ist mit lokalen Variablen, die Objekte sind?
    4. Wenn lokale Variablen auf dem Stack leben, wo leben dann Instanz variablen?
    5. Das Wunder der Objekterzeugung
    6. Den Zustand einer neuen Ente initialisieren
    7. Überladene Konstruktoren bedeuten, dass Sie in Ihrer Klasse mehrere Konstruktoren haben.
    8. Einen Augenblick ... wir haben im Zusammenhang mit Konstruktoren ÜBERHAUPT noch nicht über Superklassen und Vererbung gesprochen.
    9. Einen überladenen Konstruktor aus einem anderen Konstruktor aufrufen
    10. Wir wissen jetzt, wie ein Objekt geboren wird. Aber wie lange lebt ein Objekt?
    11. Was ist mit Referenzvariablen?
    12. ÜBung
  14. Zahlen und Statisches
    1. MATH-Methoden: das Globalste, was Java an Methoden zu bieten hat
    2. Der Unterschied zwischen regulären (nichtstatischen) und statischen Methoden
    3. Statische Methoden können keine nichtstatischen (Instanz-)Variablen benutzen!
    4. Statische finale Variablen sind Konstanten
    5. Math-Methoden
    6. Einen primitiven Wert einpacken
    7. Autoboxing verwischt die Grenze zwischen primitiven Datentypen und Objekten
    8. Formatierung von Zahlen
    9. So viel zu Zahlen – und was ist mit Datumsangaben?
    10. Und noch mehr Statisches: statische Importe!
    11. Übung
  15. Riskantes Verhalten
    1. Bauen wir uns eine Musikmaschine
    2. Was passiert, wenn eine Methode, die Sie aufrufen wollen (wahrscheinlich in einer nicht selbst geschriebenen Klasse), riskant ist?
    3. Mit Hilfe von Exceptions teilen Java-Methoden dem aufrufenden Code mit:
    4. Der Compiler muss wissen, dass IHNEN bekannt ist: Ich rufe eine riskante Methode auf.
    5. Eine Exception ist ein Objekt ... vom Typ Exception.
    6. Flusskontrolle in try/catch-Blöcken
    7. Und zu guter Letzt finally: für das, was Sie auf jeden Fall tun wollen
    8. Abfangen von Mehrfach-Exceptions
    9. Wenn Sie eine Exception nicht behandeln wollen ...
    10. Behandeln oder deklarieren – so lautet das Gesetz.
    11. CodeKüche
    12. ÜBung
  16. Innen hui, außen GUI
    1. Ihre erste GUI: ein Button in einem Frame
    2. wie man an ein Benutzerereignis kommt
    3. Wie man an das ActionEvent eines Buttons kommt
    4. Drei Arten, Dinge in eine GUI zu setzen:
    5. Was man mit paintComponent() Schönes machen kann
    6. Hinter jeder guten Graphics-Referenz steckt ein Graphics 2D-Objekt
    7. GUI-Layout: zwei oder mehr Widgets in einen Frame setzen
    8. Innere Klassen kommen uns zu Hilfe
    9. Animation mit Hilfe einer inneren Klasse
    10. CodeKüche
    11. ÜBung
  17. Mehr Schwung mit Swing
    1. Swing-Komponenten
    2. Layoutmanager
    3. Die drei wichtigsten Layoutmanager: Border, Flow und Box
    4. BorderLayout kümmert sich um fünf Bereiche:
    5. Im FlowLayout fließen die Komponenten ähnlich wie ein Text:
    6. BoxLayout, zu Hilfe!
    7. JTextField
    8. JTextArea
    9. JCheckBox
    10. JList
    11. CodeKüche
    12. Übung
  18. Speicherung von Objekten
    1. Speicherung von Zuständen
    2. Ein serialisiertes Objekt in eine Datei schreiben
    3. Daten fließen in Strömen von einem Ort zum anderen.
    4. Was passiert mit einem Objekt bei der Serialisierung wirklich?
    5. Wenn Sie wollen, dass Ihre Klasse serialisierbar ist, implementieren Sie Serializable
    6. Deserialisierung: Wiederherstellung eines Objekts
    7. Einen String in eine Textdatei schreiben
    8. Die Klasse java.io.File
    9. Aus einer Textdatei lesen
    10. Parsen mit der String-Methode split()
    11. CodeKüche
    12. Übung
  19. Eine Verbindung herstellen
    1. Das Chat-Programm im Überblick
    2. Verbinden, senden und empfangen
    3. Eine Netzwerkverbindung über einen Socket herstellen
    4. Ein TCP-Port ist nichts weiter als eine Zahl. Eine 16-Bit-Zahl zur Identifizierung eines bestimmten Programms auf dem Server.
    5. Verwenden Sie einen BufferedReader, um Daten von einem Socket zu lesen
    6. Verwenden Sie einen PrintWriter, um Daten in einen Socket zu schreiben
    7. Der TippDesTagesClient
    8. Einen einfachen Server schreiben
    9. TippDesTagesServer-Code
    10. Einen Chat-Client schreiben
    11. Wie man einen neuen Thread zur Ausführung bringt:
    12. Um einen Job für Ihren Thread zu erzeugen, implementieren Sie das Interface Runnable
    13. Die drei Zustände eines neuen Threads
    14. Eine typische lauffähig/laufend-Schleife
    15. Der Thread-Scheduler
    16. Einen Thread schlafen legen
    17. Erzeugen und Starten von zwei Threads
    18. Ehe in Gefahr Ist dieses Paar noch zu retten?
    19. Das Rainer-und-Monika-Problem in Codeform
    20. Wir müssen die Methode abhebungMachen() als unteilbare atomare Einheit ausführen.
    21. Das Schloss eines Objekts verwenden
    22. Das gefürchtete »Problem der verlorenen Aktualisierung«
    23. Machen Sie die Methode inkrementieren() atomar. Synchronisieren Sie sie!
    24. Die tödliche Seite der Synchronisierung
    25. Verbesserter EinfacherChatClient
    26. Code-Fertiggericht
    27. Übung
  20. Datenstrukturen
    1. ArrayList ist nicht die einzige Collection
    2. Sie könnten ein TreeSet verwenden ... oder die Methode Collections.sort()
    3. Höhere Typsicherheit durch Generics
    4. Noch einmal zurück zur Methode sort()
    5. Einen selbst definierten Comparator verwenden
    6. Wir brauchen ein Set statt einer List
    7. Umstieg von der ArrayList auf ein HashSet
    8. Wann sind zwei Objekte gleich?
    9. Lists und Sets kennen wir – jetzt nehmen wir eine Map
    10. Wildcards (Jokerzeichen) kommen zu Hilfe
    11. ÜBUNg
  21. Veröffentlichen Sie Ihren Code
    1. Das Deployment Ihrer Anwendung
    2. Deployment-Optionen
    3. Trennen Sie Quellcode und class-Dateien
    4. Ein ausführbares JAR machen
    5. Ausführung des JAR
    6. Stecken Sie Ihre Klassen in Pakete!
    7. So stecken Sie Ihre Klasse in ein Paket:
    8. Kompilieren und Ausführen mit Paketen
    9. Der Schalter -d kann sogar noch mehr
    10. Ein ausführbares JAR mit Paketen erzeugen
    11. Java Web Start
    12. Die Schritte bei der Erstellung und beim Deployment einer Java Web Start-Anwendung
    13. Übung
  22. Ferndeployment mit RMI
    1. Java-RMI gibt Ihnen die Client- und Service-Helfer-Objekte
    2. Was ist mit Servlets?
    3. Enterprise JavaBeans: RMI mit Verstärkung
    4. Und zum Abschluss ... zaubern wir noch etwas mit Jini
    5. Abschlussprojekt: Der Universaldienstbrowser
  23. CodeKüchen–Finale
    1. Endfassung des BeatBox-Client-Programms
    2. Endfassung des BeatBox-Server-Programms
  24. Anhang B
    1. Platz 10: Bit-Manipulationen