Maison  >  Article  >  Java  >  Qu'est-ce qu'une classe en Java ? Introduction connexe au cours

Qu'est-ce qu'une classe en Java ? Introduction connexe au cours

青灯夜游
青灯夜游original
2018-09-18 15:26:582289parcourir

Ce chapitre vous dira ce qu'est une classe en Java ? L'introduction pertinente du cours permet à chacun de connaître certaines connaissances sur les cours. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.

class Point{
    constructor(){

    }

    toString(){

    }
}

console.log(Object.keys(Point.prototype))
console.log(Object.getOwnPropertyNames(Point.prototype))

Ce qui précède est une classe

1 Le type de données de la classe est une fonction, et la classe elle-même pointe vers le constructeur

console.log(typeof Point)  // "function"
console.log(Point ===Point.prototype.constructor)  // true

2. . L'attribut prototype du constructeur Continue d'exister sur les "classes" ES6. En fait, toutes les méthodes d’une classe sont définies sur la propriété prototype de la classe. Le code commençant par

est équivalent à

class Point{}
Point.prototype = {
    constructor() {},
    toString() {},
}

Puisque les méthodes de la classe (sauf constructeur) sont toutes définies sur l'objet prototype, de nouvelles méthodes de la classe peuvent être ajoutées sur l'objet prototype. objet prototype. La méthode Object.assign peut ajouter plusieurs méthodes à une classe à la fois

Un point très important, Toutes les méthodes définies en interne dans une classe sont non énumérables.

console.log(Object.keys(Point.prototype))  // []
console.log(Object.getOwnPropertyNames(Point.prototype))  // ["constructor", "toString"]

Parmi eux, Object.keys() renvoie un tableau contenant toutes les propriétés énumérables de l'objet lui-même, à l'exclusion de Symbol, et Object.getOwnPropertyNames() renvoie un tableau contenant toutes ses propres propriétés. . N'inclut pas Symbol

3. Méthode constructeur

La méthode constructeur est la méthode par défaut de la classe. Cette méthode est automatiquement appelée lors de la génération d'une instance d'objet via la nouvelle commande. Une classe doit avoir une méthode constructeur Si elle n'est pas définie, une méthode constructeur vide sera ajoutée par défaut.

La méthode constructeur renvoie l'objet instance par défaut, ce qui est le but de ceci. Cependant, vous pouvez spécifier de renvoyer un autre objet

4. Héritage

class ColorPoint extends Point {
    constructor(x, y, color) {
        super(x, y) // 调用父类的 constructor(x, y)
        this.color = color
    }

    toString() {
        return this.color + '' + super.toString() // 调用父类的 toString()
    }
}

Vous sentez-vous familier lorsque vous voyez des extensions ? Les personnes qui ont utilisé React doivent savoir que dans la méthode d'écriture ES6 de React, nous Écrivez souvent comme ceci

class XXXXX extends Component{}

ColorPoint peut hériter de toutes les propriétés et méthodes de la classe Point via extends

Avez-vous remarqué que le mot-clé super apparaît à la fois dans les méthodes constructeur et toString, qui fait référence à l'instance parent ?

Les sous-classes doivent appeler la super méthode dans la méthode constructeur, sinon une erreur sera signalée lors de la création d'une nouvelle instance. Étant donné que la sous-classe n'a pas son propre objet this, mais hérite de l'objet this de la classe parent, si super n'est pas appelé, la sous-classe ne l'obtiendra pas.

En fait, la classe est une manière plus concise d'écrire le prototype d'objet

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn