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 Früchte \u003d Arrays.asList (neue Frucht (10), neue Frucht (20)); // a System.out.println ("Aufgabe a:"); für (Frucht f: Früchte) (f.printWeight ();) // b System.out.println ("Aufgabe b:"); Iterator it \u003d obst.iterator (); while (it.hasNext ()) (it.next (). printWeight ();)))

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 Frucht \u003d neue HashMap (); ruit.put ("Bob", neue Frucht (10)); ruit.put ("Mary", neue Frucht (20)); // Iteration mit foreach System.out.println ("With foreach"); for (String key :ruit.keySet ()) (obst.get (key) .printWeight ();) // mit einem Iterator iterieren System.out.println ("With iterator"); Iterator \u003e it \u003druit.entrySet (). iterator (); while (it.hasNext ()) (it.next (). getValue (). printWeight ();)))

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 (@Override public int compare (String s1, String s2) (if (s1.length ()< s2.length()) { return -1; } if(s1.length() > s2.length ()) (return 1;) return 0; )) // PriorityQueue.java import java.util.Comparator; import java.util.PriorityQueue; öffentliche Klasse PriorityQueueUse (public static void main (String args) (Komparator Komparator \u003d neuer StringComparator (); Prioritätswarteschlange queue \u003d new PriorityQueue (10, Komparator); queue.add ("abcde"); queue.add ("abc"); queue.add ("abcdefghi"); queue.add ("a"); // Elemente in der Warteschlange sind NICHT in aufsteigender Reihenfolge der Länge angeordnet. String System.out.println ("Vor dem Entfernen:"); System.out.println (Warteschlange); // Aber Elemente werden aus der Warteschlange entfernt In aufsteigender Reihenfolge der Länge String System.out.println (); System.out.println ("Siehe Entfernen der Reihenfolge:"); while (queue.size ()! \u003d 0) (System.out.println (queue.remove ());)))

Ü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 , wobei Ganzzahl die geplanten Kosten für jede der Kostenpositionen sind (wählen Sie die Beträge selbst aus).
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