Qu'est-ce que Java orienté objet ?
Explication détaillée de l'objet -orienté Java
Préface : Je suis impliqué dans le développement de projets depuis longtemps, et récemment j'ai commencé à avoir l'idée de revenir en arrière et écrire sur les connaissances de base que j'ai acquises auparavant. Au début, je viens juste de commencer à apprendre la programmation, et j'ai trébuché et avancé à tâtons. Quand j'ai commencé à apprendre, je n'ai pas compris beaucoup de choses. Plus tard, après avoir pratiqué davantage, certaines choses sont progressivement devenues claires, après un certain temps. pratiquez, ce n'est qu'en revenant en arrière et en apprenant quelques choses de base que vous pourrez le comprendre plus en profondeur ; troisièmement, certaines choses sont basiques mais très importantes et valent la peine d'être faites.
1. Orienté objet
Orienté objet est une méthode de programmation émergente, ou un nouveau paradigme de programmation (paradigme), l'idée de base est d'utiliser des concepts de base tels que les objets, les classes, l'héritage, l'encapsulation et le polymorphisme pour concevoir des programmes. Construire des systèmes logiciels basés sur des choses objectivement existantes (c'est-à-dire des objets) dans le monde réel et utiliser autant que possible la pensée naturelle humaine dans la construction de systèmes.
2. Objet
Un objet est un objet utilisé pour décrire des choses objectives dans l'entité système est une unité de base du système. Un objet est constitué d'un ensemble de propriétés et d'un ensemble de services qui opèrent sur l'ensemble de propriétés.
L'instanciation d'une classe peut générer des objets. Le cycle de vie d'un objet comprend trois étapes : la génération, l'utilisation et l'élimination.
Lorsqu'il n'y a aucune référence à un objet, l'objet devient un objet inutile. Le garbage collector de Java analyse automatiquement la zone de mémoire dynamique des objets, collecte et libère les objets non référencés en tant que déchets. Lorsque le système manque de mémoire ou appelle System.gc() pour exiger un garbage collection, le thread de garbage collection s'exécute de manière synchrone avec le système.
3. Classe
Une classe est un groupe d'objets ayant les mêmes propriétés et méthodes Une collection qui fournit une description abstraite unifiée pour tous les objets appartenant à la classe, comprenant deux parties principales : les attributs et les méthodes. Dans les langages de programmation orientés objet, une classe est une unité de programme indépendante. Elle doit avoir un nom de classe et comprendre deux parties principales : les attributs et les méthodes.
L'implémentation de classe en Java comprend deux parties : la déclaration de classe et le corps de la classe.
Déclaration de classe
[public][abstract|final] class className [extends superclassName] [implements interfaceNameList]{……}
Parmi eux, les modificateurs public, abstract et final expliquer les attributs de la classe, className est le nom de la classe, superclassName est le nom de la classe parent de la classe et interfaceNameList est la liste des interfaces implémentées par la classe.
Corps de classe
class className{ [public | protected | private ] [static] [final] [transient] [volatile] type variableName;//成员变量 [public | protected | private ] [static] [final | abstract] [native] [synchronized] returnType methodName([paramList]) [throws exceptionList]{ statements }//成员方法 }
La signification du qualificatif de variable membre :
▶ static : variables statiques (variables de classe)
▶ final : constante ; transitoire : variable temporaire, utilisée pour l'archivage d'objets et la sérialisation d'objets
▶ volatile : Variables de contribution pour le partage par des threads concurrents
L'implémentation de la méthode comprend également deux parties : la déclaration de la méthode et le corps de la méthode.
Déclaration de méthode
La signification des qualificatifs dans la déclaration de méthode :
▶ static : méthode de classe, qui peut être appelée directement via le nom de la classe
▶ abstract : méthode abstraite, pas de corps de méthode
▶ final : les méthodes ne peuvent pas être remplacées
▶ natif : intégrer le code d'autres langages
▶ synchronisé : contrôler l'accès par plusieurs threads simultanés
La déclaration de méthode inclut le nom de la méthode, le type de retour et les paramètres externes. Le type des paramètres peut être un type de données simple ou un type de données composite (également appelé type de données de référence).
Pour les types de données simples, Java implémente le transfert de valeur. La méthode reçoit la valeur du paramètre, mais ne peut pas modifier la valeur de ces paramètres. Si vous souhaitez modifier la valeur d'un paramètre, utilisez un type de données référence, car le type de données référence transmet à la méthode l'adresse des données en mémoire, et l'opération sur les données dans la méthode peut modifier la valeur des données. .
Corps de la méthode
Le corps de la méthode est l'implémentation de la méthode, qui inclut la déclaration des variables locales et toutes les instructions légales Java. La portée des variables locales déclarées dans le corps de la méthode se trouve à l'intérieur de la méthode. Si la variable locale porte le même nom qu'une variable membre de la classe, la variable membre de la classe est masquée.
Afin de distinguer les paramètres des variables membres de la classe, nous devons utiliser this. ceci est utilisé dans une méthode pour faire référence à l'objet actuel, et sa valeur est l'objet qui a appelé la méthode. La valeur de retour doit être cohérente avec le type de retour, ou exactement la même, ou une sous-classe de celui-ci. Lorsque le type de retour est une interface, la valeur de retour doit implémenter l'interface.
Méthode constructeur
▶La méthode constructeur est une méthode spéciale. Chaque classe en Java possède une méthode constructeur qui initialise un objet de cette classe.
▶ Le constructeur a le même nom que le nom de la classe et ne renvoie aucun type de données.
▶ La surcharge est souvent utilisée pour les constructeurs.
▶ Le constructeur ne peut être appelé que par le nouvel opérateur
Fonctionnalités orientées objet de base
Encapsulation
L'encapsulation consiste à masquer autant que possible les détails internes de l'objet et forment une frontière avec l’extérieur. Seules des interfaces et des méthodes limitées sont réservées pour interagir avec le monde extérieur. Le principe de l'encapsulation est d'empêcher des parties autres que l'objet d'accéder et d'exploiter les propriétés internes de l'objet à volonté, empêchant ainsi le monde extérieur d'endommager les propriétés internes de l'objet.
Vous pouvez masquer les informations des membres d'une classe en définissant certaines autorisations d'accès sur les membres de la classe.
▶ privé : les membres d'une classe limités au mode privé ne sont accessibles que par la classe elle-même. Si le constructeur d'une classe est déclaré privé, les autres classes ne peuvent pas générer d'instance de la classe.
▶ par défaut : les membres d'une classe sans aucune restriction d'autorisation d'accès appartiennent à l'état d'accès par défaut (par défaut) et sont accessibles par la classe elle-même et les classes du même package.
▶ protected : les membres d'une classe limités à protected peuvent être protégés par la classe elle-même, ses sous-classes (y compris les sous-classes du même package et des packages différents) et la même accessible par toutes les autres classes du package.
▶ public : les membres d'une classe limités au public sont accessibles à toutes les classes.
Hérité
L'objet de la sous-classe a tous les attributs de la classe parent et les méthodes sont appelées héritage de la classe parent par la sous-classe.
▶ En Java, une classe parent peut avoir plusieurs sous-classes, mais une sous-classe ne peut hériter que d'une seule classe parent, appelée héritage unique.
▶ L'héritage permet la réutilisation du code.
▶ Toutes les classes en Java sont obtenues en héritant directement ou indirectement de la classe java.lang.Object.
▶ Les sous-classes ne peuvent pas hériter des variables membres et des méthodes avec des droits d'accès privés dans la classe parent.
▶ Les sous-classes peuvent remplacer les méthodes de la classe parent, c'est-à-dire nommer les variables membres avec le même nom que la classe parent.
En Java, l'accès aux membres de la classe parent se fait via super, et super est utilisé pour faire référence à la classe parent de l'objet actuel. Il existe trois situations dans lesquelles super est utilisé :
▶ Accédez aux variables membres cachées de la classe parent, telles que :
▶ Appelez les méthodes parent Overridden dans la classe, telles que : super.Method([paramlist]), super() appelle le constructeur de la classe parent▶ appelle le constructeur de la classe parent ; , tel que : super([paramlist]);
Polymorphisme Le polymorphisme d'un objet signifie qu'une fois que les attributs ou méthodes définis dans la classe parent sont hérités par la sous-classe, ils peuvent avoir différents types de données de propriétés ou présentent un comportement différent. Cela permet à la même propriété ou méthode d'avoir une sémantique différente dans la classe parent et ses différentes sous-classes. Par exemple : la méthode "Dessin" de "Figure géométrique", "Ellipse" et "Polygone" sont toutes deux des sous-classes de "Figure géométrique", et leurs fonctions de méthode "Dessin" sont différentes. Le polymorphisme de Java se reflète sous deux aspects : le polymorphisme statique obtenu par surcharge de méthode (polymorphisme au moment de la compilation) et le polymorphisme dynamique obtenu par remplacement de méthode (polymorphisme à l'exécution). ▶ Polymorphisme au moment de la compilation : Pendant la phase de compilation, quelle méthode surchargée est appelée, le compilateur déterminera statiquement la méthode correspondante à appeler en fonction des différents paramètres. ▶ Polymorphisme d'exécution : Puisque la sous-classe hérite de tous les attributs de la classe parent (sauf les attributs privés), l'objet de la sous-classe peut être utilisé comme objet de la classe parent. Partout où un objet de classe parent est utilisé dans le programme, un objet de sous-classe peut être utilisé à la place. Un objet peut appeler les méthodes d'une sous-classe en référençant une instance de la sous-classe. Surcharge ▶La surcharge de méthodes permet à la classe de gérer différents types de données de manière unifiée. ▶ Plusieurs méthodes peuvent être créées dans une classe, elles portent le même nom, mais ont des paramètres et des définitions différents. Lors de l’appel de méthodes, le nombre spécifique et le type de paramètres qui leur sont transmis déterminent la méthode à utiliser. ▶ Les types de valeurs de retour peuvent être identiques ou différents. Le type de retour ne peut pas être utilisé comme critère pour distinguer les fonctions surchargées. Recharge ▶ La sous-classe réécrit la méthode de la classe parent. Si une méthode d’une sous-classe a le même nom de méthode, le même type de retour et la même liste de paramètres que sa classe parent, nous disons que la méthode est prioritaire. ▶ Si vous avez besoin de la méthode originale dans la classe parent, vous pouvez utiliser le super mot-clé, qui fait référence à la classe parent de la classe actuelle. ▶ Les autorisations de modification d'accès des fonctions de sous-classe ne peuvent pas être inférieures à celles de la classe parent.
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!