Les programmes orientés objet sont composés d'objets, et chaque objet contient des parties fonctionnelles spécifiques exposées aux utilisateurs et des parties d'implémentation cachées. En programmation orientée objet (POO), vous n'avez pas à vous soucier de l'implémentation spécifique de l'objet. Dans la programmation structurée traditionnelle, l'algorithme vient en premier et la structure des données vient en second, c'est-à-dire qu'il faut d'abord déterminer comment utiliser les nombres, puis réfléchir à la manière d'organiser les données pour faciliter les opérations. La POO inverse cet ordre et place les données en premier, puis considère l'algorithme d'exploitation des données.
1. Classes
Les classes sont des modèles et des plans pour construire des objets. En termes simples, les cours sont équivalents aux dessins architecturaux et les objets sont équivalents aux bâtiments. Le processus de construction d'un objet à partir d'une classe est appelé création d'une instance de l'objet.
En Java, "classe" est définie par le mot-clé class, suivi du nom de la classe. Par exemple :
class Person{ // 类的主体内容 }
définit une classe Person.
1. Champs et méthodes
Lors de la définition d'une classe, vous pouvez définir deux types d'éléments dans la classe : les données membres et les fonctions membres. Le membre de données est un objet et peut être de n’importe quel type. S'il s'agit d'un handle pointant vers un objet, le handle doit être initialisé et connecté à un objet réel via le constructeur. S'il s'agit d'un type de données de base, il peut être initialisé directement là où la classe est définie.
Chaque objet conserve un espace de stockage pour ses propres données membres ; les données membres ne sont pas partagées entre les objets.
class Person{ String name; double salary; }
Créez un objet grâce au nouveau mot-clé. Par exemple :
Person p = new Person();
(1) La valeur par défaut du membre principal
Un certain type de données principal appartient à un membre de la classe, alors il n'est pas explicitement effectuée. L'initialisation garantit également qu'ils obtiennent une valeur par défaut.
Si une variable est utilisée comme variable membre d'une classe, alors le type principal sera définitivement initialisé. Portez une attention particulière à la valeur initialisée. Pour les variables locales, certaines valeurs aléatoires seront obtenues, telles que : int x ne sera pas automatiquement initialisé à 0.
(2) Méthode
Les composants de base d'une méthode incluent le nom, les arguments, le type de retour et le corps. La forme de base de la méthode est :
Nom de la méthode du type de retour (/*liste d'arguments*/) {/*corps de la méthode*/}
Le type de retour fait référence au retour après avoir appelé la méthode de type numérique. Le nom de la méthode est une identification et une référence à une méthode spécifique. La liste des arguments répertorie le type et le nom des informations que vous souhaitez transmettre à la méthode.
La forme d'appel d'une méthode en Java est le nom de l'objet Nom de la méthode
1. Utilisez des poignées pour faire fonctionner les objets
Bien que Java soit complètement orienté objet. Cependant, l’identifiant de l’opération pointe en réalité vers un « handle » d’un objet, également appelé « référence ». Les handles peuvent exister indépendamment. Cela ne signifie pas qu’avoir un handle doit avoir un objet correspondant. Par exemple, int i; définit une variable entière i, mais cela ne signifie pas qu'elle doit avoir une valeur. Par exemple, créez un handle de type String :
String s;
Ici, seul le handle est créé, et aucun objet n'est créé. Puisque s n’a aucun objet associé, une exception se produira si s est appelé. Par conséquent, une initialisation est requise lors de la création.
String s = "hello";
En Java, un objet est créé via le nouveau mot-clé, qui renverra une référence (c'est-à-dire un handle) à l'objet. Ainsi,
String s = new String("hello");
crée un objet String avec le contenu "hello" et donne le handle (référence) de l'objet à s pour le stockage.
2. Emplacement de stockage des données
1. La zone de sauvegarde la plus rapide, située à l'intérieur du processeur. Les registres sont de taille limitée, alloués par le compilateur.
2. Réside dans une zone RAM (mémoire vive) normale et peut être modifiée en taille via le "pointeur de pile". Déplacer le pointeur de pile vers le bas crée un nouvel espace mémoire ; le déplacer vers le haut libère de l'espace mémoire. Lors de la création d'un programme, le compilateur Java doit connaître exactement la « longueur » et « l'âge » de toutes les données contenues dans la pile, à partir desquelles le compilateur génère le code approprié pour déplacer le pointeur. Le handle de l'objet Java y est enregistré, mais l'objet Java n'est pas enregistré sur la pile.
3. Tas. Pool de mémoire à usage général contenant des objets Java. Le compilateur ne sait pas ou n'a pas besoin de savoir quelle quantité d'espace de stockage est allouée à partir du « tas de mémoire » ou du « tas » et combien de temps les données sont conservées.
4. Stockage statique. Statique signifie situé dans un emplacement fixe (en RAM). Pendant l'exécution du programme, les données stockées statiquement seront disponibles pour rappel à tout moment. Le mot-clé static indique qu'un élément spécifique d'un objet est statique. Java lui-même ne peut pas être placé dans un espace de stockage statique.
5. Stockage constant. Les valeurs constantes sont généralement placées dans le code du programme et ne changent jamais.
6. Stockage non RAM. Si les données sont complètement indépendantes d'un programme, elles peuvent exister lorsque le programme n'est pas en cours d'exécution et sont sous le contrôle du programme. Par exemple, des objets en streaming et des objets fixes.
2. Objets
Trois caractéristiques principales des objets :
• Comportement des objets - quelles opérations peuvent être appliquées à l'objet ou quelles méthodes peuvent être appliquées à l'objet ?
• L'état de l'objet - comment l'objet répond-il lorsque ces méthodes sont ajoutées ?
•Identification d'objets - Comment identifier différents objets ayant le même comportement et le même statut ?
Le comportement d'un objet est défini par des méthodes appelables. Chaque objet stocke des informations qui décrivent ses caractéristiques actuelles. Il s'agit de l'état de l'objet. L'état de l'objet ne change pas spontanément. Pour une classe bien conçue, ses objets ne peuvent être implémentés qu'en appelant des méthodes. Si l'état de l'objet peut être modifié sans appeler de méthodes, cela signifie que l'encapsulation est endommagée.
Encapsulation : combine les données et le comportement dans un package et masque la méthode d'implémentation des données aux utilisateurs de l'objet. La clé de l'encapsulation est que les méthodes d'une classe ne doivent pas accéder directement aux champs d'instance d'autres classes. Les programmes interagissent uniquement avec les données d'objet via le champ de méthode de l'objet.
Les données de l'objet sont appelées champ d'instance (champ d'instance) ou attribut. Le processus de manipulation des données s’appelle une méthode. Pour chaque objet spécifique, il existe un ensemble spécifique de valeurs de champ d'instance (valeurs de propriété), et l'ensemble de ces valeurs constitue l'état actuel de l'objet.
Relations entre classes
Relations communes entre classes :
• Dépendance (« use-a ») : Une méthode d'une classe manipule un objet d'une autre classe.
•Agrégation («has-a»): les objets d'une classe contiennent des objets d'une autre classe.
•Héritage (« est-un ») : utilisé pour exprimer la relation entre spécial et général. Si la classe A étend la classe B (A hérite de B), la classe A contient non seulement les méthodes de la classe B, mais étend également les méthodes.
Un objet ne contient pas réellement d'objet, mais fait uniquement référence à un objet.
En Java, la valeur de toute variable d'objet est une référence à un objet stocké à un autre endroit. La valeur de retour du nouvel opérateur est également une référence.
La compréhension complète ci-dessus des classes et des objets Java est tout le contenu partagé par l'éditeur. J'espère qu'il pourra vous donner une référence et j'espère que vous soutiendrez le site Web PHP chinois.
Pour plus d'articles liés à une compréhension globale des classes et des objets Java, veuillez faire attention au site Web PHP chinois !