Qu'est-ce que l'objet?
Objet objet, orienté ... orienté vers la programmation de programmation
Signifie orienté objet en utilisant des objets pour la programmation, abrégés comme OOP.
Comparaison entre SP et OOP
Trois principes principaux de l'encapsulation orientée objet et du polymorphisme de l'héritage
Objet
Les objets sont la partie fondamentale de la programmation orientée objet, ce sont des entités spécifiques réelles avec des états et des comportements clairement définis;
Les objets sont en fait des encapulations de "données" et "fonctions", dans lesquelles:
Les données représentent son propre statut, également appelé «attributs» ou «données des membres»;
Les fonctions représentent leurs propres fonctions, également appelées «méthodes» ou «fonctions membres».
gentil
Afin de mieux comprendre le monde, les gens divisent les choses (objets) dans la vie réelle dans les catégories;
Les choses dans la même catégorie ont toujours des points communs;
Les classes définissent les entités avec des caractéristiques et des comportements communs;
Une classe est une collection d'un groupe d'objets aux mêmes propriétés et comportements.
propriété
Les caractéristiques des choses sont représentées par des variables dans la classe;
Chaque propriété de chaque objet a sa valeur spécifique;
Le nom d'attribut est partagé par tous les objets de la classe;
Les fonctionnalités appartenant aux objets ou aux entités sont appelées attributs lorsqu'ils sont représentés dans une classe
méthode
Les comportements et les actions des choses sont représentés par des fonctions dans la classe;
Chaque objet a les mêmes actions et comportements;
Les actions effectuées par un objet sont représentées comme des méthodes de la classe.
La différence entre une classe et un objet
Les classes sont des «modèles» ou des «prototypes» utilisés pour décrire les entités;
Les objets sont des entités réelles et chaque objet est une instance concrète de la classe;
Les classes sont utilisées pour définir toutes les propriétés et méthodes d'un objet, et tous les objets de la même classe ont les mêmes caractéristiques et opérations;
Les classes peuvent être comprises comme des moules qui produisent des produits, et l'objet est des produits produits en fonction de ce moule.
Cours et structures
Emballer
Emballer quelque chose ensemble et le présenter sous une forme nouvelle et complète;
La façon de gérer les attributs, les méthodes ou les détails de mise en œuvre cachés est appelée encapsulation;
L'encapsulation expose ou cache de manière sélective certaines informations, ce qui résout les problèmes de sécurité des données.
hériter
L'héritage est une caractéristique de réutilisation des classes existantes pour générer de nouvelles classes;
En termes de laïque, c'est le processus de création d'une nouvelle classe (sous-classe ou classe dérivée) d'une classe existante (c'est-à-dire une classe parentale ou une classe de base);
Dans la vraie vie, l'héritage peut atteindre l'objectif de réutilisation des biens, tandis qu'à Java, l'héritage peut faire de la réutilisation du code.
Polymorphe
Le polymorphisme fait référence aux différentes implémentations de la même fonction dans différentes classes;
L'avantage du polymorphisme est qu'il rend les classes plus flexibles et plus faciles à développer.
Il y a aussi un "résumé" dont je dois parler ici
abstrait
Le processus de classification des mêmes objets ou similaires dans la même catégorie est l'abstraction, donc l'abstraction est une méthode d'analyse des problèmes;
Les principes de base de l'abstraction:
SEULEMENT SE CHERCHE DES PRIX PROBLÈMES, NON DES PROBLÈMES SECONDAIRES;
Seulement se soucier de la principale contradiction, et non de la contradiction secondaire;
Se soucient des mêmes choses, pas des différentes choses;
Se souciez-vous du problème et de ce qui peut être accompli, mais pas de la façon de l'accomplir.
Le processus abstrait est en fait l'idée principale de la programmation orientée objet.
Définition des cours à Java
Créer un objet en java
Syntaxe pour créer un objet
Semblable aux tableaux, les objets se réfèrent également aux types de données et ne peuvent allouer la mémoire qu'à partir du tas à l'aide du nouvel opérateur;
Syntaxe générale pour créer des objets:
Nom de classe Nom de référence = NOUVELLE NOM DE CLASSE ();
En utilisant des classes déjà définies, le processus de création d'objets dans cette classe est appelé "instance".
Opérateur membre "."
Uniquement en instanciant l'objet de la classe First CAN, les membres (propriétés et méthodes) sont accessibles dans la classe;
Utiliser les opérateurs membres (.) Pour accéder aux propriétés des membres ou aux méthodes des membres;
La syntaxe générale est:
Nom de l'objet. Nom du membre tel que:
std.age = 18; // attribue une valeur à l'attribut membre std.dining (); // Méthode d'appel des membres
Autorisations d'accès: public et privé
Les membres de Structures in C Language sont accessibles de n'importe où, ce qui laissera de grands dangers cachés pour la sécurité des données;
Afin d'éviter la corruption des données causée par l'accès directement aux membres de la classe depuis l'extérieur de la classe, Java établit des contraintes sur l'accès aux membres de la classe;
Les mots clés publics et privés sont des modificateurs d'accès pour indiquer si un membre peut être accessible depuis l'extérieur de la classe;
Les membres des modifications publiques sont accessibles n'importe où sans aucune restriction;
Les membres modifiés par privé ne peuvent être accessibles que par d'autres membres de cette classe et ne sont pas accessibles depuis l'extérieur de la classe.
Impossible d'accéder aux membres privés de l'extérieur de la classe;
Les membres privés d'autres classes sont également cachés à la classe actuelle.
Exemple d'autorisation d'accès
classe Student {Nom de chaîne privée; // Nom, privé, privé, privé, privé, privé, privé, privé, privé, privé, privé, privé, accès directement à l'extérieur de la classe; // 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, Le 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 Le 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 Le 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 La méthode est un membre interne de la classe, et vous pouvez accéder directement aux membres privés de cette classe}} Test de classe publique {public static void main (String [] args) {Student std = new Student (); // instancier un objet étudiant std.age = 18; // Essayez d'accéder aux membres privés de l'extérieur de la classe, une erreur sera signalée Std.Dining (); // accepte l'accès aux membres publics}}
Autorisations d'accès (suite)
L'ajout de modificateurs d'accès peut parfois provoquer des inconvénients à faire fonctionner les données, mais peut garantir la sécurité des données dans une large mesure;
Généralement, nous déclarons les attributs des membres en tant que méthodes privées et membres comme publiques, mais cela n'est pas absolu;
Parfois, certains membres de données privés peuvent devoir être opérés en dehors de la classe, donc une méthode publique peut être ajoutée, et cette méthode peut être utilisée pour faire fonctionner des données privées pour éviter la corruption des données causée par une mauvaise opération en dehors de la classe;
Étant donné que la méthode principale doit être appelée par une machine virtuelle en dehors de la classe, la méthode principale doit être déclarée publique.
Par exemple: modifiez la classe étudiante
classe Student {// Définissez le nom de chaîne privée de classe d'étudiants; // Nom, privé privé à l'âge; // Âge, poids de flotteur privé privé; // Weight, private public void setName (String Name) {// Méthode pour attribuer des valeurs aux noms, public this.name = name; } public void Setage (int a) {// Méthode pour attribuer des valeurs à l'âge, l'âge public = a; } public void setweight (float w) {// méthode pour attribuer des valeurs au poids, poids public = w; } public void display () {// La méthode pour imprimer toutes les informations est System.out.out.println (nom: "+ nom +", âge: "+ âge +", poids: "+ poids); } public void Dining () {...} // La méthode à manger, publique, code légèrement public void walk () {...} // la méthode à marcher, public, code légèrement} Public Class test {public static void main (String [] args) {étudiant std = new student (); // Instancier l'objet de classe étudiante std.setname ("Zhang San"); // attribue le nom std.setage (18); // attribue Std.setweight (55); // attribue Std.Dining () au poids; // appelle la méthode de manger std.display (); // imprime les informations}} Initialisation de l'objet
Dans l'exemple ci-dessus, vous ne pouvez attribuer des valeurs qu'aux membres de données un par un. Si vous souhaitez initialiser les attributs des membres tout en instanciant l'objet, vous utilisez la méthode de construction;
Le constructeur est une méthode de membre spécial, qui a le même nom que la classe et est automatiquement appelé par la machine virtuelle lorsque l'objet est instancié;
Veuillez noter: le constructeur n'a pas de type de valeur de retour et ne peut pas avoir de valeur de retour.
Exemple de méthode de construction:
/ * Définissez la classe ConstructorDEMO et testez la méthode du constructeur * / classe ConstructorDemo {/ * Constructeur, le nom de la méthode est exactement le même que le nom de classe, il n'est pas nécessaire de spécifier le type de valeur de retour, et il ne peut pas y avoir de valeur de retour * / public ConstructorDemo () {System.out.println ("Ceci est le constructeur"); }} / * Classe de test, utilisée pour tenir compte de la méthode principale, déclare généralement la classe contenant la méthode principale en tant que test public * / classe publique {/ * Méthode principale, entrée de programme * / public static void main (String [] args) {/ * instancier l'objet de la classe ConstructorDemo * / ConstructorDemo CD = new ConstructionDemo (); }} // Il sortira "Ceci est la méthode du constructeur" Méthode de construction
C'est précisément parce que la méthode du constructeur est automatiquement appelée tout en instanciant l'objet, de sorte que la méthode du constructeur est généralement utilisée pour allouer des ressources aux membres de données ou initialiser les membres de données;
Forme générale de la méthode de construction:
Nom de la classe d'autorisation d'accès (Liste des paramètres formels) {
Corps de méthode
}
Parce que le constructeur est appelé par la machine virtuelle, le constructeur doit généralement être défini comme public.
Par exemple: ajoutez un constructeur à la classe étudiante
classe Student {// Définissez le nom de chaîne privée de classe d'étudiants; // Nom, privé privé à l'âge; // Âge, poids de flotteur privé privé; // Poids, méthode de construction privée //, attribuez des valeurs aux membres de données en fonction des paramètres passés Student public (String n, int a, float w) {// attribuer des valeurs initiales à chaque nom de membre = n; âge = a; poids = w; } public void setName (String n) {...} // attribue des valeurs à nommer, public, code légèrement public void Setage (int a) {...} // attribue des valeurs à l'âge, public, code légèrement public Setweight (float w) {…} // méthodes pour attribuer le poids, public, public, code public Void Display () {…} // Méthodes pour imprimer toutes les informations, public, coder un peu public VOID Dining ()} // Méthodes pour manger, public, code légèrement public void walk () {…} // Méthodes pour marcher, public, coder légèrement public void walk () {…} // Méthodes pour marcher, public, code légèrement public test {public static void main (String [] args) {// Utiliser la méthode de construction pour spécifier la valeur initiale pour les membres de la données std = new student ("zhang san", 18, 55); std.display (); // imprime les informations}}
Méthode de construction (suite)
Chaque objet doit exécuter un constructeur lorsqu'il est généré et ne peut être exécuté qu'une seule fois;
Si l'appel de la méthode du constructeur échoue, l'objet ne peut pas être créé;
Le constructeur ne peut pas être appelé directement explicitement;
Sans un constructeur défini, la classe générera automatiquement un constructeur par défaut sans paramètres, qui ne fait rien;
Une fois le constructeur défini explicitement, le constructeur par défaut disparaît automatiquement. Par conséquent, deux méthodes de construction sont généralement définies: aucun paramètre et aucun paramètre.
Résumer