Heim >Java >javaLernprogramm >Gedankennotizen zur JAVA-Programmierung: Klassen wiederverwenden
Die Wiederverwendung von Code ist eine der vielen überzeugenden Funktionen von Java. Um jedoch revolutionär zu sein, reicht es nicht aus, Code kopieren und ändern zu können.
Kompositionssyntax
Platzieren Sie einfach die Objektreferenz in der neuen Klasse
Initialisieren Sie die Referenz, in der Objekte definiert sind
, sie können immer initialisiert werden, bevor der Konstruktor aufgerufen wird
Im Konstruktor einer Klasse
kurz bevor die Objekte verwendet werden sollen, --- Lazy Initialisierung
Instanzinitialisierung
Vererbungssyntax
Sofern nicht ausdrücklich angegeben ist, dass Sie von anderen Klassen erben möchten, erben Sie implizit von Javas Standard-Stammklasse Object inherits.
Basisklasse initialisieren
Proxy
Viele Entwicklungstools unterstützen dies nicht.
Wählen Sie zwischen Sammlungen und Vererbung
Sowohl Komposition als auch Vererbung ermöglichen die Platzierung von Unterobjekten in einer neuen Klasse, die Vererbung erfolgt implizit
geschütztes Schlüsselwort
ist für den Klassenbenutzer privat, für jede abgeleitete Klasse, die diese Klasse oder alles andere in derselben Klasse erbt. Für Klassen im Paket ist es zugänglich
Aufwärtstransformation
Ihre exportierte Klasse wird in eine Akkumulation konvertiert und bewegt sich im Vererbungsdiagramm nach oben, wodurch sie zu Upcasting wird.
Upcasting ist eine Konvertierung von einem spezialisierteren Typ zu einem mehr Allgemeiner Typ, daher ist es immer sicher.
letztes Schlüsselwort
Kann nicht geändert werden
Endgültige Daten
Ein Feld, das sowohl statisch als auch endgültig ist, belegt nur einen Speicherplatz, der nicht geändert werden kann.
Für Basistypen sind die Endwerte konstant. Für Objektreferenzen. final macht die Referenz konstant.
Sobald eine Referenz so initialisiert ist, dass sie auf ein Objekt verweist, kann sie nicht mehr geändert werden, um auf ein anderes Objekt zu verweisen.
Java tut dies Bietet keine Möglichkeit, ein Objekt unveränderlich zu machen.
Diese Einschränkung gilt auch für Arrays, die ebenfalls Objekte sind.
Per Konvention werden Felder, die sowohl statisch als auch endgültig sind, in Großbuchstaben ausgedrückt , mit Unterstrichen, die jedes Wort trennen.
Leeres Finale
Das sogenannte leere Finale bedeutet, dass es als endgültiges Feld deklariert wird, für das jedoch kein Anfangswert angegeben ist.
In jedem Fall stellt der Compiler sicher, dass vor der Verwendung ein leeres Finale initialisiert werden muss.
Endgültige Parameter
Ermöglicht die Deklaration des Parameters als endgültig in der Parameterliste. Dies bedeutet, dass Sie das Objekt, auf das die Parameterreferenz in der Methode verweist, nicht ändern können.
Endgültige Methode
1 Jede geerbte Klasse kann ihre Bedeutung nicht ändern.
2. Effizienz: Wenn Sie eine Methode als endgültig angeben, stimmen Sie zu, dass der Compiler sie in Inline-Aufrufe umwandelt >
finale und private Schlüsselwörter
Alle privaten Methoden in einer Klasse werden implizit als final bezeichnet Da die private Methode nicht verwendet werden kann, kann sie nicht überschrieben werden . Sie können den letzten Modifikator zur privaten Methode hinzufügen, aber er fügt der Methode keine zusätzliche Bedeutung hinzu.„Override“ erscheint nur, wenn eine Methode Teil der Schnittstelle von ist eine Basisklasse.Ein Objekt muss in seinen Basistyp umgewandelt und dieselbe Methode aufgerufen werden.Die letzte Klasse
darf nicht vererbt werden und hat keine Unterklassen.Alle Methoden in allen finalen Klassen werden implizit als final bezeichnet und können nicht überschrieben werden.Initialisierung und Klassenladen
class Insect { private int i = 9 ; protected int j ; Insect(){ System.out.println("Insect constructor."); System.out.println("i= "+i+", j="+j); j = 39 ; } static int printInit(String s){ System.out.println(s); return 47 ; } } public class Beetle extends Insect { private int k = printInit("Beetle.k initialized . "); public Beetle(){ System.out.println("k = "+ k); System.out.println("j = " + j); } private static int x2 = printInit("static Beetle.x2 initialized ") ; public static void main(String[] args) { System.out.println("Beetle constructor."); Beetle b = new Beetle(); } } 输出: static Beetle.x2 initialized Beetle constructor. Insect constructor. i= 9, j=0 Beetle.k initialized . k = 47 j = 39
Das obige ist der detaillierte Inhalt vonGedankennotizen zur JAVA-Programmierung: Klassen wiederverwenden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!