Einführung in Java mit BlueJ - Objektorientierte Programmierung für Einsteiger

Einführung in Java mit BlueJ - Objektorientierte Programmierung für Einsteiger

von: Florian Siebler

Galileo Press, 2011

ISBN: 9783836216302

Sprache: Deutsch

659 Seiten, Download: 5836 KB

 
Format:  PDF, auch als Online-Lesen

geeignet für: Apple iPad, Android Tablet PC's Online-Lesen PC, MAC, Laptop


 

eBook anfordern

Mehr zum Inhalt

Einführung in Java mit BlueJ - Objektorientierte Programmierung für Einsteiger



  Liebe Leserin, lieber Leser, 3  
  Auf einen Blick 4  
  Inhalt 6  
  Geleitwort des Fachgutachters 18  
  Vorwort 20  
  Grundlagen 24  
     1 Einführung 26  
        1.1 Was ist ein Algorithmus? 26  
        1.2 Was haben Sie mit Algorithmen zu tun? 28  
        1.3 Beispiele für Algorithmen 28  
        1.4 Wie arbeitet ein Computer? 30  
        1.5 Überblick über Java und den Entwicklungsprozess 32  
        1.6 Ist Java der Weisheit letzter Schluss? 33  
        1.7 Was bedeutet Objektorientierung? 34  
        1.8 Das Wichtigste auf einen Blick 36  
        1.9 Übungen 37  
     2 Installation und Konfiguration von Java und BlueJ 38  
        2.1 Java installieren 38  
        2.2 BlueJ installieren 40  
        2.3 BlueJ konfigurieren 41  
        2.4 Erste Schritte mit BlueJ 41  
           2.4.1 Das erste Projekt anlegen 41  
           2.4.2 Die erste Klasse anlegen 42  
           2.4.3 Quelltext einer Klasse bearbeiten 43  
        2.5 Weitere Features von BlueJ 46  
           2.5.1 Projekte dokumentieren 46  
           2.5.2 Projekte drucken 47  
           2.5.3 Programme weitergeben 47  
        2.6 Übungen 48  
     3 Erste Schritte in Java 50  
        3.1 Der Rahmen einer Klasse 50  
        3.2 Klassen in der Objektorientierung 52  
           3.2.1 Attribute 52  
           3.2.2 Methoden 53  
           3.2.3 Optional: Parameter und Rückgabewert 55  
           3.2.4 Abschließendes zu Methoden 56  
           3.2.5 Blöcke 57  
        3.3 Ein Objekt erzeugen 58  
        3.4 Kommentare 60  
        3.5 Das Wichtigste auf einen Blick 63  
        3.6 Übungen 64  
     4 Variablen, Datentypen und Operatoren 66  
        4.1 Variablen deklarieren 66  
           4.1.1 Bezeichner 67  
           4.1.2 Datentypen 69  
        4.2 Arten von Variablen 81  
           4.2.1 Finale und variable Variablen 82  
           4.2.2 Möglichkeiten der Deklaration 83  
        4.3 Operatoren 89  
        4.4 Arithmetische Operatoren 90  
           4.4.1 Priorität und Assoziativität 90  
           4.4.2 Anweisungen 92  
           4.4.3 Ein Beispiel zur Wiederholung 93  
           4.4.4 Codezeilen testen 94  
           4.4.5 Inkrement und Dekrement 95  
           4.4.6 Division und Rest 98  
        4.5 Datentypen umwandeln 102  
        4.6 Das Wichtigste auf einen Blick 103  
        4.7 Übungen 104  
     5 Bedingungen und Vergleiche 108  
        5.1 Blöcke 108  
        5.2 Die if-Anweisung 109  
        5.3 Vergleichsoperatoren 110  
        5.4 Mögliche Operanden bei Vergleichen 111  
        5.5 Die Handlungsalternative else 112  
        5.6 Logische Operatoren 113  
           5.6.1 Die Und-Verknüpfung 114  
           5.6.2 Die Oder-Verknüpfung 116  
           5.6.3 Logische Negation 117  
        5.7 Der ternäre Operator 118  
        5.8 Die switch-Anweisung 118  
        5.9 Beispiel: Bodymaßindex (BMI) berechnen 121  
        5.10 Objekte vergleichen 123  
           5.10.1 Für welche Objekte gelten die Aussagen? 123  
           5.10.2 Warum können Objekte nicht mit dem Vergleichsoperator verglichen werden? 126  
           5.10.3 Wie man Objekte stattdessen vergleicht 128  
        5.11 Das Wichtigste auf einen Blick 129  
        5.12 Übungen 130  
     6 Schleifen und Wiederholungen 134  
        6.1 Kopfgesteuerte Schleifen - while 134  
        6.2 Fußgesteuerte Schleifen - do … while 135  
        6.3 For-Schleifen 135  
           6.3.1 Schleifen unterbrechen - break und continue 138  
           6.3.2 Ein größeres Beispiel für for-Schleifen 139  
           6.3.3 Schachteln von for-Schleifen 142  
           6.3.4 Erweiterung - die for-each-Schleife 147  
        6.4 Das Wichtigste auf einen Blick 151  
        6.5 Übungen 152  
     7 Anwendungsbeispiel: Geburtstagskalender 154  
        7.1 Der erste Ansatz 154  
        7.2 Der zweite Ansatz 155  
           7.2.1 Die Datenbasis erstellen 156  
           7.2.2 Die Datenbasis initialisieren 157  
           7.2.3 Mehrere Geburtstagskinder an einem Tag 158  
           7.2.4 Kalendereinträge ausgeben 159  
        7.3 Fazit 162  
  Objektorientierte Programmierung 166  
     8 Grundlegende Aspekte der OOP 168  
        8.1 Mit Objekten eigener Klassen arbeiten 168  
        8.2 Inhalt einer Klasse - der Klassenentwurf 171  
        8.3 Bestandteile einer Klasse 174  
           8.3.1 Datenfelder und Referenzdatentypen 174  
           8.3.2 Methoden 178  
           8.3.3 Konstruktoren 195  
        8.4 Das Konto-Projekt zum Abschluss bringen 200  
        8.5 Pakete importieren und statische Importe 202  
           8.5.1 Aufgabe von Paketen 202  
           8.5.2 Klassen importieren 203  
           8.5.3 Statische Importe 205  
           8.5.4 Eine Eingabemöglichkeit schaffen 209  
        8.6 Enumerations 209  
           8.6.1 Lösungsansatz 1 210  
           8.6.2 Lösungsansatz 2 211  
           8.6.3 Lösungsansatz 3 213  
        8.7 UML und die Klassenkarte 216  
        8.8 Annotations 218  
        8.9 Das Wichtigste auf einen Blick 219  
        8.10 Übungen 221  
     9 Vererbung und Polymorphie 224  
        9.1 Ihre Aufgabe in diesem Kapitel 224  
           9.1.1 Der erste Entwurf 224  
           9.1.2 Bewertung des Lösungsansatzes 226  
        9.2 Mit Vererbung arbeiten 226  
           9.2.1 Eine Superklasse entwerfen 226  
           9.2.2 Vererbung testen 228  
           9.2.3 Beziehungen zwischen Klassen 230  
        9.3 Erweiterung der Aufgabe 232  
           9.3.1 Eine neue Superklasse erstellen 232  
           9.3.2 Die neue Superklasse testen 234  
        9.4 Typen zuweisen 235  
           9.4.1 Statischer und dynamischer Typ von Referenzvariablen 236  
           9.4.2 Der Cast-Operator 238  
           9.4.3 Prüfung der Typen 239  
        9.5 Sichtbarkeit 239  
        9.6 Konstruktoren 241  
        9.7 Methoden überschreiben 244  
           9.7.1 Wie Methoden überschrieben werden 244  
           9.7.2 Wirkung des Überschreibens 245  
           9.7.3 Unterschiedliche Typen 246  
           9.7.4 Beispiele für Überschreiben und Überladen 247  
           9.7.5 Zugriff auf Methoden der Superklasse 249  
        9.8 Die letzte Erweiterung der Aufgabe 250  
        9.9 Alle Klassen erben von der Klasse »Object« 255  
           9.9.1 Die Methode »getClass()« 255  
           9.9.2 Die Methode »toString()« 256  
           9.9.3 Die Methode »equals()« 258  
           9.9.4 Die Methode »hashCode()« 263  
        9.10 Das Wichtigste auf einen Blick 265  
        9.11 Übungen 266  
     10 Erweiterte Konzepte der OOP 268  
        10.1 Abstrakte Klassen 268  
           10.1.1 Abstrakte Klassen erzeugen 269  
           10.1.2 Abstrakte Methoden in abstrakten Klassen 270  
           10.1.3 Ein Beispiel für abstrakte Klassen: Zeit- und Datumsfunktionen 273  
        10.2 Schnittstellen 276  
           10.2.1 Definition des Begriffes 276  
           10.2.2 Ein Beispiel für die Arbeit mit Interfaces 278  
        10.3 Wann nehmen Sie was? 287  
        10.4 Entwurfsmuster 287  
           10.4.1 Beispiel 1: das Observer-Pattern 288  
           10.4.2 Beispiel 2: das Singleton-Pattern 291  
           10.4.3 Patterns generieren lassen - der PatternCoder 292  
           10.4.4 Sinn von Entwurfsmustern 295  
        10.5 Innere Klassen 296  
           10.5.1 Der erste Lösungsansatz: mit herkömmlichen Möglichkeiten 296  
           10.5.2 Der zweite Lösungsansatz: statische innere Klasse 299  
           10.5.3 Der dritte Lösungsansatz: nicht-statische Memberklasse 302  
           10.5.4 Der vierte Lösungsansatz: lokale Klasse 305  
        10.6 Exkurs: Fehler finden mit dem Debugger 311  
        10.7 Das Wichtigste auf einen Blick 315  
           10.7.1 Abstrakte Klassen und Schnittstellen 315  
           10.7.2 Innere Klassen 316  
           10.7.3 Entwurfsmuster 316  
           10.7.4 Debugging 317  
        10.8 Übungen 317  
  Grafische Benutzeroberflächen 318  
     11 Einführung in die GUI-Programmierung 320  
        11.1 Von AWT zu Swing 321  
        11.2 Die Vererbungshierarchie von AWT und Swing 322  
        11.3 Das erste Fenster 323  
           11.3.1 Ein Fenster erzeugen 323  
           11.3.2 Ein Menü aufbauen 324  
           11.3.3 Tastenkürzel für das Menü anlegen 326  
           11.3.4 Ein Menü mit Auswahl von Optionen 328  
        11.4 Event-Handling 330  
           11.4.1 Hierarchie der Event-Klassen und Event-Typen 330  
           11.4.2 Event-Empfänger 334  
           11.4.3 Event-Quellen 334  
           11.4.4 Zwei Beispiele für das Zusammenspiel 335  
           11.4.5 Adapterklassen 339  
           11.4.6 So sieht es praktisch aus 340  
        11.5 Das Wichtigste auf einen Blick 345  
        11.6 Übungen 346  
     12 Steuerelemente und Layout 348  
        12.1 Namenskonventionen und ungarische Notation 348  
        12.2 Top-Level-Container 349  
           12.2.1 Die Klasse »JFrame« 349  
           12.2.2 Die Klasse »JDialog« 351  
           12.2.3 Die Klasse »JWindow« 353  
           12.2.4 Fazit zu Top-Level-Containern 353  
        12.3 Weitere Container-Klassen 354  
           12.3.1 Die Klassen »JComponent« und »JPanel« 355  
           12.3.2 Die Klasse »JTabbedPane« 357  
           12.3.3 Die Klasse »JSplitPane« 358  
           12.3.4 Die Klasse »JScrollPane« 360  
        12.4 Interaktionskomponenten (Teil 1) 361  
           12.4.1 Die Klasse »JLabel« 362  
           12.4.2 Die Klasse »AbstractButton« und ein paar ihrer Subklassen 364  
           12.4.3 Die Klasse »JList« 369  
        12.5 Das MVC-Pattern 373  
           12.5.1 Allgemeine Beschreibung 373  
           12.5.2 Wie sieht dieses Prinzip in Swing aus? 383  
           12.5.3 Besonderheit der Swing-Modelle 390  
        12.6 Interaktionskomponenten (Teil 2) 391  
           12.6.1 Die Klasse »JTextField« 391  
           12.6.2 Die Klasse »JComboBox« 393  
           12.6.3 Die Klasse »JPasswordField« 395  
           12.6.4 Die Klasse »JTextArea« 396  
           12.6.5 Die Klasse »JEditorPane« 397  
           12.6.6 Die Klasse »JSlider« 398  
           12.6.7 Die Klasse »JSpinner« 400  
           12.6.8 Die Klasse »JOptionPane« 402  
        12.7 Das Wichtigste auf einen Blick 405  
        12.8 Übungen 406  
     13 Erweiterte Konzepte von Swing 408  
        13.1 Layoutmanager 409  
           13.1.1 Layoutmanager in der Praxis 409  
           13.1.2 Das FlowLayout 410  
           13.1.3 Das BorderLayout 411  
           13.1.4 Das GridLayout 413  
           13.1.5 Das GridBagLayout 415  
        13.2 Look and Feel (LaF) 420  
        13.3 Die Klasse »JTable« 423  
           13.3.1 Umsetzung mit Arrays 423  
           13.3.2 Datenbasis mit »TableModel« verwalten 424  
           13.3.3 Realisierung mit »AbstractTableModel« 429  
           13.3.4 Realisierung mit »DefaultTableModel« 431  
           13.3.5 Darstellung der Daten (Rendering) 431  
           13.3.6 Tabellen sortieren 435  
           13.3.7 Zellen editieren 438  
           13.3.8 Mehr über die Arbeit mit »JTable« 442  
        13.4 Die Klasse »JTree« 443  
           13.4.1 Ein erster Versuch 443  
           13.4.2 Auf Ereignisse lauschen 445  
           13.4.3 Selektionen und die Klasse »TreePath« 447  
           13.4.4 Ein eigenes Modell entwickeln 449  
           13.4.5 Die Anzeige ändern - das Rendering 454  
        13.5 Das Interface »Action« 456  
        13.6 Das Wichtigste auf einen Blick 458  
  Fortgeschrittene Themen 460  
     14 Ausnahmebehandlung - Exceptions 462  
        14.1 Was bedeutet Fehlerbehandlung? 462  
           14.1.1 Wie Fehler abgefangen werden können 463  
           14.1.2 Nachteile des ersten Ansatzes 463  
        14.2 Einführung von Exception-Handling 464  
           14.2.1 Die Exception-Klassen 465  
           14.2.2 Der try- und der catch-Block 465  
           14.2.3 Der finally-Block 467  
        14.3 Fangen oder Weiterreichen (Catch-or-Specify) 468  
        14.4 Differenziert auf Ausnahmesituationen reagieren 469  
           14.4.1 Eigene Exception-Typen definieren 469  
           14.4.2 Exceptions differenziert fangen 473  
        14.5 Runtime-Exceptions 476  
        14.6 Error 478  
        14.7 Die Methode »printStackTrace()« 478  
        14.8 Assertions 480  
        14.9 Neu in Java 7 481  
        14.10 Zusammenfassendes Beispiel 482  
           14.10.1 Die bisherige Implementierung 482  
           14.10.2 Die neue Implementierung 483  
           14.10.3 Die neue Implementierung testen 484  
        14.11 Das Wichtigste auf einen Blick 487  
     15 Collections und Generics 488  
        15.1 Ein eigenes Array entwickeln 488  
           15.1.1 Die Datenbasis der Klasse »MyArray« 489  
           15.1.2 Methoden der Klasse »MyArray« 490  
           15.1.3 Weitere Methoden der Klasse »MyArray« 490  
        15.2 Primitive Datentypen als Objekte - Wrapper-Klassen 492  
           15.2.1 Autoboxing und Unboxing 492  
           15.2.2 Hinweis zum Umgang mit Wrapper-Klassen 493  
        15.3 Einführung in Generics - Typsicherheit 494  
        15.4 Die Interfaces »List« und »Set« 497  
           15.4.1 Das Interface »List« 498  
           15.4.2 Das Interface »Set« 504  
           15.4.3 Sammlungen mit »Comparable« und »Comparator« sortieren 509  
           15.4.4 Verwendung der Klasse »TreeSet« 514  
        15.5 Das Interface »Map« 517  
           15.5.1 Eine Map erzeugen 517  
           15.5.2 Einer Map Werte übergeben 518  
           15.5.3 Interne Abbildung der Daten und Iteration 519  
        15.6 Das Wichtigste auf einen Blick 521  
        15.7 Übungen 522  
     16 Nebenläufigkeit 524  
        16.1 Ein erstes Beispiel 524  
           16.1.1 Die Quellen des Beispieles 525  
           16.1.2 Auswertung des Beispieles 526  
        16.2 Zustandsänderungen eines Threads 528  
           16.2.1 Zustände, die ein Thread einnehmen kann 528  
           16.2.2 Änderungen des Zustandes 528  
           16.2.3 Einen Thread beenden 529  
           16.2.4 Die Methoden »sleep()« und »interrupt()« 531  
           16.2.5 Prioritäten von Threads festlegen 532  
           16.2.6 Eine Zeitschaltuhr - die Klasse »Timer« 533  
        16.3 Synchronisieren von Threads 534  
           16.3.1 Wo liegt die Fehlerquelle? 534  
           16.3.2 Wie kann dieses Problem umgangen werden? 538  
        16.4 Kommunikation zwischen Threads 541  
        16.5 Das Wichtigste auf einen Blick 543  
        16.6 Übungen 544  
     17 Dateien, Datenströme, Serialisieren 546  
        17.1 Dateibehandlung ab Java 7 546  
           17.1.1 Einstiegspunkte sind »FileSystem« und »Path« 546  
           17.1.2 Eine Datei oder ein Verzeichnis bearbeiten 549  
        17.2 Exkurs: Dateibehandlung bis Java 7 551  
        17.3 Was sind Ströme und was kann man damit machen? 553  
           17.3.1 Mit Byte-Streams arbeiten 554  
           17.3.2 Character-Streams und Brückenklassen 557  
           17.3.3 BufferedReader und BufferedWriter einsetzen 560  
        17.4 Kurze Zusammenfassung und Ausblick 563  
        17.5 Objekte serialisieren und deserialisieren 565  
           17.5.1 Die Klasse »Adressbuch« schreiben 565  
           17.5.2 Die Klasse »Freund« schreiben 566  
           17.5.3 Die Klasse »Verwaltung« schreiben 566  
           17.5.4 Das Projekt testen 569  
           17.5.5 Variablen von der Serialisierung ausnehmen 570  
        17.6 Mit dem FileWhisperer das Dateisystem erkunden 570  
           17.6.1 Die Oberfläche gestalten 571  
           17.6.2 Verzeichnisse anzeigen 572  
           17.6.3 Die Datei-Attribute anzeigen 575  
        17.7 Das Wichtigste auf einen Blick 581  
     18 Netzwerke 584  
        18.1 Rechner verbinden 584  
        18.2 Verbindung über Sockets 585  
           18.2.1 IP-Adressen und Domain-Namen 586  
           18.2.2 Ports 587  
        18.3 Der Multifunktionsserver 588  
           18.3.1 Schritt 1 - Grundversion 588  
           18.3.2 Schritt 2 - mehrere Aufgaben an den Server richten 594  
           18.3.3 Schritt 3 - Vorbereitung von Multithreading 595  
           18.3.4 Schritt 4 - Einführung von Multithreading 598  
           18.3.5 Schritt 5 - eigene Objekte statt Strings 599  
           18.3.6 Schritt 6 - Einführung von Services 604  
           18.3.7 Schritt 7 - Funktionen in HashMap speichern 605  
        18.4 Anregung für eigene Projekte 608  
        18.5 Das Wichtigste auf einen Blick 609  
     19 Datenbanken 610  
        19.1 Grundlagen 610  
           19.1.1 Aufbau einer Datenbank 611  
           19.1.2 Wichtige Begriffe 613  
        19.2 Installation einer Datenbank 613  
           19.2.1 Die Serversoftware installieren 613  
           19.2.2 Einen Treiber installieren 615  
        19.3 Eine Datenbank anlegen 615  
           19.3.1 Die Verbindung herstellen 616  
           19.3.2 Befehl an die Datenbank absetzen 617  
           19.3.3 Überblick über den Quelltext 619  
        19.4 Tabellen anlegen 621  
           19.4.1 Treiber laden und Verbindung herstellen 621  
           19.4.2 Tabellen anlegen und Verbindungen schließen 622  
        19.5 Spalten anlegen 624  
           19.5.1 Datentypen von Attributen 625  
           19.5.2 Die Primärschlüssel der Tabellen anlegen 625  
        19.6 Daten in die Tabellen eintragen 627  
        19.7 Daten abfragen, ändern und löschen 629  
           19.7.1 Daten abfragen 629  
           19.7.2 Tabellen verbinden 632  
           19.7.3 Die where-Klausel 633  
           19.7.4 Daten löschen und Subabfragen definieren 634  
           19.7.5 Daten ändern 635  
        19.8 Prepared Statement 636  
        19.9 Exkurs SQL-Injection 637  
        19.10 Weitergehende Konzepte 641  
        19.11 Das Wichtigste auf einen Blick 642  
     A Lösungen 644  
        A.1 Kapitel 1 644  
        A.2 Kapitel 2 645  
        A.3 Kapitel 3 645  
        A.4 Kapitel 4 645  
        A.5 Kapitel 5 646  
        A.6 Kapitel 6 647  
        A.7 Kapitel 8 647  
        A.8 Kapitel 9 648  
        A.9 Kapitel 15 648  
  Index 650  

Kategorien

Service

Info/Kontakt