1. Das Konzept der Vererbung
1. Der Mechanismus, durch den eine übergeordnete Klasse eine Unterklasse ableitet, wird Vererbung genannt.
2. Vererbung ist ein leistungsstarkes Mittel zur Wiederverwendung von Programmcode. Wenn zwischen mehreren Klassen dieselben Eigenschaften und Methoden vorhanden sind, können übergeordnete Klassen von diesen Klassen abstrahiert werden.
3. Wir müssen diese Eigenschaften und Methoden nur in der übergeordneten Klasse definieren, und die Unterklasse muss diese Eigenschaften und Methoden nicht neu definieren und kann direkt von der übergeordneten Klasse erben.
4. Durch Vererbung verfügt die Unterklasse automatisch über die in der übergeordneten Klasse definierten Attribute und Methoden.
5. Wenn einige Mitglieder von zwei oder mehr Klassen gleich sind, können durch den Vererbungsmechanismus vorhandene Klassen zum Erstellen neuer Klassen verwendet werden.
6. Unterklassen haben nicht nur Mitglieder der übergeordneten Klasse, sondern können auch neue Mitglieder definieren.
7. Es kann die Wiederverwendbarkeit und Skalierbarkeit von Software verbessern.
2. Elternklasse und Unterklasse
1. Elternklasse: Basisklasse oder Superklasse
2. Unterklasse : abgeleitete Klasse oder abgeleitete Klasse
3. Implementierung der Vererbung
Verwenden Sie das Schlüsselwort „extends“.
4. Zugriffskontrolle
Die Java-Sprache legt Zugriffskontrollregeln fest, um die Verwendung von Klassenmitgliedern aus externen Klassen einzuschränken
|
Selbstzugriff | Zugriff innerhalb des Pakets | Zugriff auf Unterklassen außerhalb des Pakets | Zugriff außerhalb des Pakets | |||||||||||||||||||||||||
public | is | isis | ist | ||||||||||||||||||||||||||
geschützt | Ja | Ja | Ja | Nein | |||||||||||||||||||||||||
Standard | Ja | Ja | Nein | Nein | |||||||||||||||||||||||||
privat | Ja | Nein | Nein | Nein |
Hinweis: Mit private geänderte Eigenschaften und Methoden in der übergeordneten Klasse sind für die Unterklasse transparent und können nicht vererbt werden.
5. Konstruktormethoden in der Vererbung
1. Die Konstruktormethode der übergeordneten Klasse kann nicht von der Unterklasse geerbt werden
2. Eine Unterklasse muss zuerst den Konstruktor der übergeordneten Klasse aufrufen, bevor sie ihren eigenen Konstruktor ausführt. Es gibt zwei Arten von Aufrufen:
a. Verwenden Sie den Superschlüssel im ersten Satz des Konstruktors der Unterklasse um anzugeben, welcher Konstruktor der übergeordneten Klasse aufgerufen wird
Zum Beispiel: super()//Rufen Sie den Konstruktor der übergeordneten Klasse ohne Parameter auf
super(parameter list)//Rufen Sie den Konstruktor der übergeordneten Klasse mit auf Parameter Konstruktormethode
b. Impliziter Aufruf: Wenn kein expliziter Aufruf erfolgt, wird der parameterlose Konstruktor der übergeordneten Klasse automatisch aufgerufen, was dem expliziten Aufruf von super() entspricht, d Der Konstruktor der übergeordneten Klasse wird aufgerufen. Sie können Super ()
weglassen. Besondere Aufmerksamkeit:
1. Die Aufrufreihenfolge der von der Unterklasse konstruierten Methode besteht darin, zuerst die Strukturmethode der übergeordneten Klasse aufzurufen Der Konstruktor der Unterklasse heißt
2. Wenn in der übergeordneten Klasse ein Standardkonstruktor vorhanden ist, kann der Konstruktor der Unterklasse den expliziten Aufruf des Konstruktors der übergeordneten Klasse weglassen
3 Es gibt nur einen Konstruktor mit Parametern, die Unterklasse. Das Schlüsselwort super muss im Konstruktor verwendet werden, um den Konstruktor der übergeordneten Klasse explizit aufzurufen
6. Klassenhierarchie
1.Java Die Sprache unterstützt keine Mehrfachvererbung, dh eine Klasse kann nur eine Klasse direkt erben.
2. Eine Klasse kann mehrere indirekte übergeordnete Klassen haben.
3. Alle Java-Klassen erben direkt oder indirekt die Klasse java.lang.Object
4. Die Object-Klasse ist der Vorfahre aller Java-Klassen und alle Java-Klassen sind im Object definiert Klassenobjekte haben alle das gleiche Verhalten
7. Standardvererbung
1. Beim Definieren einer Klasse wird das Schlüsselwort „extends“ also nicht verwendet Diese Klasse erbt direkt von der Object-Klasse
Kapitel 8: JavaPolymorphismus
1 . Das Konzept des Polymorphismus
Offizielle Definition: Polymorphismus bedeutet, dass der Aufruf von Mitgliedsmethoden einer Klasse unterschiedliche Implementierungen bildet
Persönliches Verständnis: Elternklasse Der Verweis verweist auf die Unterklasse Objekt
Verbessern Sie effektiv die Skalierbarkeit des Programms
Der Polymorphismus wird in zwei Typen unterteilt: Basierend auf dem Schreiben
Dynamischer Polymorphismus wird auch als dynamische Bindung bezeichnet. Wenn wir von Polymorphismus sprechen, beziehen wir uns im Allgemeinen auf dynamischen Polymorphismus.
2. Methodenumschreibung
Wenn eine Methode in einer Unterklasse definiert ist und ihr Name, Rückgabewerttyp und Parameterliste genau mit einer Methode in der übergeordneten Klasse übereinstimmen, können wir sagen, dass die Methode der Unterklasse die Methode der übergeordneten Klasse überschreibt.
Besondere Aufmerksamkeit:
1. Das Überschreiben der Methode muss eine Vererbungsbeziehung als Voraussetzung haben.
2. Der Methodenname, der Rückgabewerttyp und die Parameterliste der Unterklasse müssen vorhanden sein das Gleiche wie Die Methoden der übergeordneten Klasse sind gleich
3. Die Methoden der Unterklasse können die Zugriffsrechte der Methode der übergeordneten Klasse nicht reduzieren
4. In derselben Klasse können Methoden nur überladen, nicht überschrieben werden
3. Polymorphe Anwendung
Wenn eine übergeordnete Klassenreferenz auf ein Unterklassenobjekt verweist und eine Methode aufgerufen wird Die Wiederverwendung der Referenz wird immer aufgerufen. Die Methode weist nach dem Schreiben
das Objekt der Unterklasse der Referenz der übergeordneten Klasse zu. Dieses Verhalten wird als „Upcasting“ bezeichnet, wodurch die Referenz der übergeordneten Klasse implizit konvertiert werden kann Klasse zurück zur untergeordneten Klasse. Zitat, dieses Verhalten wird als „Abwärtstransformation“ bezeichnet, die zwingend erforderlich sein muss, um
zu transformieren: Wenn die Zither der übergeordneten Klasse auf die verweist Unterklassenobjekt, der Aufruf der Methode ist eine dynamische Analyse. Das heißt, die dynamische Auswahl basierend auf dem tatsächlichen Typ des Objekts wird als dynamische Bindung bezeichnet
4. ObjectKlasse Die Object-Klasse ist die übergeordnete Klasse oder indirekte übergeordnete Klasse aller Java-Klassen Aufgrund der polymorphen Eigenschaften können wir die Referenz der Object-Klasse verwenden, um auf ein beliebiges Objekt zu verweisen
Hinweis: Wenn Sie den spezifischen Typ des von Object referenzierten Objekts bestimmen können, können Sie eine Abwärtstransformation (erzwungene Konvertierung) durchführen.
5. gleichMethode Der Zweck der Methode „equals“ besteht darin, zu erkennen, ob zwei Objekte gleich sind.
Wird von der Object-Klasse bereitgestellt. Die Implementierung der Methode „equals“ besteht darin, zu erkennen, ob sich die Speicheradressen zweier Objekte im selben Bereich befinden (ob (die Speicheradressen sind gleich)
Im Allgemeinen müssen wir die Methode „equals“ neu schreiben, um die Regeln für die Beurteilung, ob zwei Objekte gleich sind, neu zu definieren.
Persönliches Verständnis: Die Gleichheitsmethode besteht darin, die Spielregeln anzupassen und die Bedingungen für die Objektgleichheit entsprechend unseren Bedürfnissen zu formulieren
6. toString Methode Die toString-Methode gibt einen String zurück, der das Objekt beschreibt (dieser muss neu geschrieben werden, wenn das Objekt direkt verwendet wird). für Ausgabe) Methode)
Persönliches Verständnis: Vereinfachen Sie den Prozess der Ausgabe von Objektinformationen. Nach dem Umschreiben können Sie das Objekt direkt ausgeben
7. finalSchlüsselwort Das Schlüsselwort final kann zum Ändern von Klassen, Methoden und Variablen verwendet werden, final bedeutet unveränderlich
Hinweis: Mit final geänderte Konstanten müssen explizit initialisiert werden
Kapitel 9: Abstrakte Klassen und Schnittstellen
1 🎜>
Wenn wir das Vererbungsdiagramm der Klassen von unten nach oben betrachten, stellen wir fest, dass die Klassen allmählich allgemeiner und abstrakter werden. Aufgrund der generischen Natur von Klassenvariablen können wir keine sinnvollen Implementierungsprozesse für Methoden in Klassen erstellen. Manchmal benötigen wir eine übergeordnete Klasse, die nur eine allgemeine Form definiert, die von allen ihren Unterklassen gemeinsam genutzt werden kann, und die jede Unterklasse die Implementierungsdetails ergänzen lässt. Eine solche Klasse wird als abstrakte Klasse bezeichnet. Hinweis: Klassen, die abstrakte Methoden enthalten, müssen abstrakte Klassen sein. Abstrakte Klassen können Attribute und nicht abstrakte Methoden enthalten.2. Abstrakte Methode
Beim Definieren einer Java-Methode können Sie nur den Deklarationsteil der Methode definieren, ohne den Methodenkörper zu schreiben ( Das heißt, die Implementierungsdetails der Methode. Eine solche Methode wird als abstrakte Methode bezeichnet. Hinweis: Abstrakte Methoden müssen mit dem Schlüsselwort „class“ geändert werden.3. Besondere Aufmerksamkeit
èAbstrakte Klassen und abstrakte Methoden müssen mit dem Schlüsselwort abstract geändert werden èAbstrakte Methoden Es gibt Kein Methodenkörper und kein geschweiftes Klammerpaar. Nach der Parameterliste muss ein Semikolon stehen. è Wenn die Klasse eine abstrakte Methode enthält, muss es sich bei der Klasse um eine abstrakte Klasse handeln Im Gegenteil, in der abstrakten Klasse sind nicht unbedingt abstrakte Methoden enthalten. èAbstrakte Klassen können nicht instanziiert werden (d. h. Objekte abstrakter Klassen können nicht erstellt werden) èSie können statische Methoden in abstrakten Klassen deklarieren4 . Verwendung abstrakter Klassen
Da abstrakte Klassen keine Objekte erstellen können, können wir abstrakte Klassen nur durch Vererbung verwenden. (Unterstützt Polymorphismus) Hinweis: 1. Wenn die Unterklasse eine abstrakte Klasse erbt, muss die Unterklasse alle abstrakten Methoden in der übergeordneten Klasse überschreiben 2. Wenn eine abstrakte Klasse erbt eine andere abstrakte Klasse, die Unterklasse muss die abstrakte Methode in der übergeordneten Klasse nicht überschreiben5. Zusammenfassung der abstrakten Klassen
Abstrakte Klassen werden hauptsächlich von Unterklassen geerbt, und dann spielen ihre Unterklassen ihre Rolle. Die Rolle abstrakter Klassen spiegelt sich hauptsächlich in den folgenden zwei Aspekten wider: 1. Code-Wiederverwendung (Oberflächenphänomen)) 2. Planen Sie das Verhalten seiner Unterklassen (Schlüsselverständnis) Fassen Sie abstrakte Klassen in einem Satz zusammen: Abstrakte Klassen sind Abstraktionen von Klassen6. Schnittstellenkonzept
Mehrfachvererbung wird in Java nicht unterstützt, es wird jedoch eine leistungsstarke Schnittstellenunterstützung bereitgestellt. Schnittstelle: Nicht verwandt, aber mit demselben Verhalten. Die Methoden in der Klasse sind angegeben, und das gibt es Die Vererbungsbeziehung zwischen Klassen muss nicht berücksichtigt werden Eine Klasse kann nur eine übergeordnete Klasse direkt erben, aber mehrere Schnittstellen implementierenEine Schnittstelle ist eine Sammlung abstrakter Methoden und statischer Konstanten. Im Wesentlichen ist eine Schnittstelle eine spezielle abstrakte Klasse, die nur die Definition abstrakter Methoden und statischer Konstanten enthalten kann.
7. Achten Sie besonders auf
Da die in der Schnittstelle definierten Methoden abstrakte Methoden sein müssen, können Sie dies beim Definieren abstrakter Methoden in der Schnittstelle tun Die Schlüsselwörter public und abstract werden weggelassen
Da die in der Schnittstelle definierten Variablen statische Konstanten sein müssen, können Sie die Schlüsselwörter public, static und final weglassen, wenn Sie statische Konstanten in der Schnittstelle definieren
8. Verwendung von Schnittstellen
Ähnlich wie bei der Vererbung können Java-Klassen Schnittstellen implementieren, und Implementierungsklassen müssen alle abstrakten Methoden in der Schnittstelle überschreiben
Eine Implementierung Eine Klasse kann mehrere durch Kommas getrennte Schnittstellen implementieren.
Schnittstellen unterstützen auch Polymorphismus für die Programmierung: Schnittstellenreferenzen verweisen auf Implementierungsklassenobjekte
Schnittstellen können Vererbungsbeziehungen haben und unterstützen Mehrfachvererbung
9. Schnittstellenzusammenfassung
In einem Satz Zusammenfassung von Schnittstellen: Schnittstellen sind Abstraktionen von Verhaltensweisen (d. h. Methoden)
10. Vergleich von Schnittstellen und abstrakten Klassen
1. Ähnlichkeiten:
a. Schnittstelle ist eine spezielle abstrakte Klasse
b. Keine der beiden Klassen kann abstrakte Methoden enthalten
2. Unterschiede:
a. aber Schnittstellen können nicht
b. Wenn Sie einer abstrakten Klasse eine nicht abstrakte Methode hinzufügen, schadet dies der Unterklasse Impact nicht, aber bei Schnittstellen sollten sie sich nach der Erstellung nicht ändern
c. Eine Klasse kann nur eine abstrakte Klasse erben, aber eine Klasse kann mehrere Schnittstellen implementieren
11. Vordefinierte Schnittstelle Vergleichbar Es gibt eine Arrays-Klasse im java.util-Paket. Die Sortiermethode dieser Klasse kann ein Objektarray sortieren, es gibt jedoch eine Voraussetzung, dass die Objekte im Array das implementieren müssen Vergleichbare Schnittstelle
Kapitel 1: Ausnahmebehandlung
1. Das Konzept der Ausnahme Ausnahme bezieht sich auf ein Ereignis, das während der Ausführung eines Programms auftritt und die normale Ausführung von Programmanweisungen unterbrechen kann
In der Java-Sprache können Ausnahmen in zwei Kategorien unterteilt werden:
Fehler: bezieht sich auf Interne Fehler im JVM-System, Ressourcenerschöpfung und andere schwerwiegende Situationen
Ausnahme: aufgrund von Programmierfehlern oder versehentlichen allgemeinen Problemen, die durch externe Faktoren verursacht werden, z. B. Quadratwurzel negativer Zahlen, Nullzeigerzugriff, Versuch, Non zu lesen -vorhandene Dateien und Probleme mit der Unterbrechung der Netzwerkverbindung
Die Java-Sprache bietet einen vollständigen Satz abnormaler Verarbeitungsmechanismen.
2 🎜>Wenn während der Ausführung eines Java-Programms eine Ausnahme auftritt, erkennt und generiert das System automatisch ein entsprechendes Ausnahmeklassenobjekt und gibt es dann an das Laufzeitsystem weiter Das Laufzeitsystem sucht dann danach Wenn das Laufzeitsystem keinen Code findet, der die Ausnahme behandeln kann, wird das Laufzeitsystem entsprechend beendet. Programmierer haben keine Möglichkeit, Fehler zu behandeln . Im Allgemeinen können sie nur Ausnahmen behandeln
3. Ausnahmebehandlungseigenschaften
Ausnahmen klassifizieren und Java-Klassen verwenden stellen Ausnahmen dar, die skalierbar und wiederverwendbar sind Trennen Sie den Code des abnormalen Prozesses vom Code des normalen Prozesses. Verbessert die Lesbarkeit des Programms Sie können Ausnahmen abfangen und sofort behandeln. oder Sie können sie zur Verarbeitung auf die obere Ebene werfen, was flexibel ist
4.
AusnahmeKlasse Ausnahme ist in zwei Zweige unterteilt 1. Laufzeitausnahmen: z. B. Typkonvertierungsausnahmen, Array-Index-Ausnahmen außerhalb der Grenzen, Null Zeigerausnahmen usw. 2. Ausnahmen zur Kompilierungszeit: Ausnahmen bei der Ausführung von SQL-Anweisungen, Ausnahmen beim Lesen nicht vorhandener Dateien usw.
Gemeinsame Ausnahmetypen
异常类 说明 ArithmeticException 算术异常 ArrayIndexOutOfBoundsException 数组索引越界异常 NullPointerException 空指针异常 ClassNotFoundException 类找不到异常 IOException 输入输出异常 FileNotFoundException 文件找不到异常 SQLException SQL语句执行异常 6. Der Zweck der Ausnahmebehandlung è Rückkehr in einen sicheren und bekannten Zustand è Fähigkeit um dem Benutzer die Ausführung anderer Befehle zu ermöglichen è Wenn möglich, alle Arbeit speichern è Bei Bedarf beenden, um weiteren Schaden zu vermeiden è Ausnahmen können nur im verwendet werden In einer normalen Situation kann der normale Prozess der Programmsteuerung nicht durch Anomalien gesteuert werden. Um zu große TRY-Blockcodes zu vermeiden, ist es umso schwieriger, die Anomalien zu analysieren Ursache, desto schwieriger ist es, die abnormalen Gründe zu analysieren 7. Verwenden Sie die Ausnahmebehandlung Java bietet den Try-Catch-finally Anweisung zur Unterstützung der Ausnahmebehandlung try-Block: Code, der Ausnahmen generieren kann Catch-Block: Code behandeln, wenn eine Ausnahme auftritt Final-Block: Bedingungslose Ausführung von Code (normalerweise verwendet). um Ressourcen freizugeben) Hinweis: Wenn das Programm eine Ausnahme generiert und in den Catch-Anweisungsblock eintritt, kann der Programmierer normalerweise die Methode printStackTrace verwenden, um die Ausnahmeinformationen an die Konsole auszugeben 8. Throw-Anweisung-Ausnahme Das Deklarieren, dass eine Ausnahme ausgelöst wird, ist die zweite Möglichkeit der Java-Ausnahmebehandlung, wenn der Code in einer Methode möglicherweise eine Ausnahme generiert Eine Art Ausnahme während der Laufzeit ist in dieser Methode nicht erforderlich. Wenn Sie nicht sicher sind, wie mit solchen Ausnahmen umgegangen werden soll, können Sie das Schlüsselwort throws verwenden, um eine Ausnahme zu deklarieren. Zu diesem Zeitpunkt werden solche Ausnahmen in der Methode nicht behandelt , wird aber vom Aufrufer der Methode verarbeitet Kapitel 3: Sammlungsrahmen 1. Übersicht über Sammlungen Beim Erstellen eines Java-Arrays müssen Sie die Länge des Arrays angeben. Sobald das Array erstellt wurde, kann seine Länge nicht mehr geändert werden In vielen praktischen Situationen beträgt die Länge des Arrays nicht behoben, daher stellt die Java-Sprache einen erweiterten Container, das Sammlungsframework, zur Verfügung, um damit verbundene Probleme zu lösen Alle Java-Sammlungen befinden sich im java.util-Paket 2. Sammlungskonzept Eine Sammlung ist eine Kombination mehrerer Nutzungen, ein Ganzes bestehend aus „Daten“ mit ähnlichen oder identischen Eigenschaften Systematisch gesehen sind die Grundsammlungen in Java kann in die folgenden drei Typen unterteilt werden: Liste (Liste): Listensammlung unterscheidet die Reihenfolge von Elementen und ermöglicht doppelte Elemente Satz: Set set unterscheidet nicht die Reihenfolge der Elemente und lässt keine doppelten Elemente zu Mapping (Map): Die Map-Sammlung speichert Paare von „Schlüssel-Wert“-Informationen darf wiederholt werden. Jeder Schlüssel kann höchstens einen Wert abbilden 3. Elemente in der Sammlung Java-Sammlungen können nur Referenzdatentypdaten (d. h. Objekte) speichern. Tatsächlich speichert die Sammlung Referenzen auf Objekte, nicht die Objekte selbst. Die Elemente in der Sammlung entsprechen Referenztypvariablen 4. SammlungSchnittstelle Die java.util.Collection-Schnittstelle ist die übergeordnete Schnittstelle, die die Sammlungstypen Set und List beschreibt und universelle Methoden für Sammlungsoperationen definiert Allgemeine Methoden: boolean add(Object o) Iterator iterator() Object[] toArray() 5 > Listenschnittstelle ist eine Unterschnittstelle der Sammlungsschnittstelle Listenschnittstellenvorschriften Benutzer kann die Einfügeposition von Listenelementen präzise steuern und verfügt über zusätzliche Funktionen wie den Zugriff auf Elemente basierend auf dem Index. Eine neue entsprechende Methode wurde zur Schnittstelle void add(int index,Object element) hinzugefügt Objekt get(int index)Objektsatz(int index,Objektelement)int indexOf(Object o) public ArrayList zu steuern () public ArrayList(int Capacity) 7. Iterator Generika 1. Als Erweiterung des ursprünglichen Java-Typsystems kann die Verwendung von Generika die Typsicherheit, Wartbarkeit und Zuverlässigkeit von Java-Anwendungen verbessern 2. Kann das Problem der Datenmodellierung in Sammlungen lösen Verwendung: Legen Sie beim Erstellen eines Sammlungscontainers die Elementtypen fest, die gespeichert werden dürfen. Anschließend ist der Compiler dafür verantwortlich, die Typgültigkeitsprüfung der Elemente hinzuzufügen um die Styling-Verarbeitung beim Zugriff auf die Sammlungselemente durchzuführen Zusammenfassung: Datentypparametrisierung HashSetKlasse Die Klasse java.util.HashSet implementiert die java.util.Set-Schnittstelle und beschreibt die typische Set-Sammlungsstruktur Doppelte Elemente sind in HashSet nicht zulässig. Stellen Sie sicher, dass die Reihenfolge der Elemente im Satz HashSet darf Nullwertelemente enthalten, es darf jedoch nur ein Nullelement enthalten 10, TreeSet Klasse Die Klasse java.util.TreeSet implementiert auch die java.util.Set-Schnittstelle, die das Set beschreibt. Eine Variante der Sammlung, die Sortierfunktionen implementieren kann Wenn ein Objektelement zur TreeSet-Sammlung hinzugefügt wird, wird es automatisch entsprechend in die geordnete Objektsequenz eingefügt an bestimmte Vergleichsregeln, um sicherzustellen, dass die Reihenfolge der aus Sammlungselementen zusammengesetzten TreeSet-Objekte immer in „aufsteigender Reihenfolge“ angeordnet ist Die TreeSet-Klasse unterstützt zwei Sortiermethoden: natürliche Sortierung (Standard) und benutzerdefinierte Sortierung Bei Verwendung der natürlichen Sortierung müssen die Elemente in der Sammlung implementiert werden. Die Schnittstelle „Comparable“ ruft die Methode „compareTo“ des Objekts auf, um die Elemente zu sortieren. Es gibt einige Klassen in der JDK-Klassenbibliothek, die das implementieren Vergleichbare Schnittstelle, wie zum Beispiel: Integer, Double, String usw. Elf, Liste Set und SetDurchlauf von Sammlungen Listentyp-Sammlungen: Sie kann gewöhnliche For-Schleifen, Super-For-Schleifen und Iteratoren zum Durchlaufen verwenden Set-Typ-Sammlungen: Sie können Super-For-Schleifen und Iteratoren zum Durchlaufen verwenden Hinweis: Seit dem Set Die Typsammlung hat keinen Index, Sie können zum Durchlaufen keine gewöhnlichen For-Schleifen verwenden Map (Karte) Karte ist eine Art Schlüssel. Eine Sammlung von Objekten für die Zuordnung, von denen jedes Element zwei Objekte enthält (Schlüsselobjekt und Wertobjekt) Typische Map-Typ-Sammlungen umfassen HashMap und TreeMap Elementmethode hinzufügen: put( Object key,Object value) Holen Sie sich das Wertobjekt über das Schlüsselobjekt: get(Object key) Dreizehn, TreeMapKategorie Die Die TreeMap-Klasse implementiert die SortedMap-Schnittstelle, sodass die TreeMap nach Schlüsselobjekten sortiert werden kann. Voraussetzung ist jedoch, dass die gespeicherten Schlüsselobjekte die Comparable-Schnittstelle implementieren müssen 14, KarteSammlungsdurchquerung Da Schlüsselobjekte nicht wiederholt werden können, können es alle be Das Schlüsselobjekt wird als Set-Typ-Sammlung betrachtet Diese Set-Typ-Sammlung wird über die keySet()-Methode der Map-Sammlung abgerufen und durchläuft die Set-Sammlung, die aus allen Schlüsselobjekten besteht Während des Durchlaufprozesses kann jedes Mal, wenn ein Schlüsselobjekt abgerufen wird, ein Wertobjekt abgerufen werden Kapitel 4: IO 1. Übersicht Die meisten Programmierarbeiten umfassen die Datenübertragungssteuerung (Eingabe/Ausgabe) Java IO des IO wird durch den Datenfluss implementiert und der Datenfluss zwischen der Quelle IO-Klassenbibliothek befindet sich im abstrahierten Java.io-Paket 2. Klassifizierung von Streams Entsprechend den verschiedenen E/A-Verarbeitungsdaten wird es unterteilt in: Byte-Stream und Zeichen-Stream Entsprechend Für verschiedene Funktionen ist es unterteilt in: Datenfluss und Betriebsfluss Nach verschiedenen Implementierungsmethoden ist es unterteilt in: Bottom-Flow und High-Level-Flow 3 . Bytes Stream Bytes als minimale Übertragungseinheit verwenden Bestehend aus entsprechendem Datenstrom und Operationsstrom Abstrakte übergeordnete Klasse des Byte-Eingabestroms: InputStream Abstrakte übergeordnete Klasse des Byte-Ausgabestreams: OutputStream Datenstrom (zugrundeliegender Stream): Verantwortlich für den Aufbau eines Byte-Datenübertragungskanals und verantwortlich für die Übertragung von Byte-Daten. Es werden nur grundlegende Byte-Datenzugriffsmethoden bereitgestellt. InputStream und OutputStream sind die übergeordneten Klassen aller Byte-Stream-Klassen und können nicht instanziiert werden, um das Verhalten von Unterklassen zu standardisieren, z. B.: Der E/A-Stream muss nach dem Ende geschlossen werden 🎜> InputStream /OutputStream FileInputStream/FileOutputStream Operationsstream (High-Level-Stream): Keine Daten von IO-Geräten lesen oder schreiben, nur Daten von anderen Streams lesen oder schreiben, sofern normal Streams bieten keine Methoden zur Vereinfachung der Programmierung oder zur Verbesserung der E/A-Effizienz. Der Operationsstream nutzt das Entwurfsmuster „Decorator“, erbt die InputStream-Klasse selbst und fügt eine große Anzahl von Methoden zum „Dekorieren“ anderer Datenflussklassen hinzu, wodurch die Erstellung einer großen Anzahl neuer Funktionsklassen vermieden wird. BufferedInputStream/BufferedOutputStream 4. Zeichenstrom Abstrakte übergeordnete Klasse des Zeicheneingabestroms: Reader Abstrakte Elternklasse des Zeichenausgabestroms: Writer Datenstrom (zugrundeliegender Strom): Reader/Writer FileReader/FileWriter Betriebsablauf (High-Level-Flow): BufferedReader/BufferedWriter fünf, Byte-Zeichen-Bridge-Stream InputStreamReader: Verwenden Sie das Adapterentwurfsmuster, um den InputStream-Typ in den Reader-Typ zu konvertieren OutputStreamWriter: Verwenden Sie das Adapterentwurfsmuster zum Konvertieren vom Typ OutputStream zum Typ Writer 6. Grundkonzepte der Klasse File 🎜> Kapitel 6: Threads 1. Threads und Prozesse Java-Threads werden über die Klasse java.lang.Thread implementiert. Jeder Thread schließt seine Operation über die Run-Methode ab, die einem bestimmten Thread-Objekt entspricht. 3. Vergleich zweier Arten der Thread-Erstellung è Verwenden Sie die Runnable-Schnittstelle, um einen Thread zu erstellen Sie können die CPU trennen , Code und Daten. Bilden Sie ein klares Modell Die Implementierungsklasse kann auch einige nützliche Eigenschaften und Methoden von anderen Klassen erben Es ist hilfreich, die Konsistenz des Programmstils aufrechtzuerhalten è Den Thread zur Erstellung der Thread-Klasse direkt erben existiert nicht? 🎜> 2. Hintergrund-Thread/Daemon-Thread: Läuft im Hintergrund, normalerweise einige sekundäre Threads, die Dienste für andere Threads bereitstellen, wie zum Beispiel: Garbage-Collection-Thread in JVM 3. Benutzer-Thread ( Benutzer-Thread): Thread, der vom Benutzer oder vom System für den Benutzer erstellt wurde 5. Unterthread (Unterthread): Erstellt in einem laufenden Thread Neuer Thread Public Final Boolean Isdaemon () // Beurteilen, ob ein Thread der Hintergrundthread ist Public Final Boolean SetDaemon (Boolesches Flag) // Einen Thread als Hintergrundthread festlegen Hinweis: Seien Sie eine Anwendung als Anwendung, wenn alle Benutzerthreads nicht mehr ausgeführt werden, unabhängig davon, ob sie normal beendet werden oder vorzeitig mit einem Fehler beendet werden Beenden. Es ist verständlich, dass Hintergrundthreads nicht ernst genommen werden und Benutzerthreads bedienen 6. Thread-Lebenszyklus Neuer Status: Neu erstelltes Thread-Objekt Bereitschaftszustand: Geht nach Aufruf der Startmethode in den Bereitschaftszustand Laufender Zustand: gesteuert durch den Thread-Scheduler der JVM Blockierungszustand: Wenn ein Ereignis auftritt, das verursacht Tritt ein Thread zum Anhalten auf, passt ihn der Thread-Scheduler der JVM an den Blockierungsstatus an, z. B. in einem Thread. Führen Sie E/A-Vorgänge aus oder warten Sie auf Ereignisse wie Dateneingaben über die Tastatur Beendigungsstatus: Wenn alle Programme in Wenn die Ausführungsmethode ausgeführt wird, wechselt der Thread in den Beendigungszustand Besonderer Hinweis: Es ist verboten, einen beendeten Thread erneut zu starten, und ein Thread darf nicht mehrmals gestartet werden 7. Thread-Priorität Die Priorität eines Java-Threads wird durch eine Zahl im Bereich von 1 bis 10 dargestellt. Die Standardpriorität des Hauptthreads ist 5, und die Priorität des untergeordneten Threads ist dieselbe wie die Priorität von standardmäßig sein übergeordneter Thread Relevante Methoden, die von der Thread-Klasse bereitgestellt werden public final int getPriority()//Die Priorität des Threads abrufen public final void setPriority(int newPriority)//Legen Sie die Priorität des Threads fest Relevante statische Ganzzahlkonstante: Thread.MIN_PRIORITY=1 5 nicht abhängig von der Thread-Priorität Um die Reihenfolge der Thread-Ausführung zu steuern? Führen Sie den aktuell ausgeführten Thread aus, um in den Blockierungszustand zu gelangen, und aktivieren Sie ihn dann, um ihn nach der angegebenen „Verzögerungszeit“ in den Bereitschaftszustand zu versetzen. Verwandte Methoden, die von der Thread-Klasse bereitgestellt werden: öffentlicher statischer Leerschlaf (lange Millisekunden)öffentlicher statischer Leerschlaf (lange Millisekunden,int Nanos)Hinweis: 1 Sekunde = 1000 Millisekunden, 1 Millisekunde = 1 Million Nanosekunden 9. Thread-Konzession Lassen Sie den laufenden Thread aktiv die CPU-Verarbeitungsmöglichkeit aufgeben, die er derzeit erhält, aber anstatt den Thread zu blockieren , es wird umgeleitet. Verwandte Methoden, die von der Thread-Klasse bereitgestellt werden: public static void yield()10. Thread-Unterbrechung und -Wiederherstellung Anhalten: Den aktuell laufenden Thread anhalten, in einen blockierten Zustand versetzen und die Ausführung nicht automatisch fortsetzen Fortsetzen: Einen angehaltenen Thread fortsetzen Relevante Methoden, die von der Thread-Klasse bereitgestellt werden: public final void suspend()//Thread-Suspension public final void resume()//Thread-Resume 11. Thread-Synchronisation und Deadlock 1. Multithread-Datenfreigabe: Bei Multithread-Vorgängen können mehrere Threads gleichzeitig dieselben Daten verarbeiten . Bei einer Ressource handelt es sich um von mehreren Threads gemeinsam genutzte Daten. 2. Thread-Synchronisierung: Um das Problem der Datenfreigabe zu lösen, muss eine Synchronisierung verwendet werden. Die sogenannte Synchronisierung bedeutet, dass nur ein Thread von mehreren Threads den angegebenen Code im gleichen Zeitraum ausführen kann Threads müssen warten, bis dieser Thread abgeschlossen ist, bevor Sie mit der Ausführung fortfahren können. Es gibt zwei Möglichkeiten, Threads zu synchronisieren: (1) Synchronisationscodeblock synchronisiert (zu synchronisierendes Objekt) { // Operationen an synchronisiert werden } (2) Synchronisationsmethode öffentliche synchronisierte Void-Methode(){ Verschieben Sie Vorverarbeitung und Nachverarbeitung, die sich mit Threads nicht ändern, aus synchronisierten Blöcken. (2) Nicht blockieren. Wie Benutzereingaben und andere Vorgänge. (3) Rufen Sie keine Synchronisierungsmethoden für andere Objekte auf, während Sie die Sperre aufrechterhalten. 4. Thread-Deadlock: Zu viel Synchronisierung kann zu Deadlock-Vorgängen führen, die im Allgemeinen nur auftreten, wenn das Programm ausgeführt wird. Hinweis: Um Ressourcen in Multithreads zu teilen, ist eine Synchronisierung erforderlich, aber zu viel Synchronisierung kann zu einem Deadlock führen. 1. Was ist ein Computernetzwerk, damit mehrere Computer problemlos Informationen untereinander übertragen und Ressourcen wie Hardware, Software und Daten teilen können 2. Socket Programmierung Zwei Prozesse können Daten über eine bidirektionale Netzwerkkommunikationsverbindung austauschen . Der Endpunkt dieser Kommunikationsverbindung heißt „Socket“ (Socket) Socket wird normalerweise zum Implementieren der Client-Server-Verbindung verwendet Im java.net-Paket gibt es zwei Klassen, Socket und ServerSocket sind definiert, die zur Implementierung von bidirektional verbundenen Clients und Servern verwendet werden3 🎜>Grundlegende Schritte der Programmierung 1. Stellen Sie eine Netzwerkverbindung her 2. Öffnen Sie den mit dem Socket verbundenen Eingabe-/Ausgabestream 3. Daten über den geöffneten IO-Stream lesen/Schreibvorgang 4. Den geöffneten IO-Stream und das Socket-Objekt schließen Ergänzender Inhalt 1: Grafische Benutzeroberfläche Grafische Benutzeroberfläche (GUI) bietet eine benutzerfreundlichere und bequemere Bedienmethode für die visuelle Interaktion zwischen Benutzern und Programmen. Daher muss das Entwerfen einer grafischen Benutzeroberflächenanwendung über charakteristische Elemente wie Menüs, Symbolleisten, Steuerelemente usw. verfügen. usw. Java bietet eine schnelle Anwendungsentwicklungsmethode basierend auf GUI-Komponenten zum Entwerfen grafischer Benutzeroberflächenanwendungen und stellt eine große Anzahl verfügbarer Komponenten zur Unterstützung der ereignisgesteuerten Entwicklung bereit. 1. Swing und AWT AWT: Frühes Java enthielt eine Klassenbibliothek des Abstract Window Toolkit (AWT) für die grundlegende GUI-Programmierung, wie Button, Checkbox, List usw. Diese Klassen sind alle Unterklassen der Komponentenklasse AWT-Komponenten sind gelten als schwergewichtige Komponenten, da sie zur Unterstützung des Zeichnens und Anzeigens auf das lokale System angewiesen sind. Jede AWT-Komponente verfügt über eine zugehörige Komponente im lokalen Fenstersystem. Swing-Komponente Sie ist in reinem Java-Code geschrieben und wird als leichtgewichtige Komponente bezeichnet. Es ist nicht auf lokale Komponenten angewiesen, um seine Anzeige zu unterstützen, sondern wird vollständig von Java-Code gezeichnet und angezeigt, sodass es viel effizienter ist als die übliche AWT-Komponente. Swing: Die Swing-Bibliothek ist neuer Um doppelte Namen zu vermeiden, beginnen alle Swing-Komponentenklassen mit dem Großbuchstaben J. Die überwiegende Mehrheit der Swing-Komponenten sind Unterklassen der JComponent-Klasse 2. Formularcontainer JFrame (Form): Anwendungsprogramm der obersten Ebene Fenster JDialog (Dialog): Modale und modale Dialogfelder, die Benutzereingaben sammeln JPanel (Panel): Ein kleiner Container, der einen Teil der Schnittstelle aufnimmt Ergänzender Inhalt zwei: JDBC 1. Übersicht Die meisten Entwicklungssprachen bieten Datenbankzugriff JDBC ist eine Reihe von Schnittstellen und Klassen, die von Sun bereitgestellt werden, die im Paket java.sql gekapselt sind und für den Zugriff auf die Datenbank verwendet werden. Treiber und Klassen von Drittanbietern, die von Datenbankanbietern bereitgestellt werden , kann auf bestimmte Datenbanken zugreifen 2. JDBC JDBC (Java Database Connectivity) Java-Datenbankverbindung, unterstützt Java-Anwendungen bei der Verbindung mit der Datenbank Grundfunktionen: 1. Unterstützt grundlegende SQL-Anweisungen, implementiert Datenbankbetriebsfunktionen in Java-Programmen und vereinfacht den Betriebsprozess Einführen Sie die erforderlichen Pakete und Klassen Laden Sie die JDBC -Treiber 4. Erhalten Sie die gewünschten Ergebnisse und verarbeiten Sie die Ergebnisse Fragen Sie die Daten aus dem zurückgegebenen ResultSet-Objekt ab 5. Nachdem die Verarbeitung abgeschlossen ist, führen Sie die Abschlussarbeiten durch weit über das Fenster hinaus. Die Treiberverwaltung bietet Verwaltungsfunktionen für verschiedene Datenbanktreiber java.sql.Driver-Schnittstelle Datenbanktreiber, Softwaretreiber java.sql . Verbindungsschnittstelle Verbindungsobjekt, das mit einer bestimmten Datenbank verbunden ist java.sql.Statement-Schnittstelle Objekt, das die Datenbank betreibt java.sql.ResultSet Schnittstelle Eine Sammlung mehrerer Zeilen und Spalten 5. Treiber Treiber: Um den Betrieb des Computers zu ermöglichen System zum Betreiben eines bestimmten Schnittstellenprogramms, das von einer Art Hardware oder Software bereitgestellt wird. Datenbanktreiber: Eine Sammlung von Codes, die eine Anwendung zum Betreiben einer bestimmten Datenbank benötigt. Sie kann als Softwaremodul verstanden werden, das gegenseitig einführt Verständnis zwischen der Anwendung und der Datenbank Aufzählung: Die Aufzählung soll zulassen, dass der Wert eines bestimmten Variablentyps nur einer von mehreren festen Werten ist, andernfalls meldet der Compiler einen Fehler. Durch die Aufzählung kann der Compiler die vom Quellprogramm zugewiesenen illegalen Werte steuern. Dieses Ziel kann während der Entwicklungsphase nicht durch die Verwendung gewöhnlicher Variablen erreicht werden. Nach JDK1.5 wird das Schlüsselwort enum verwendet, um einen neuen Typ zu definieren, der als Aufzählungstyp bezeichnet wird. Die mit dem Schlüsselwort enum definierte Aufzählungsklasse entspricht tatsächlich der Definition einer Klasse, die lediglich die Enum-Klasse erbt.
Ausnahmeklasse
Beschreibung
ArithmeticException
Arithmetische Ausnahme
ArrayIndexOutOfBoundsException Array-Index außerhalb der Grenzen – Ausnahme
NullPointerException
NullPointerException
ClassNotFoundException
Ausnahme „Klasse nicht gefunden“
IOException td>
Eingabe- und Ausgabeausnahme
FileNotFoundException
Ausnahme „Datei nicht gefunden“
SQLException
SQL-Anweisungsausführungsausnahme
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Java-Vererbung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!