In diesem Kapitel erfahren Sie, was eine Klasse in Java ist. Die entsprechende Einführung in den Unterricht vermittelt jedem etwas Wissen über den Unterricht. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.
class Point{ constructor(){ } toString(){ } } console.log(Object.keys(Point.prototype)) console.log(Object.getOwnPropertyNames(Point.prototype))
Das Obige ist eine Klasse
1. Der Datentyp der Klasse ist eine Funktion, und die Klasse selbst zeigt auf den Konstruktor
console.log(typeof Point) // "function" console.log(Point ===Point.prototype.constructor) // true
Das Prototypattribut Der Konstruktor ist in der „Klasse“ von ES6 weiterhin vorhanden. Tatsächlich werden alle Methoden einer Klasse in der Prototypeigenschaft der Klasse definiert. Der Code, der mit
beginnt, entspricht
class Point{} Point.prototype = { constructor() {}, toString() {}, }
Da die Methoden der Klasse (außer dem Konstruktor) alle im Prototypobjekt definiert sind, können dem Prototypobjekt neue Methoden der Klasse hinzugefügt werden . Die Object.assign-Methode kann mehrere Methoden gleichzeitig zu einer Klasse hinzufügen
Ein sehr wichtiger Punkt: Alle in einer Klasse definierten Methoden sind nicht aufzählbar.
console.log(Object.keys(Point.prototype)) // [] console.log(Object.getOwnPropertyNames(Point.prototype)) // ["constructor", "toString"]
Unter anderem gibt Object.keys() ein Array zurück, das alle aufzählbaren Eigenschaften des Objekts selbst enthält, außer Symbol, und Object.getOwnPropertyNames() gibt ein Array zurück, das alle seine eigenen Eigenschaften enthält, außer Symbol
3. Konstruktormethode
Die Konstruktormethode ist die Standardmethode der Klasse. Diese Methode wird automatisch aufgerufen, wenn eine Objektinstanz über den neuen Befehl generiert wird. Eine Klasse muss über eine Konstruktormethode verfügen. Wenn diese nicht definiert ist, wird standardmäßig eine leere Konstruktormethode hinzugefügt.
Die Konstruktormethode gibt standardmäßig das Instanzobjekt zurück, und darum geht es hier. Sie können jedoch angeben, dass ein anderes Objekt zurückgegeben werden soll
4. Vererbung
class ColorPoint extends Point { constructor(x, y, color) { super(x, y) // 调用父类的 constructor(x, y) this.color = color } toString() { return this.color + '' + super.toString() // 调用父类的 toString() } }
Fühlen Sie sich vertraut, wenn Sie „extends“ sehen? Leute, die React verwendet haben, müssen wissen, dass wir beim ES6-Schreiben oft so schreiben von React
class XXXXX extends Component{}
ColorPoint kann alle Eigenschaften und Methoden der Point-Klasse durch Extends erben
Ist Ihnen aufgefallen, dass das Schlüsselwort super sowohl im Konstruktor als auch in den toString-Methoden vorkommt, das sich auf Instanzen von bezieht? Elternklasse.
Unterklassen müssen die Super-Methode in der Konstruktormethode aufrufen, andernfalls wird beim Erstellen einer neuen Instanz ein Fehler gemeldet. Da die Unterklasse kein eigenes This-Objekt hat, sondern das This-Objekt der übergeordneten Klasse erbt, erhält die Unterklasse dies nicht, wenn super nicht aufgerufen wird.
Tatsächlich ist Klasse eine prägnantere Art, den Objektprototyp zu schreiben
Das obige ist der detaillierte Inhalt vonWas ist eine Klasse in Java? Verwandte Einführung in den Unterricht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!