Was ist objektorientiert?
Objektobjekt, orholdted ... orientiert, Programmierungsprogrammierung
Objektorientierte Mittelwerte unter Verwendung von Objekten zur Programmierung, abgekürzt als OOP.
Vergleich zwischen SP und OOP
Drei Hauptprinzipien der objektorientierten Kapselung und des Vererbungspolymorphismus
Objekt
Objekte sind der zentrale Teil der objektorientierten Programmierung, sie sind tatsächliche spezifische Entitäten mit klar definierten Zuständen und Verhaltensweisen.
Objekte sind tatsächlich Einkapsel von "Daten" und "Funktionen", in denen:
Daten stellen ihren eigenen Status dar, auch als "Attribute" oder "Mitgliedsdaten" bezeichnet.
Funktionen repräsentieren ihre eigenen Funktionen, auch als "Methoden" oder "Mitgliederfunktionen" bezeichnet.
Art
Um die Welt besser zu verstehen, teilen die Menschen Dinge (Objekte) im wirklichen Leben in Kategorien;
Dinge in derselben Kategorie haben immer einige Gemeinsamkeiten;
Klassen definieren Entitäten mit gemeinsamen Merkmalen und Verhaltensweisen;
Eine Klasse ist eine Sammlung einer Gruppe von Objekten mit denselben Eigenschaften und Verhaltensweisen.
Eigentum
Die Eigenschaften von Dingen werden durch Variablen in der Klasse dargestellt;
Jede Eigenschaft jedes Objekts hat ihren spezifischen Wert;
Der Attributname wird von allen Objekten der Klasse geteilt;
Merkmale, die Objekten oder Entitäten gehören, werden als Attribute bezeichnet, wenn sie in einer Klasse dargestellt werden
Verfahren
Die Verhaltensweisen und Handlungen von Dingen werden durch Funktionen in der Klasse dargestellt;
Jedes Objekt hat die gleichen Aktionen und Verhaltensweisen;
Die von einem Objekt ausgeführten Aktionen werden in der Klasse als Methoden dargestellt.
Der Unterschied zwischen einer Klasse und einem Objekt
Klassen sind "Vorlagen" oder "Prototypen", die zur Beschreibung von Entitäten verwendet werden.
Objekte sind tatsächliche Entitäten, und jedes Objekt ist eine konkrete Instanz der Klasse;
Klassen werden verwendet, um alle Eigenschaften und Methoden eines Objekts zu definieren, und alle Objekte derselben Klasse haben die gleichen Eigenschaften und Operationen.
Klassen können als Formen verstanden werden, die Produkte produzieren, und das Objekt besteht aus Produkten, die auf dieser Form hergestellt werden.
Klassen und Strukturen
Paket
Packen Sie einige Dinge zusammen und präsentieren Sie sie in einer neuen vollständigen Form.
Die Möglichkeit, versteckte Attribute, Methoden oder Implementierungsdetails zu handhaben, wird als Kapselung bezeichnet.
In der Kapselung wird bestimmte Informationen selektiv ausgesetzt oder ausgeblendet, wodurch die Sicherheitsprobleme von Daten gelöst werden.
erben
Vererbung ist ein Merkmal der Wiederverwendung vorhandener Klassen, um neue Klassen zu generieren.
In Layman's Begriffen ist es der Prozess, eine neue Klasse (Unterklasse oder abgeleitete Klasse) aus einer vorhandenen Klasse (d. H. Eine übergeordnete Klasse oder Basisklasse) zu erstellen.
Im wirklichen Leben kann die Erbschaft den Zweck der Wiederverwendung von Eigentum erreichen, während in Java die Erbschaft die Code wiederverwendung machen kann.
Polymorph
Der Polymorphismus bezieht sich auf die verschiedenen Implementierungen derselben Funktion in verschiedenen Klassen.
Der Vorteil des Polymorphismus besteht darin, dass Klassen flexibler und leichter zu erweitern sind.
Es gibt auch eine "Zusammenfassung", über die ich hier sprechen muss
Abstrakt
Der Prozess der Klassifizierung der gleichen oder ähnlichen Objekte in dieselbe Kategorie ist die Abstraktion, daher ist Abstraktion eine Methode zur Analyse von Problemen.
Die Grundprinzipien der Abstraktion:
Kümmern sich nur um die Hauptprobleme, nicht um die sekundären Probleme;
Kümmert sich nur um den Hauptschutz, nicht um den sekundären Widerspruch;
Kümmere dich nur um die gleichen Dinge, nicht um die verschiedenen Dinge;
Kümmere dich nur darum, was das Problem ist und was erreicht werden kann, aber nicht, wie es erledigt werden kann.
Der abstrakte Prozess ist tatsächlich die Kernidee der objektorientierten Programmierung.
Klassen in Java definieren
Erstellen Sie ein Objekt in Java
Syntax zum Erstellen eines Objekts
Ähnlich wie bei Arrays beziehen sich auch Objekte auf Datentypen und können nur Speicher vom Haufen mit dem neuen Bediener zuweisen.
Allgemeine Syntax zum Erstellen von Objekten:
Klassenname Referenzname = neuer Klassenname ();
Mit bereits definierten Klassen wird der Prozess des Erstellens von Objekten in dieser Klasse als "Instanz" bezeichnet.
Mitgliedsbetreiber "."
Nur durch Instanziierung des Objekts der Klasse zuerst können Mitglieder (Eigenschaften und Methoden) in der Klasse zugegriffen werden.
Verwenden Sie Mitgliedsbetreiber (.), Um auf Mitgliedereigenschaften oder Mitgliedermethoden zuzugreifen.
Die allgemeine Syntax ist:
Objektname. Mitgliedsname wie:
std.age = 18; // dem Mitgliedsattribut std.dining () einen Wert zuweisen; // Member -Methode aufrufen
Zugriffsberechtigungen: öffentlich und privat
Mitglieder von Strukturen in der C -Sprache können von überall zugegriffen werden, auf die die Datensicherheit große Gefahren hinterlassen.
Um die Datenversorgung zu vermeiden, die durch direkten Zugriff auf Klassenmitglieder von außerhalb der Klasse verursacht wird, legt Java Einschränkungen für den Zugriff auf Klassenmitglieder fest.
Die öffentlichen und privaten Schlüsselwörter sind Zugriffsmodifikatoren, um anzugeben, ob auf ein Mitglied von außerhalb der Klasse zugegriffen werden kann.
Mitglieder öffentlicher Modifikationen können überall ohne Beschränkungen zugegriffen werden.
Von Private geänderte Mitglieder können nur von anderen Mitgliedern in dieser Klasse zugegriffen werden und können nicht von außerhalb der Klasse zugegriffen werden.
Von außerhalb der Klasse nicht zugreifen;
Private Mitglieder anderer Klassen sind ebenfalls vor der aktuellen Klasse versteckt.
Zugriff auf Genehmigungsbeispiel
Klassenstudent {privater Zeichenfolge Name; // Name, privat, privat, privat, privat, privat, privat, privat, privat, privat, privat, direkt von außerhalb der Klasse zugreifen; // Weight, private, directly access from outside the class// Method of eating, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, Öffentlichkeit, öffentlich, öffentlich, öffentlich, öffentlich, öffentlich, öffentlich, öffentlich, öffentlich, öffentlich, öffentlich, öffentlich, öffentlich, öffentlich, öffentlich, öffentlich, öffentlich, öffentlich, öffentlich, öffentlich, öffentlich, öffentlich, öffentlich, öffentliches Die Methode ist ein internes Mitglied der Klasse, und Sie können direkt auf die privaten Mitglieder dieser Klasse zugreifen}} public Class Test {public static void main (String [] args) {student std = new student (); // ein Studentenobjekt stt.age = 18; // Versuchen Sie, von außerhalb der Klasse auf private Mitglieder zuzugreifen, ein Fehler wird von STD.DINING () gemeldet. // Zugriff auf öffentliche Mitglieder akzeptieren}}}
Zugangsberechtigungen (Fortsetzung)
Das Hinzufügen von Zugriffsmodifikatoren kann manchmal Unannehmlichkeiten zum Betrieb von Daten verursachen, kann jedoch die Sicherheit von Daten in hohem Maße sicherstellen.
Im Allgemeinen erklären wir Mitgliederattribute als private und Mitgliedsmethoden als öffentlich, aber dies ist nicht absolut;
Manchmal müssen einige private Datenmitglieder möglicherweise außerhalb der Klasse betrieben werden, sodass eine öffentliche Methode hinzugefügt werden kann, und diese Methode kann verwendet werden, um private Daten zu bedienen, um die durch Fehloperation außerhalb der Klasse verursachte Datenverschästung zu vermeiden.
Da die Hauptmethode von einer virtuellen Maschine außerhalb der Klasse aufgerufen werden muss, muss die Hauptmethode öffentlich erklärt werden.
Zum Beispiel: Ändern Sie die Schülerklasse
Klassenstudent {// Definieren Sie den privaten Zeichenfolgennamen der Schülerklasse; // Name, privates privates Alter; // Alter, privates privates Schwimmergewicht; // Gewicht, private öffentliche void setName (String -Name) {// Methode zum Zuweisen von Werten zu Namen, public this.name = name; } public void setage (int a) {// } public void setWeight (float w) {// Methode zum Zuweisen von Werten zu Gewicht, öffentliches Gewicht = w; } public void display () {// Die Methode zum Ausdruck aller Informationen ist öffentlich im Besitz von System.out.println ("Name:" + Name + ", Alter:" + Alter + ", Gewicht:" + Gewicht); } public void dining () {...} // Die Methode zum Essen, öffentlich, codieren leicht public void Walk () {...} // Die Methode zum Gehen, öffentlich, codieren} public class -Test {public static void main (String [] args) {student std = new Student (); // das Objekt der Schülerklasse stit.SetName ("Zhang san") instanziieren; // den Namen std.setage (18) zuweisen; // STD.SetWeight (55) zuweisen; // STD.DINING () dem Gewicht zuweisen; // rufen Sie die Methode zum Essen von std.display () an; // Die Informationen ausdrucken}} Objektinitialisierung
Im obigen Beispiel können Sie den Datenmitgliedern nur nacheinander Werte zuweisen. Wenn Sie bei der Instanziierung des Objekts Mitgliedsattribute initialisieren möchten, verwenden Sie die Konstruktionsmethode.
Der Konstruktor ist eine spezielle Mitgliedsmethode, die den gleichen Namen wie die Klasse hat und von der virtuellen Maschine automatisch aufgerufen wird, wenn das Objekt instanziiert wird.
Bitte beachten Sie: Der Konstruktor hat keinen Rückgabewerttyp und kann keinen Rückgabewert haben.
Beispiel für die Konstruktionsmethode:
/ *Definieren Sie die KonstructOrdemo -Klasse und testen Sie die Konstruktormethode */ Klasse ConstructOrdemo {/ *Konstruktor, der Methodenname ist genau der gleiche wie der Klassenname. Es muss nicht den Rückgabetyp angeben, und es kann auch kein Rückgabewert */ public konstructemo () {system.println geben }} /*Testklasse, verwendet, um die Hauptmethode zu finden, deklariert im Allgemeinen die Klasse, die die Hauptmethode als publikanische Klasse enthält. }} // Es wird ausgegeben "Dies ist die Konstruktormethode". Konstruktionsmethode
Genau deshalb wird die Konstruktormethode beim Instanziieren des Objekts automatisch aufgerufen. Daher wird die Konstruktormethode im Allgemeinen verwendet, um Datenmitgliedern Ressourcen zuweisen oder Datenmitglieder initialisieren.
Allgemeine Form der Konstruktionsmethode:
Zugriff auf Berechtigungsklassenname (formale Parameterliste) {
Methodenkörper
}
Da der Konstruktor von der virtuellen Maschine aufgerufen wird, sollte der Konstruktor im Allgemeinen als öffentlich definiert werden.
Zum Beispiel: Hinzufügen eines Konstruktors zur Schülerklasse Hinzufügen
Klassenstudent {// Definieren Sie den privaten Zeichenfolgennamen der Schülerklasse; // Name, privates privates Alter; // Alter, privates privates Schwimmergewicht; // Gewicht, private // Konstruktionsmethode, den Datenmitgliedern Werte gemäß den übergebenen Parametern öffentlicher Schüler zuweisen (String N, int a, float w) {// jedem Datenmitgliedsname = n; Alter = a; Gewicht = w; } public void setName (String n) {...} // Werte dem Namen, öffentlich, Code leicht public void setage zuweisen (int a) {...} // Werte zu altern, öffentlich, Code leicht public void setgewicht zu essen, publikum, codieren leicht public void Walk () {…} // Methoden zum Gehen, öffentlich, Code leicht öffentlicher void Walk () {…} // Methoden zum Gehen, öffentlich, Code leicht öffentlicher Klassen -Test {public static void main (String [] args) {// Die Konstruktionsmethode zur Angabe des ersten Werts für Datenmitglieder student STD = New Student ("Zhang san", 18, 55, 55). std.display (); // die Informationen drucken}}
Konstruktionsmethode (Fortsetzung)
Jedes Objekt muss beim Erzeugen einen Konstruktor ausführen und kann nur einmal ausgeführt werden.
Wenn der Aufruf der Konstruktormethode fehlschlägt, kann das Objekt nicht erstellt werden.
Der Konstruktor kann nicht direkt explizit bezeichnet werden;
Ohne einen definierten Konstruktor generiert die Klasse automatisch einen Standardkonstruktor ohne Parameter, was nichts tut.
Sobald der Konstruktor explizit definiert ist, verschwindet der Standardkonstruktor automatisch. Daher werden im Allgemeinen zwei Konstruktionsmethoden definiert: keine Parameter und keine Parameter.
Zusammenfassen