Lassen Sie uns zunächst kurz über die Definition seiner drei Hauptmerkmale sprechen:
Kapselung: Versteckt die Eigenschaften und Implementierungsdetails des Objekts, legt die Schnittstelle nur in die äußere Welt aus und kontrolliert die Zugriffsebene der Lese- und Modifizierungseigenschaften im Programm. Kombinieren Sie die abstrahierten Daten und Verhaltensweisen (oder Funktionen) zu einem organischen Ganzen, dh organische Kombination von Daten mit dem Quellcode der Betriebsdaten, um eine "Klasse" zu bilden, in der Daten und Funktionen Mitglieder der Klasse sind. Der Zweck der Kapselung besteht darin, die Sicherheit zu verbessern und die Programmierung zu vereinfachen. Benutzer müssen die spezifischen Implementierungsdetails nicht verstehen, sondern die Klassenmitglieder einfach über eine externe Schnittstelle, eine bestimmte Zugriffsberechtigung, verwenden. Die grundlegenden Anforderungen an die Kapselung sind: Privatisieren Sie alle Attribute, geben Sie Getter- und Setter -Methoden für jedes Attribut an. Wenn es einen Konstruktor mit Parametern gibt, müssen Sie einen Konstruktor ohne Parameter schreiben. Während der Entwicklung müssen Sie häufig die bereits geschriebenen Kurse testen, sodass Sie manchmal die ToString -Methode umschreiben können, dies ist jedoch nicht erforderlich.
Erbschaft: Die Wiederverwendung von Code durch Erbschaft aktivieren. Alle Klassen in Java werden durch direkte oder indirekte Erben der Java.lang.Object -Klasse erhalten. Die ererbte Klasse wird als Unterklasse bezeichnet, und die ererbte Klasse wird als Elternklasse bezeichnet. Unterklassen können in der übergeordneten Klasse, deren Zugriffsgenehmigung privat ist, keine Mitgliedsvariablen und -methoden erben. Eine Unterklasse kann die Methoden der übergeordneten Klasse überschreiben und Mitgliedsvariablen mit demselben Namen wie der übergeordneten Klasse nennen. Java unterstützt jedoch nicht die Mehrfacherbe, dh die Fähigkeit einer Klasse, aus mehreren Superklassen abzuleiten. In der Entwicklung wird die Erbschaftsbeziehung minimiert, und dies wird durchgeführt, um den Kopplungsgrad des Programms zu verringern.
Polymorphismus: Der Polymorphismus ist in den Polymorphismus der Konstruktion Zeit und den Laufzeitpolymorphismus unterteilt. Beispielsweise wird Überladung auch als Design-Zeit-Polymorphismus bezeichnet. Für überschreibende oder Erbenmethoden entscheidet das Java-Laufzeitsystem, welche Methode auf der Art von Instanzen aufgerufen werden soll, die die Methode aufrufen, die als Laufzeitpolymorphismus bezeichnet wird. Kurz gesagt, die typischen Eigenschaften des objektorientierten Designs sind Vererbung, Kapselung und Polymorphismus, die auch der Schlüssel zur Popularität von objektorientiertem.
Paket
Der Standardwert der Zugriffsrechte für ein Klassenattribut in Java ist nicht privat. Wenn Sie die Methode dieses Attributs ausblenden möchten, können Sie einen privaten Modifikator hinzufügen, um nur den Zugriff auf die Klasse einzuschränken.
Für private Attribute in einer Klasse sollten ein Methodenpaar (getXxx, setxxx ()) zugreifen, um private Attribute zu erhalten, um den Betrieb und die Sicherheit privater Attribute sicherzustellen.
Einkapselung der Methode, die Offenlegung der Offenlegung, der verborgenen versteckten.
Java -Erbschaft
Die Vererbung besteht darin, mehrere Arten von Dingen mit gemeinsamen Eigenschaften in einer Klasse abstrakt zu machen.
Die Vererbung in Java muss das Extends -Keyword verwenden, und der Java -Mittelfinger ermöglicht ein einzelnes Vererbung, dh eine Klasse kann nur eine übergeordnete Klasse haben.
Der Konstruktor kann nicht vererbt werden .
Überschreiben in der Java -Methode
Wenn es in der Unterklasse Methoden gibt, die dieselbe Parameterliste wie der gleiche Name zurückgeben, auf den in der übergeordneten Klasse zugegriffen werden kann, werden die von der Elternklasse geerbten Methoden überschrieben.
Super () Schlüsselwort
Super () bedeutet, dass Super (), wenn der Konstruktor der Unterklasse den Konstruktor der übergeordneten Klasse nennt, nur im ersten Satz des Konstruktors sein kann.
Polymorphismus in Java
Es gibt zwei polymorphe Mechanismen: Kompilierungszeitpolymorphismus und Laufzeitpolymorphismus
1. Methodenüberladung: Überladung bezieht sich auf mehrere Methoden mit demselben Namen in derselben Klasse, diese Methoden haben jedoch unterschiedliche Parameter. Sie können so bestimmen, welche Methode zur Kompilierungszeit aufgerufen werden soll, bei der es sich um einen Kompilierungs-Zeitpolymorphismus handelt.
2. Vermittlung von Methoden: Unterklassen können Methoden der Elternklasse überschreiben, sodass dieselbe Methode unterschiedliche Manifestationen in der Elternklasse und in Unterklassen aufweist. In der Java -Sprache können Referenzvariablen der Basisklasse nicht nur auf das Instanzobjekt der Basisklasse, sondern auch auf das Instanzobjekt der Unterklasse hinweisen. In ähnlicher Weise können Referenzvariablen in der Schnittstelle auch auf das Instanzobjekt seiner Implementierungsklasse verweisen.
public class a {public String show (d obj) {return ("a und d");} public String show (a obj) {return ("a und a");}} öffentliche Klasse B erweitert eine {public String show (b obj) {return ("b und b");} öffentliche String -Show (a obj) {{{"b und a"); B {} public class Test {public static void main (String [] args) {a a1 = new a (); a2 = new b (); b b = new b (); System.out.println ("1--" + a1.show (b)); System.out.println ("2--" + a1.show (c)); a2.show (c)); }} 1-A und A2-A und A3-A und D4-B und A5-B und A6-A und D7-B und B8-B und B9-A und D. Wenn sich ein Superklasse -Objekt auf eine Variable bezieht, die sich auf ein Subklassenobjekt bezieht, bestimmt der Typ des referenzierten Objekts und nicht der Typ der referenzierten Variablen, deren Mitgliedsmethode aufgerufen wird. Die aufgerufene Methode muss jedoch in der Superklasse definiert werden, dh die von der Unterklasse abgedeckte Methode.
Verwenden wir ein Beispiel, um die Bedeutung dieses Satzes zu veranschaulichen: a2.show (b);
Hier ist A2 eine Referenzvariable des Typs A, die sich auf das B -Objekt bezieht. Nach dem obigen Satz bedeutet dies, dass es B gibt, um zu entscheiden, wessen Methoden zum Aufrufen von A2.Show (B) Show (B OBJ) in B aufrufen sollten, und das Ergebnis sollte "B und B" sein, aber warum unterscheidet es sich vom vorherigen Laufergebnis? Hier ignorieren wir den folgenden Satz "aber die hier genannte Methode muss in der Superklasse definiert werden", also existiert Show (B OBJ) in Klasse A? Es existiert überhaupt nicht! Dieser Satz gilt also hier nicht? Ist dieser Satz also falsch? NEIN! Tatsächlich impliziert dieser Satz auch diesen Satz: Er muss noch nach der Priorität des Aufrufs von Methoden in der Erbschaftskette bestätigt werden. Aus diesem Grund findet es Show (A OBJ) in Klasse A. Gleichzeitig wird die Methoden in der Klasse B aufgerufen, da die Methoden in Klasse A ansonsten aufgerufen werden.
Das obige ist das Verständnis der drei Hauptmerkmale der Java -Kapselung, der Vererbung und des Ihnen vorgestellten Polymorphismus. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!