Heim >Java >JavaErste Schritte >Einführung in die objektorientierten Funktionen von Java
Die drei wichtigsten objektorientierten Funktionen von Java:
Kapselung, Vererbung und Polymorphismus.
1. Kapselung
Versteckt die Klasseninformationen innerhalb der Klasse und ermöglicht keinen direkten Zugriff durch externe Programme. Stattdessen werden die verborgenen Informationen durch die von bereitgestellten Methoden implementiert die Klasse. Operationen und Zugriff.
Implementierungsschritte der Kapselung:
Sichtbarkeit von Attributen ändern: Auf privat setzen
Getter/Setter-Methoden erstellen: zum Lesen und Schreiben von Attributen
Attributkontrollanweisungen zu den Getter/Setter-Methoden hinzufügen: Beurteilen Sie die Rechtmäßigkeit des Attributwerts
(empfohlenes Lernen: Java-Video-Tutorial)
Verwendung privat, um die Sichtbarkeit von Attributen zu ändern, zum Beispiel:
//表示读取该方法中的screen public float getScreen{ return screen; } //有viod无返回值,变量名.属性=值,就不能直接调用可以通过变量名.getScreen()来实现 public viod setScreen(float newScreen){ screen = newscreen; }
Variablenname = Wert kann nicht direkt über den Variablennamen aufgerufen werden.
Funktion des Pakets:
1. Java-Dateien verwalten
2. Dateikonflikte mit demselben Namen lösen
Paket definieren : package
Paketname Hinweis: Er muss in der ersten Zeile des Java-Quellprogramms platziert werden. Paketnamen können durch „.“ getrennt werden. Beispiel: in com.imooc.MyClassJava, der Namenskonvention von Pakete werden ausschließlich in Kleinbuchstaben geschrieben.
Zugriffskontrollmodifikatoren in Java
öffentlich, Standard, geschützt, privat
öffentlich: öffentlich, für alle Klassen zugänglich
Standard: Standardmodifikator, Zugriff innerhalb desselben Pakets
geschützt: geschützter Typ.
privat: private Klasse, nur diese Klasse kann darauf zugreifen
final, schließlich finalisieren (erben)
final: Modifikator. Die durch diesen Modifikator geänderte Klasse kann nicht vererbt werden. Die durch diesen Modifikator geänderte Variable kann nur verwendet, überladen und nicht neu geschrieben werden abstrakte Klassen.
finally: Bereinigungsvorgang nach dem Abfangen einer Ausnahme
finalize: Eine Methode, hauptsächlich bevor der GC das Objekt löscht. Rufen Sie zuerst die finalize-Methode für das Objekt auf, um festzustellen, ob auf das Objekt verwiesen wird
Dieses Schlüsselwort in Java
//原来手动输入 public void setScreen( float newScreen){ screen = newScreen; } // 用eclips 自动生成的是 public void setScreen( float newScreen){ this.screen = screen; }
this. Attribut: Manipulieren Sie die Eigenschaften des aktuellen Objekts
this Methode: Rufen Sie die Methode des aktuellen Objekts auf
Ecilipse kann Setter- und Getter-Methoden direkt generieren und das Schlüsselwort this hinzufügen.
Dieses Schlüsselwort ruft Mitgliedsvariablen oder Mitgliedsmethoden auf. Dieses und Super-Schlüsselwörter können nicht in statischen Methoden verwendet werden. Gleichzeitig können Sie auch einen Verweis auf die Klasse zurückgeben und den Konstruktor
Statische innere Klassen in Java
Statische innere Klassen sind statisch modifizierte innere Klassen. Die Merkmale dieser inneren Klasse sind: 1 Greifen Sie auf externe Klassen zu, aber der Zugriff erfolgt über neue äußere Klassen (). 2. Wenn die statischen Mitglieder der äußeren Klasse denselben Namen haben wie die Mitglieder der inneren Klasse, können Sie über „Klassenname.statisches Mitglied“ auf die statischen Mitglieder der äußeren Klasse zugreifen Mitglieder der äußeren Klasse haben denselben Namen wie Mitglieder der inneren Klasse. Wenn sie nicht identisch sind, können Sie die statischen Mitglieder der externen Klasse direkt über den „Mitgliedsnamen“ aufrufen. 3. Wenn Sie ein Objekt einer statischen inneren Klasse erstellen, benötigen Sie kein Objekt einer äußeren Klasse. Sie können direkt ein Objekt der inneren Klasse erstellen = neue innere Klasse ();.2. Vererbung
Das Konzept der Vererbung: Es ist eine Beziehung zwischen Klassen. Vorteile der Vererbung: 1) Die Unterklasse verfügt über alle Eigenschaften und Methoden der übergeordneten Klasse (private Änderung ist ungültig) 2) Implementieren Sie die CodereproduktionGrammatikregeln: Die Unterklasse der Klasse erweitert die übergeordnete Klasse { }
Umschreiben von Methoden:
Die Unterklasse ist mit der Vererbung der übergeordneten Klasse nicht zufrieden und schreibt ihre neu Eigener Inhalt und nach dem Umschreiben wird zuerst die Unterklassenmethode aufgerufenGrammatikregeln:
Der Rückgabewert, der Typ, der Methodenname und die Parametertypnummer müssen gleich sein als Integrationsmethode der übergeordneten Klasse wird als Überschreiben bezeichnetErben Sie die Initialisierungssequenz:
Attributinitialisierung der übergeordneten Klasse>Konstruktionsmethode der übergeordneten Klasse>Initialisierung des Attributs der Unterklasse>Konstruktionsmethode der Unterklasse 0Super-Schlüsselwort:
wird innerhalb des Objekts verwendet und kann das übergeordnete Klassenobjekt darstellen. Zugriff auf die Attribute der übergeordneten Klasse: super.age;Zugriff auf die Methode der übergeordneten Klasse: super.eat();Anwendung von super :
Während der Konstruktionsmethode der Unterklasse muss die Konstruktionsmethode der übergeordneten Klasse aufgerufen werden. Wenn der Konstruktor der Unterklasse nicht explizit den Konstruktor der übergeordneten Klasse aufruft, ruft das System standardmäßig den Konstruktor ohne Argumente der übergeordneten Klasse auf. Wenn Sie den Konstruktor explizit aufrufen, muss er in der ersten Zeile des Konstruktors der Unterklasse stehen. Wenn der Konstruktor der Unterklasse den Konstruktor der übergeordneten Klasse nicht explizit aufruft und die übergeordnete Klasse keinen Konstruktor ohne Parameter hat, tritt ein Kompilierungsfehler auf.Objektklasse:
Eine Klasse ohne Identifikation entspricht der Erbung der ObjektklassetoString()-Methode:
Der Hash-Code (Objektadresszeichenfolge) des zurückgegebenen Objekts, wenn die toString()-Methode in der Object-Klasse definiert wirdSie können das Objekt ausdrücken, indem Sie das Attribut der toString()-Methode überschreibenequals() Methode:
Der Vergleich besteht darin, ob die Objektreferenzen auf dieselbe Speicheradresse verweisen. Hinweis: Die Methode equal() ist beim Vergleich zweier Objekte nicht anwendbar. Wenn ein neues Objekt erstellt wird, wird eine neue Speicheradresse im Speicher erstellt. Daher sind sie zum Vergleichen nicht gleich Damit die spezifischen Attributwerte der Objekte gleich sind, müssen Sie die Methode equal()
erneut schreiben und getClass() vergleichen, um das Klassenobjekt zurückzugeben:
getClass() gibt das Klassenobjekt zurück: die Codeinformationen, die die Klasse beschreiben, die Attribute der Klasse sind Welche, was ist der Typ, was ist der Variablenname, was ist der Methodenname, was ist mehr wichtig? Codeinformationen der Klasse.
Das Erstellen eines Objektnamens gibt ein Objekt der Klasse zurück:
Konzentrieren Sie sich auf die Attributwertinformationen des Objekts oder die Informationen der Objektdaten
3. Polymorphismus
Polymorphismus: bezieht sich auf die verschiedenen Formen von Objekten, hauptsächlich unterteilt in Referenzpolymorphismus und Methodenpolymorphismus.
Vererbung ist die Grundlage für Polymorphismus. Vergessen Sie nicht, dass zwischen untergeordneten und übergeordneten Klassen eine Vererbungsbeziehung bestehen muss.
Polymorphe Merkmale:
1. Zitat-Polymorphismus
Die Referenz der übergeordneten Klasse kann auf das Objekt dieser Klasse Animal obj1 = new Animal();
Die Referenz der übergeordneten Klasse kann auf das Objekt der Unterklasse Animal obj2 = verweisen new Dog();
Aber wir können die Referenz der Unterklasse nicht verwenden, um auf das übergeordnete Klassenobjekt Dog obj3 = new Animal();//Fehler
2 >
Definieren Sie eine eat()-Methode in der Klasse „Animal“ und geben Sie eine Anweisung aus (Tiere haben die Fähigkeit zu fressen). Schreiben Sie die eat()-Methode in der Unterklasse „Dog“ neu und geben Sie eine Anweisung aus (Hunde fressen Fleisch). Funktion der Testklasse, wenn obj1.eat( ), dann wird die Methode der übergeordneten Klasse aufgerufen. Wenn obj2 zum Aufrufen der eat()-Methode verwendet wird, wird die Methode der Unterklasse aufgerufen. Es gibt eine andere Situation, beispielsweise das Erstellen einer Unterklasse Cat, die die übergeordnete Klasse Animal erbt, aber Cat überschreibt die geerbte eat()-Methode nicht. Dann erstellen wir eine Unterklasse in der Hauptfunktion der Testklasse Object, Animal obj3 = new Cat(); und dann aufrufen obj3.eat(); Das Ergebnis ist, dass die Unterklasse die Methode der übergeordneten Klasse erbt (Ausgabeergebnis: Das Tier hat die Fähigkeit zu essen). Im letzten Sonderfall kann die polymorphe Funktion nicht verwendet werden. Wenn Sie der Unterklasse eine eindeutige Methode public void watchDoor() hinzufügen, enthält diese eine Ausgabeanweisung (der Hund hat die Fähigkeit, die Tür zu überwachen). ; Dann können wir in der Hauptfunktion der Testklasse (wir müssen zuerst das Objekt Animal obj2 = new Dog() definieren) nicht obj2.watchDoor() verwenden, das heißt, wir können die Methode der Unterklasse nicht über die Referenz aufrufen die übergeordnete Klasse. Empfohlene verwandte Artikel und Tutorials:Das obige ist der detaillierte Inhalt vonEinführung in die objektorientierten Funktionen von Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!