Bruce Eckel Philosophie Java 5 Edition PDF. Wikibooks Java-Philosophie. Über die Philosophie von Java von Bruce Eckel
Höchstwahrscheinlich werde ich mich nicht irren, wenn ich annehme, dass die meisten, die Java studiert haben, dies mit Hilfe des berühmten Buches von Bruce Eckel begonnen haben: "In Java denken"in der russischen Ausgabe bekannt als "Java-Philosophie"... Leider ist in elektronischer Form (in russischer Sprache) die 2. Ausgabe dieses Buches am weitesten verbreitet, die auf der Java 1.1-Version basiert und seit langem an Relevanz verloren hat. Die Neuerungen, die in den nächsten Versionen von Java (und insbesondere in Java SE5) erschienen, waren ziemlich bedeutsam, was zu einer ernsthaften Überarbeitung des Buches in seiner vierten Ausgabe führte (deren Übersetzung in russischer Sprache veröffentlicht wurde). In einem einfach zu lesenden (und vor allem für eine schnelle Suche) elektronischen Format existierte die russische Version dieser Ausgabe jedoch nicht. Also habe ich beschlossen, diese Lücke zu schließen und eine vollständige Version dieses beliebten Buches im "Wikibooks" -Format zu produzieren. Ich glaube, dass diese Informationen nicht nur für Sprachlerner interessant und nützlich sein werden, sondern auch für alle, die in Java arbeiten, da es eine Vielzahl hervorragender Beispiele gibt, die fast alle Aspekte der Programmierung in dieser Sprache veranschaulichen. Besonders wenn es um selten verwendete Java-Funktionen geht.
Wikibooks "Java-Philosophie" Gepostet unter:
"Frühling in Aktion"
Bücher aus der Serie "..... in Aktion" (normalerweise im PDF-Format und normalerweise in Englisch) sind in bestimmten Kreisen zu Recht beliebt :) Unter ihnen befinden sich umfangreiche Talmuds, wie z "JSTL in Aktion" (leicht zu lesen und mit mäßigen Englischkenntnissen, aber geeignet für die Rolle einer guten Referenz zum Thema) und bescheideneren Handwerken wie "Streben in Aktion" ("Nicht alles ist Gold ..."). Buch "Frühling in Aktion" in dieser Liste jedoch aus der Kategorie "Schwergewichte" und im wahrsten Sinne des Wortes. Es zu lesen, ohne "fließend Englisch" zu sprechen, ist wahrscheinlich nicht einfach. Und die Sache liegt eher nicht in der Komplexität des präsentierten Materials (es ist nicht kompliziert), sondern in der Tatsache, dass es sich herausstellte - übermäßig "englisch-künstlerisch" oder so ... Voller lyrischer Abweichungen, Schlagworte, Wortspiele und anderer Dinge bla bla bla, Sprache Autoren machen das Lesen dieses Handbuchs (in der Originalsprache) schnell zu einem mühsamen Prozess. Auf der anderen Seite lässt es Sie wissen, dass das Wort "zeichnen"(normalerweise - "Zeichnen") kann im Sinne von "Extrahieren aus" verwendet werden (lit. - "Ziehen, Ziehen"). Als Ergebnis (unter Berücksichtigung des allgemeinen Präsentationsstils im Buch) zu verstehen genaue Bedeutung Sätze wie: "... Frühling zeichnet diese Daten ..." , es passiert zur gleichen Zeit - es ist nicht einfach und extrem notwendig. Daher müssen die Leser der Kapitel, die ich nicht übersetzt habe, selbst entscheiden, was die Autoren in solchen Fällen wollten: poetisch über die Erstellung (Aufzeichnung) einer Datei auszudrücken oder spielerisch über das Lesen zu erzählen.
Dieses Buch wurde von mir als ausdrückliche Referenz für den persönlichen Gebrauch von PDF in Wikibooks konvertiert. Daher ist die Übersetzung nicht vollständig, sondern nur an Orten - für die es genügend Begeisterung gab. Der Rest der Kapitel wurde einfach schnell zusammengestellt. Es wird veröffentlicht, ALLES in der Form - "wie es ist", und die Qualität des russischen Textes sollte nicht beschuldigt werden ... Ich bin kein professioneller Übersetzer, und ich hatte keinen Literaturredakteur. Vielleicht werde ich jemanden enttäuschen, weil ich einige Passagen und Kapitel des Buches nicht übersetzt habe (und nicht einmal vorhabe, sie zu übersetzen), aber ich hätte es für zukünftige Generationen reservieren sollen
Wikibooks "Frühling in Aktion " gepostet unter:Die Programmierung ist einer der gefragtesten IT-Services. Viele Menschen lernten diese schwierige Branche kennen und arbeiteten in diese Richtung. Wenn der Leser schon immer an Programmierung interessiert war, aber nicht wusste, wo er anfangen soll, ist das Buch "The Philosophy of Java" eine hervorragende Starthilfe in dieser Angelegenheit. Der Autor Bruce Eckel ist ein wahrer Fachmann für Computertechnologie und erklärt anhand einer verständlichen Präsentation schnell die Grundprinzipien der Arbeit mit Programmcode.
Die Java-Sprache gilt als eine der beliebtesten Programmiersprachen der Welt. Dies liegt an seiner hohen Flexibilität und der Möglichkeit seiner Anwendung in nahezu allen Bereichen, die mit Spielen, Software usw. zusammenhängen. perfektes Studium der Programmierwissenschaft. Bruce Eckel hat wirklich hervorragende Arbeit geleistet, indem er Hunderte von lebenden Beispielen angeführt und alle wichtigen Punkte im Verlauf seines Buches ausführlich erklärt hat. Mit Hilfe dieses Handbuchs kann jeder Benutzer, der die Java-Sprache lernen möchte, eine hervorragende Wissensbasis aufbauen und, bereits darauf angewiesen, eine eingehende Studie starten.
Der Autor empfiehlt allen Anfängern und Personen, die gerade mit der grundlegenden Java-Programmierung begonnen haben, sein Buch zu lesen. Die Java-Philosophie ist eine schnelle und qualitativ hochwertige Anleitung zum Erlernen der Grundlagen von Java. Das Buch widmet sich all den kleinen Dingen und Feinheiten, angefangen bei der Benutzeroberfläche und den Grundeinstellungen bis hin zu komplexen Kombinationen und Techniken, die an einem realen Beispiel anhand von Befehlen und verständlichen Codes mit den Kommentaren des Autors gezeigt werden.
Bruce Eckel hilft Ihnen dabei, sich auf den Hauptzweck und die Philosophie der Verwendung von Java für Arbeit, Geschäft und andere Bereiche zu konzentrieren. Der Autor zeigt auch viele Beispiele für Probleme, spricht über die Ursachen ihres Auftretens und die wichtigsten Methoden zur Fehlerbehebung im Programmcode. Fachleute auf dem Gebiet der Programmierung haben das Buch "Philosophie von Java" sehr geschätzt, da es ein Lehrbuch ist, das Ihnen hilft, die Java-Sprache besser zu lernen. Obwohl dies Fachliteratur ist, ist es viel einfacher zu lesen als andere Bücher in einer ähnlichen Richtung.
Auf unserer literarischen Website können Sie das Buch "The Philosophy of Java" von Bruce Eckel kostenlos in Formaten herunterladen, die für verschiedene Geräte geeignet sind - epub, fb2, txt, rtf. Lesen Sie gerne Bücher und behalten Sie Neuerscheinungen immer im Auge? Wir haben eine große Auswahl an Büchern verschiedener Genres: Klassiker, moderne Science-Fiction, Literatur zur Psychologie und Kinderpublikationen. Darüber hinaus bieten wir interessante und informative Artikel für Anfänger und alle, die lernen möchten, wie man schön schreibt. Jeder unserer Besucher findet etwas Nützliches und Aufregendes für sich.
Kapitel 11. Objektsammlungen
Fragen
1. Was ist die Collection-Oberfläche?
Antworten
Die Collection-Schnittstelle ist die Root-Schnittstelle, die die gemeinsame Funktionalität aller sequentiellen Container beschreibt (S. 321).
2. Können Container zur Aufbewahrung von Grundelementen verwendet werden?
Antworten
Grundelemente können nicht als Containerelemente fungieren. In einem Container können nur Verweise auf Objekte platziert werden. Der Autoboxing-Mechanismus konvertiert das Grundelement jedoch automatisch in einen Objekttyp. Daher kann der Programmierer die obige Einschränkung "vergessen".
(geteilt mit MrD)
3. Welche Methode zum Hinzufügen von Elementen zum ArrayList-Container wird bevorzugt:
Arrays.asList oder Collections.addAll und warum?
Antworten
Collections.addAll wird aufgrund seiner überlegenen Leistung bevorzugt (S. 282).
4. Listen Sie verschiedene Methoden auf, die bei der Arbeit mit ArrayList verfügbar sind.
Antworten
"Enthält (Objekt o)" - Überprüfen Sie, ob ein Element im Array vorhanden ist.
"IndexOf (Object o)" - Ruft den Index des Elements ab.
"SubList (index1, index2)" - Kopieren Sie einige der Elemente in einen neuen Container.
"ContainsAll (Object o)" - Überprüfen Sie, ob Elemente im Container vorhanden sind.
5. Was ruft die remove () -Methode für einen Container vom Typ Queue zurück?
Antworten
Die Queue.remove () -Methode entfernt nicht nur das head-Element der Warteschlange, sondern gibt auch dessen Zeichenfolgenwert zurück.
6. Welche Vorgänge sind bei der Arbeit mit LinkedList schneller als bei ArrayList?
Antworten
Das Einfügen und Entfernen von Elementen aus der Mitte einer Liste ist mit einer LinkedList schneller (S. 291).
7. Welche Arten von Containern können Sie mit LinkedList implementieren?
Antworten
Stapel, Warteschlange, Deque.
8. Wie unterscheidet sich die Set-Containerfamilie von der List-Containerfamilie? (danke an MrD für die Bearbeitung)
Antworten
In der Set-Containerfamilie können Daten nur in einer Instanz gespeichert werden (S. 294).
9. Wird eine Ausnahme ausgelöst, wenn versucht wird, dem bereits vorhandenen Set ein Element hinzuzufügen?
Antworten
Es wird keine Ausnahme passieren.
10. Wie unterscheidet sich der PriorityQueue-Container von der Warteschlange?
Antworten
Elemente in einer PriorityQueue können nach bestimmten Regeln sortiert werden.
11. Wofür wird der Komparator verwendet, wenn er auf eine PriorityQueue angewendet wird?
Antworten
Mit dem Komparator können Sie die Sortierregeln für PriorityQueue-Elemente angeben.
12. Was bedeuten die Präfixe "Tree" und "Hash", "LinkedHash" beispielsweise für den Containertyp Set (TreeSet, HashSet, LinkedHashSet)?
Antworten
Das Präfix "Baum" bedeutet, dass die Elemente des Containers in sortierter Reihenfolge gespeichert werden
(z. B. alphabetisch oder aufsteigend) Das Präfix "Hash" bedeutet, dass der Container Hashing implementiert, um die Probenahme zu beschleunigen. Das Präfix "LinkedHash" bedeutet, dass der Container die Elemente in der Reihenfolge des Einfügens speichert und einen schnellen Zugriff bietet (S. 309).
13. Unterstützt der "Map" -Container die Iterable-Schnittstelle?
14. Funktioniert die foreach-Syntax für einen "Map" -Container?
Antworten
Für einen Container vom Typ "Map" funktioniert die foreach-Syntax nicht, da sie die iterierbare Schnittstelle nicht unterstützt
15. Was ist der Hauptvorteil der Verwendung eines Iterators für den Zugriff auf die Elemente eines Containers?
Antworten
Ein Iterator kann für verschiedene Arten von Containern verwendet werden (S. 299).
16. Welche neuen Funktionen bietet der ListIterator gegenüber dem regulären Iterator?
Antworten
ListIterator bietet sequentiellen Zugriff auf Elemente nicht nur vom Anfang bis zum Ende des Containers, sondern auch umgekehrt (S. 299).
Übungen
11. 1. Erstellen Sie eine Obstklasse. Die Klasse muss ein int weight-Feld, einen Konstruktor, der dieses Feld initialisiert, und eine printWeight () -Methode enthalten, die den Gewichtungswert druckt.
Fügen Sie in der Hauptmethode einige Obstobjekte zum Listencontainer hinzu. Rufen Sie printWeight () für jedes der Objekte auf folgende Weise auf:
A) Verwenden der Methode get ();
B) Verwenden eines Iterators.
Antworten
// Fruit.java öffentliche Klasse Fruit (private int weight \u003d 0; public Fruit (int weight) (this.weight \u003d weight;) public void printWeight () (System.out.println ("Weight is:" + weight); )) // Apply.java import java.util. *; public class Apply (public statisch void main (String args) (Liste
11.2. Legen Sie die Fruchtklasse ab 11.1 in einen Kartencontainer. Lassen Sie den Namen des Besitzers als Schlüssel und ein Objekt vom Typ Frucht als Wert angeben. Implementieren Sie eine Schlüsseliteration für jedes Fruit-Objekt und rufen Sie die printWeight () -Methode für das gefundene Objekt auf: using foreach; mit einem Iterator.
Antworten
Vielen Dank an quarantino für die kompakte Iteratorlösung.
Klasse Obst - siehe Aufgabe 11.2
Importiere java.util. *; import java.util.Map.Entry; public class Apply (public statisch void main (String args) (// HashMap verwenden, da keine Sortierung erforderlich ist Map
11.3. Stellen Sie mithilfe des Komparators für die PriorityQueue sicher, dass die Zeichenfolgenvariablen nach Größe sortiert sind.
Antworten
Hinweis: Das Beispiel stammt aus dem Internet.
// StringComparator.java import java.util.Comparator; Die öffentliche Klasse StringComparator implementiert Comparator
Übersetzung von Übungen aus dem Originalbuch:
11.4. Erstellen Sie eine neue Gerbil-Klasse mit einem int gerbilNumber-Feld. Lassen Sie das Feld mit einem Konstruktor initialisieren. Erstellen Sie auch eine hop () -Methode, die "Gerbil's Nummer, die springt, ist:" und den Wert der gerbilNumber-Variablen ausgibt. Platzieren Sie die Gerbil-Objekte im ArrayList-Container. Implementieren Sie eine get () -Methode, um die Liste zu durchlaufen, und rufen Sie die hop () -Methode für jedes dieser Objekte auf.
11.5. Ändern Sie SimpleCollection.java, um die Set-Methode für die Variable "c" zu verwenden. Ändern Sie innerclasses / Sequence.java so, dass dort beliebig viele Elemente hinzugefügt werden können.
11.6. Schreiben Sie eine Generator-Klasse, in der die Namen Ihrer Lieblingsfilmfiguren (String-Objekte) aufgelistet sind. Lassen Sie jedes Objekt dieser Liste über die next () -Methode zurückgeben. Wenn Sie das Ende der erstellten Liste erreicht haben, müssen Sie zum Anfang der Liste zurückkehren.
Verwenden Sie die Generator-Klasse, um Container wie ArrayList, LinkedList, HashSet, LinkedHashSet, TreeSet zu füllen. Schreiben Sie eine generische Methode, die den Inhalt jedes Arrays druckt.
11.7. Ändern Sie ListFeatures.java, um Ganzzahlen anstelle von Haustieren zu verwenden. Erläutern Sie die Leistungsunterschiede, die sich aus dieser Änderung ergeben.
11.8. Wiederholen Sie Übung 11.7 für ListFeatures.java, aber ersetzen Sie Haustiere durch Strings.
11.9. Erstellen Sie eine Klasse, die ein initialisiertes Array von Objekten einer anderen Klasse generiert. Füllen Sie einen Listencontainer mit diesem Array. Erstellen Sie einen weiteren Container mit subList () für List. Entfernen Sie dann die Elemente, die Sie mit subList () abgerufen haben, aus dem Container, aus dem Sie sie abgerufen haben.
11.10. Eine spielerische Übung im Umgang mit verschiedenen Behältern und ihren Methoden (von mir erfunden)
Angenommen, wir haben eine Liste der Ausgaben, die anfänglich aus drei Elementen besteht: "Essen", "Medizin", "Unterhaltung". Sie müssen diese Elemente in den Listencontainer schreiben, und ihre Reihenfolge sollte sich nicht ändern.
1) Wir stellten plötzlich fest, dass wir vergessen hatten, die Rückzahlungskosten für Kredite zur Liste hinzuzufügen. Sie müssen den Datensatz „Steuern“ zwischen „Lebensmittel“ und „Medizin“ platzieren, ohne die Indizes der Datensätze direkt zu verwenden.
2) Die Frau brachte eine zusätzliche separate Kostenliste mit den Einträgen "Mantel", "Restaurant" ein. Es gibt nichts zu tun: Fügen Sie am Ende der Liste Ausgaben hinzu (um sich nicht zu schmeicheln).
3) Die Schwiegermutter brachte uns jedoch noch ein paar Dinge: "Theater", "Heimdekoration" und "Medizin". Vielleicht hatten Sie bereits einige dieser Punkte. Kopieren Sie für alle Fälle den Inhalt des ersten Containers in einen neuen Container vom Typ Set und fügen Sie diese Elemente ohne zu zögern am Ende der Liste hinzu.
4) Ohne zu zögern haben wir eine assoziative dynamische Liste der Ausgabenkarten erstellt
5) Wir wurden reich und beschlossen, die Summe aller Ausgaben um 30% zu erhöhen. Schreiben Sie eine Methode, um dies für Sie zu tun.
6) Hör auf! Genug mit uns "Heimdekoration!" Und vielleicht wird zu viel für den Mantel ausgegeben. Fügen Sie diese Elemente einer neuen Liste hinzu und übergeben Sie sie an die Methode, die nach dem Lesen dieses Blattes die entsprechenden Kostenelemente im Kartencontainer findet und um ... 80% reduziert!
7) Lassen Sie uns einen Teil der Ausgaben für die Schwiegermutter abwerfen. Lassen Sie sie außerdem überraschen! Lassen Sie uns zwei Zufallszahlen generieren, die den Start- und Endindex bestimmen. Alle Ausgaben werden in einer separaten Liste erfasst (die später von der Schwiegermutter verschoben wird). Vergessen wir nicht, die Karte zu aktualisieren, indem Sie die entsprechenden Ausgabenposten daraus entfernen.
8) Lassen Sie uns eine Methode schreiben, die bestimmt, wofür die geringsten Ausgaben ausgegeben werden, den Namen dieser Ausgaben ausdrucken und diesen Artikel stolz aus der Liste entfernen.
9) Es wurden jedoch zusätzliche Verbrauchsmaterialien auf uns gestapelt: "Essen" und "Restaurant", dekoriert in Form einer anderen Anordnung! Lassen Sie uns überprüfen, ob diese Artikel auf unserer Liste stehen. Und wenn es mindestens eine Ausgabe gibt, werden wir sie auf keinen Fall hinzufügen! Wenn es nichts davon gibt, fügen wir (es gibt nichts zu tun) beide Elemente gleichzeitig hinzu (wie hungrig ich bin!).
10) Wir sind verrückt! Lassen Sie uns alle Integer-Summen unserer verbleibenden Ausgaben aus der Map-Liste lesen, sie in einen "Some" -Container schreiben, der sie in aufsteigender Reihenfolge für uns sortiert, sie dann in Wut mischen und sie in umgekehrter Reihenfolge löschen, wütend mit einem speziellen Iterator.
Die Java-Philosophie Bruce Eckel
(Noch keine Bewertungen)
Titel: Java-Philosophie
Über die Philosophie von Java von Bruce Eckel
Bruce Eckel ist ein hervorragender Programmierer, Autor mehrerer Bücher über die Programmiersprache. Seine Arbeit wurde schnell populär, als er komplexe Konzepte in einfacher Sprache darlegte. Sie haben vielen geholfen, das Programmieren von Grund auf zu lernen und in diesem Bereich erfolgreich zu sein. Der Autor hat mehr als einmal Auszeichnungen für seine Arbeit erhalten. Seine Bücher wurden von Kritikern immer sehr positiv aufgenommen, und diejenigen, die tiefere verschiedene Programmiersprachen lernen wollten, freuten sich auf seine neue Arbeit. Das bekannteste Buch des Autors ist "Java Philosophy". Es war in großer Zahl ausverkauft und wurde mehrmals nachgedruckt. Selbst jetzt, über ein Jahrzehnt später, ist diese Arbeit ein Muss für jeden, der ein professioneller Programmierer werden möchte.
In seinem Buch "Java Philosophy" enthüllt der Autor die Geheimnisse dieser Programmiersprache. Er rät, ihn als etwas Lebendiges anzusehen. Er gibt gekonnt Beispiele, die beweisen, dass sich die Programmiersprache weiterentwickelt, und es werden verschiedene Ergänzungen vorgenommen. Es kann verwendet werden, um jeden Prozess zu beschreiben.
Die meisten Programmieranfänger können die Java-Logik nicht verstehen. Der Autor versucht den Lesern verständlich zu erklären, was es ist. Sobald sie dies verstanden haben, wird es viel einfacher sein, Programme zu schreiben, die nicht abstürzen und Spezialisten verwirren. Dank der Erfahrung des Autors ist es einfacher, Fehler, die häufig von Programmierern gemacht werden, unabhängig zu identifizieren und zu beheben. Ein tieferes Studium und Verständnis der Programmiersprache Java eröffnet Perspektiven, die bisher unmöglich erschienen.
Bruce Eckel versuchte in The Philosophy of Java, schwierige Dinge in einfachen Worten zu erklären. Um zu verhindern, dass die Leser verwirrt werden, verbindet er sie mit der Natur und alltäglichen Situationen. So werden nützliche Informationen schneller gespeichert und bleiben für immer bei einer Person. In schwierigen Situationen erinnert er sich an die Geschichte aus dem Buch und verwendet sie.
Bruce Eckel versuchte in dem Buch "Java Philosophy", all seine Erfahrungen zu vermitteln, also stellte er alles in die Regale. Leser können es nur aufnehmen und in ihrer täglichen Arbeit verwenden. Dank des Buches können Sie die meisten häufigen Fehler vermeiden und ein hervorragender Programmierer werden. Die Arbeit des Autors hat vielen Menschen geholfen, die Funktionsweise von Java zu verstehen, großartige Programme zu schreiben und Software zu verbessern.
Auf unserer Website über Bücher können Sie die Website kostenlos ohne Registrierung herunterladen oder das Online-Buch "The Philosophy of Java" von Bruce Eckel in den Formaten epub, fb2, txt, rtf, pdf für iPad, iPhone, Android und Kindle lesen. Das Buch wird Ihnen viele angenehme Momente und echte Freude am Lesen bereiten. Sie können die Vollversion bei unserem Partner kaufen. Außerdem finden Sie hier die neuesten Nachrichten aus der Literaturwelt sowie die Biografie Ihrer Lieblingsautoren. Für Anfänger gibt es einen separaten Abschnitt mit nützlichen Tipps und Tricks, interessanten Artikeln, dank derer Sie sich selbst in literarischen Fähigkeiten versuchen können.
Um das Standarddokument zu ändern, bearbeiten Sie die Datei "blank.fb2" manuell.
Vorwort 13
Java SE5 und SE6 14
Danksagung 14
Kapitel 1. Einführung in Objekte 17
Entwicklung der Abstraktion 18
Objekt hat Schnittstelle 20
Objekt erbringt Dienstleistungen 22
Versteckte Erkenntnis 23
Implementierung wiederverwenden 24
Vererbung 25
Austauschbare Objekte und Polymorphismus 29
Einzelwurzelhierarchie 33
Behälter 33
Parametrisierte Typen 35
Erstellung, Verwendung von Objekten und deren Lebensdauer 36
Ausnahmebehandlung: Umgang mit Fehlern 38
Parallele Ausführung 38
Java und das Internet 39
Kapitel 2. Alles ist ein Objekt 48
Alle Objekte müssen explizit erstellt werden 49
Objekte müssen niemals gelöscht werden 53
Neue Datentypen erstellen 54
Methoden, Argumente und Rückgabewerte 56
Schreiben eines Java-Programms 58
Statisches 60-Schlüsselwort
Unser erstes Java-Programm 61
Kommentare und Inline-Dokumentation 64
Programmierstil 70
Kapitel 3. Operatoren 71
Einfache Druckbefehle 71
Java-Operatoren 72
Literale 82
Java fehlt sizeof () 92
Zusammenfassung 100
Kapitel 4. Kontrollstrukturen 101
Für jede Syntax 105
brechen und fortfahren 108
Schlechtes Team gehe zu 109
Zusammenfassung 115
Kapitel 5. Initialisierung und Abschluss 116
Der Konstruktor garantiert die Initialisierung 116
Methodenüberladung 118
Bereinigung: Finalisierung und Speicherbereinigung 130
Initialisierung der Klassenmitglieder 137
Konstruktorinitialisierung 140
Arrays initialisieren 146
Zusammenfassung 151
Kapitel 6. Zugriffskontrolle 152
Paket als Bibliothekseinheit 153
Java Access Specifiers 159
Schnittstelle und Implementierung 163
Zugang zu Klassen 164
Zusammenfassung 167
Kapitel 7. Wiederverwenden von Klassen 169
Kompositionssyntax 170
Vererbungssyntax 172
Delegation 176
Zusammensetzung und Vererbung kombinieren 178
Zusammensetzung versus Vererbung 184
Aufwärtskonvertierung 186
Final 188 Schlüsselwort
Zusammenfassung 197
Kapitel 8. Polymorphismus 198
Zurück zum Anfang Konvertierung. ... ... \u003e 199
Merkmale 201
Konstruktoren und Polymorphismus 208
Rückgabetyp Kovarianz 216
Mit Vererbung entwickeln 217
Zusammenfassung 220
Kapitel 9. Schnittstellen 221
Abstrakte Klassen und Methoden 221
Schnittstellen 224
Schnittstelle von Implementierung entkoppeln 227
Erweitern einer Schnittstelle durch Vererbung 233
Schnittstellen als Mittel zur Anpassung 236
Verschachtelte Schnittstellen 239
Schnittstellen und Fabriken 242
Zusammenfassung 244
Kapitel 10. Innere Klassen 245
Innere Klassen erstellen 245
Kommunikation mit der externen Klasse 246
Konstruktionen.dies und.neu 248
Innere Klassen und Upstream-Konvertierung 249
Unbenannte innere Klassen 253
Innere Klassen: warum? 261
Erben von inneren Klassen 272
Ist es möglich, die innere Klasse zu überschreiben? 272
Lokale innere Klassen 274
Zusammenfassung 276
Kapitel 11. Sammlungen von Objekten 277
Parametrisierte und typisierte Container 277
Grundbegriffe 280
Hinzufügen von Elementgruppen 281
Iteratoren 288
Set 294
Warteschlange 298
PriorityQueue 299
Sammlung und Iterator 301
Methodenadapter-Idiom 306
Zusammenfassung 309
Kapitel 12. Fehlerbehandlung und Ausnahmen 310
Hauptausnahmen 310
Ausnahmen fangen 312
Eigene Ausnahmen erstellen 314
Ausnahmespezifikationen 319
Willkürliche Ausnahmen abfangen 320
Java-Standardausnahmen 328
Fertigstellung mit endlich 330
Verwenden Sie schließlich mit Rückgabe 334
Einschränkungen bei der Verwendung von Ausnahmen 336
Konstruktoren 339
Ausnahmen identifizieren 343
Alternative Lösungen 344
Zusammenfassung 351
Kapitel 13. Typinformationen 352
Die Notwendigkeit einer dynamischen Typinferenz (RTTI) 352
Registrierung von Fabriken 372
Reflexion: Dynamische Klasseninformationen 376
Dynamische Vermittler 380
Undefinierte Objekte 384
Schnittstellen und Typinformationen 390
CV 394
Kapitel 14. Parametrisierung 397
Einfache Parametrierung 398
Parametrisierte 404-Schnittstellen
Parametrisierte Methoden 407
Komplexe Modelle erstellen 419
Einschränkungen 437
Metazeichen 440
CV 452
Kapitel 15. Arrays 454
Merkmale von 454 Arrays
Array als Objekt 456
Rückgabe eines Arrays 458
Mehrdimensionale Arrays 460
Arrays und Parametrierung 463
Testdaten erstellen 465
Erstellen von Arrays mit Generatoren 470
Arrays 474 Helper Toolkit
Fortsetzen 482
Kapitel 16. Java 483-E / A-System
Datei 484 Klasse
Ein- und Ausgang 489
Hinzufügen von Attributen und Schnittstellen 491
Die Leser- und Schreibklassen 494
RandomAccessFile: von selbst 497
Typische Verwendung von E / A-Streams 498
Dateireader und -schreiber 505
Standard-E / A 507
Neue E / A (nio) 510
Datenkomprimierung 531
Objekte serialisieren 536
Einstellungen 553
CV 555
Kapitel 17. Parallele Ausführung 557
Gewindeklasse 559
Künstler 561
Gemeinsame Nutzung von Ressourcen 578
Interaktion zwischen Threads 598
Verriegelung 602
Neue Bibliothekskomponenten 607
CountDownLatch 607
CyclicBarrier 609
PriorityBlockingQueue 614
Semaphoren 619
Modellierung 624
CV 629
Index 631
Einführung in Objekte
Wir zerlegen die Natur, wandeln sie in Konzepte um und schreiben ihnen auf vielfältige Weise Bedeutung zu, weil wir alle Parteien einer Vereinbarung sind, die in einer sprachgebundenen Gesellschaft gültig ist und in der Struktur der Sprache festgelegt ist ... Wir können nicht überhaupt kommunizieren, außer durch Zustimmung zu der durch diese Vereinbarung festgelegten Organisation und Datenklassifizierung.
Benjamin Lee Worf (1897-1941)
Wir verdanken die Computerrevolution der Maschine. Daher versuchen unsere Programmiersprachen, näher an dieser Maschine zu sein.
Gleichzeitig sind Computer weniger Mechanismen als vielmehr ein Mittel zur Verstärkung von Gedanken ("Fahrräder für den Geist", wie Steve Jobe gerne sagt) und ein weiteres Mittel zur Selbstdarstellung. Infolgedessen tendieren Programmierwerkzeuge weniger zu Maschinen als vielmehr zu unserem Verstand sowie zu anderen Ausdrucksformen menschlicher Bestrebungen wie Literatur, Malerei, Skulptur, Animation und Kino. Die objektorientierte Programmierung (OOP) ist Teil davon, den Computer zu einem Mittel zur Selbstdarstellung zu machen.
Dieses Kapitel führt Sie in die Grundlagen von OOP ein, einschließlich eines Überblicks über die grundlegenden Methoden der Programmentwicklung. Dies und das Buch im Allgemeinen implizieren, dass Sie Erfahrung in der Programmierung in einer prozeduralen Sprache haben, nicht unbedingt in C. Wenn Sie der Meinung sind, dass Sie vor dem Lesen dieses Buches nicht über ausreichende Kenntnisse in Programmierung und Syntax von C verfügen, verwenden Sie das Multimedia-Seminar Thinking in C. die von der Website heruntergeladen werden kann