Avant de pouvoir continuer à progresser dans votre étude Java, vous avez besoin d’apprendre sur la classe. La classe est l’essence de Java. C’est la base sur laquelle toute la langue Java est construite car la classe définit la nature d’un objet. En tant que tel, la classe constitue la base de la programmation orientée objet en Java.
dans une classe Les données et le code agissant sur ces données sont définis. Le code est contenu dans les méthodes. Parce que les classes, les objets et les méthodes sont fondamentaux pour Java, nous les détaillons ici. Avoir une compréhension de base de ces fonctionnalités vous permettra d’écrire des programmes plus sophistiqués et de mieux comprendre certains éléments clés de Java décrits ci-dessous.
Table de contenu
>
1. Qu’est-ce qu’une classe
puisque toute l’activité du programme Java se produit au sein d’une classe, nous utilisons des cours depuis le début de ce cours. Bien sûr, il n’ya eu que des classes extrêmement simples et nous n’avons pas profité de la plupart de ses caractéristiques. Comme vous le voyez, les classes sont sensiblement plus puissantes que les limitées présentées jusqu’à présent.
Qu’est-ce qu’une classe? Une classe est un modèle qui définit la forme d’un objet. Spécifiez les données et le code qui fonctionneront dans ces données. Java utilise une spécification de classe pour créer des objets. Les objets sont des cas d’une classe. Par conséquent, une classe est essentiellement un ensemble de plans qui spécifient comment créer un objet.
Il est important d’être clair qu’une classe est une abstraction logique .
2. La forme générale d’une classe
Lorsque vous définissez une classe, déclarez votre forme exacte et votre nature. Pour ce faire, spécifiez les variables d’instance qu’il contient et les méthodes qui y fonctionnent. Bien que des classes très simples ne contiennent que des méthodes ou uniquement des variables d’instance, la plupart des classes du monde réel contiennent les deux.
une classe est créée lors de l’utilisation le mot-clé. Voici une forme générale simplifiée d’une définition de classe:
class NombreClase{ //Declarar variables de instancia tipo var1; tipo var2; //.. //Declarar métodos tipo metodo1(parámetros){ //Cuerpo del método } tipo metodo2(parámetros){ //Cuerpo del método }}
Bien qu’il n’y ait pas de règle syntaxique qui doit être remplie, une classe bien conçue devrait définir un et seulement une entité logique. Par exemple, une classe qui stocke des noms et des numéros de téléphone ne stockera normalement pas d’informations sur le marché boursier, les précipitations moyennes ou d’autres informations non liées. Le point ici est qu’un groupe de classe bien conçu des informations connectées logiquement. Mettre des informations non liées à la même classe structurera rapidement votre code!
jusqu’à ce point, les classes que nous utilisons n’ont qu’une seule méthode :. Bientôt, vous verrez comment créer d’autres. Cependant, observez que la forme générale d’une classe ne spécifie pas une méthode. Une méthode n’est requise que si cette classe est le point de départ de votre programme. De plus, certains types d’applications Java ne nécessitent pas de.
3. Définition d’une classe
pour illustrer des cours, nous développerons une classe qui encapsule des informations sur les véhicules, tels que automobiles, fourgonnettes et camions. Cette classe s’appelle un véhicule et stockera trois éléments d’informations sur un véhicule: le nombre de passagers que vous pouvez transporter, votre capacité de carburant et la quantité moyenne de carburant consommée (en milles par gallon).
Ensuite, trois variables d’instance sont définies: passagers, capacité et mpg. Notez que le véhicule ne contient aucune méthode. Par conséquent, il s’agit actuellement d’une sorte de données uniquement.
une définition de classe crée un nouveau type de données. Dans ce cas, le nouveau type de données est appelé véhicule. Vous utiliserez ce nom pour déclarer des objets de type de véhicule. N’oubliez pas qu’une déclaration de classe n’est qu’une description du type; Ne créez pas un véritable objet. Ainsi, le code précédent ne fait aucun objet de type de véhicule existant.
4. Comment un objet est-il créé?
Pour créer vraiment un objet de véhicule, utilisez une instruction comme ci-dessous:
Vehiculo minivan = new Vehiculo(); //Creando un objeto vehículo llamado minivan
Après exécution de cette instruction, le minivan fait référence à une instance du véhicule. Par conséquent, il aura une réalité « physique ». Pour le moment, ne vous inquiétez pas des détails de cette déclaration.
Chaque fois qu’une instance d’une classe est créée, un objet contenant sa propre copie de chaque variable d’instance définie par la classe est créée.
Ainsi, chaque objet du véhicule contiendra ses propres copies des passagers, des capacités et des mpg de variables d’instance. Pour accéder à ces variables, l’opérateur de points (.) Sera utilisé. L’opérateur de points relie le nom d’un objet avec le nom d’un membre. La forme générale de l’opérateur de points est présentée ici:
Objeto.Miembro
Par conséquent, l’objet est spécifié à gauche et le membre est mis à droite. Par exemple, pour affecter la variable de capacité au ménage à la valeur 16, utilisez les instructions suivantes:
minivan.capacidad = 16
en général, vous pouvez utiliser l’opérateur de points pour accéder au Variables d’instance et méthodes. Voici un programme complet qui utilise la classe
/* Un programa que usa la clase Vehiculo El archivo se llama DemoVehiculo.java */class Vehiculo { int pasajeros; //números de pasajeros int capacidad; //capacidad del combustible en galones int mpg; //combustible consumido en millas por galon}//Esta clase declara un objeto de tipo Vehiculoclass DemoVehiculo { public static void main(String args) { Vehiculo minivan = new Vehiculo(); int rango; //asignando valores a los campos de minivan minivan.pasajeros = 9; minivan.capacidad = 15; minivan.mpg = 20; //Calcular el rango asumiendo un tanque lleno rango = minivan.capacidad * minivan.mpg; System.out.println("La Minivan puede llevar " + minivan.pasajeros + " pasajeros con un rango de " + rango + " millas"); }}
sortie:
La Minivan puede llevar 9 pasajeros con un rango de 300 millas
doit Appelez le fichier contenant ce programme véhiculodemo.java car la méthode principale () est dans la classe nommée véhicule, non dans la classe appelée véhicule.
Lorsque vous compilez ce programme, vous constaterez que deux fichiers ont été créé. Classe, une pour véhicule et une autre pour le véhicule. Le compilateur Java met automatiquement chaque classe dans son propre fichier .class. Il n’est pas nécessaire que le véhicule et la classe de véhicules soient dans le même fichier source. Pourrait mettre chaque classe dans votre propre fichier appelé vehiculodemo.java et vehiculodemo.java, respectivement.
5. Création de plusieurs objets
Avant de continuer, examinons un principe fondamental: chacun L’objet a ses propres copies des variables d’instance définies par leur classe. Ainsi, le contenu des variables dans un objet peut différer de la teneur des variables dans une autre.
Il n’y a pas de connexion entre les deux objets, à l’exception du fait que les deux sont des objets du même type. Par exemple, si vous avez deux objets de véhicule, chacun a sa propre copie de passagers, de capacité et de mpg, et le contenu de ceux-ci peut différer entre les deux objets.
Le programme suivant démontre ce fait. (Notez que la classe est appelée maintenant la dose.)
//Este programa crea dos objetos Vehiculoclass Vehiculo { int pasajeros; //números de pasajeros int capacidad; //capacidad del combustible en galones int mpg; //combustible consumido en millas por galon}//Esta clase declara un objeto de tipo Vehiculoclass DosVehiculo { public static void main(String args) { Vehiculo minivan = new Vehiculo(); Vehiculo sportscar = new Vehiculo(); int rango1, rango2; //asignando valores a los campos de minivan minivan.pasajeros = 9; minivan.capacidad = 15; minivan.mpg = 20; //asignando valores a los campos de sportscar sportscar.pasajeros = 10; sportscar.capacidad = 25; sportscar.mpg = 30; //Calcular el rango asumiendo un tanque lleno rango1 = minivan.capacidad * minivan.mpg; rango2 = sportscar.capacidad * sportscar.mpg; System.out.println("La Minivan puede llevar " + minivan.pasajeros + " pasajeros con un rango de " + rango1 + " millas"); System.out.println("El Sportscar puede llevar " + sportscar.pasajeros + " pasajeros con un rango de " + rango2 + " millas"); }}
sortie:
6. Variables de référence et d’affectation
Dans une opération d’allocation, les variables de référence d’objet agissent différemment des variables d’un type primitif, comme int.
- quand un type primitif La variable est attribuée à une autre, la situation est simple. La variable de gauche reçoit une copie de la valeur de la variable à droite.
- En attribuant une variable de référence d’objet à une autre, la situation est un peu plus compliquée car elle change l’objet à laquelle elle fait référence à la variable de référence. L’effet de cette différence peut causer des résultats contre-intuitive.
Par exemple, notez le fragment suivant:
Vehiculo auto1 = new Vehiculo();Vehiculo auto2 = auto1;
Premier coup d’œil, il est facile de penser que Auto1 et Auto2 se réfèrent à différents objets, mais ce n’est pas le cas. Au lieu de cela, Auto1 et Auto2 se réfèrent au même objet. L’affectation Auto1 Auto2 fait simplement que Auto2 se réfère au même objet que AUTO1. Ainsi, l’objet peut être agi par l’un quelconque de l’Auto1 ou de l’Auto2. Par exemple, après allocation
auto1.mpg = 28;
Si vous exécutez, les deux instructions avec println ():
System.out.println(auto1.mpg);System.out.println(auto2.mpg);
Devinez quoi? La même valeur est affichée: 28.
Bien que Auto1 et Auto2 se réfèrent au même objet, ne sont pas liés d’une autre manière. Par exemple, une affectation post-auto2 modifie simplement l’objet à laquelle Auto2 fait référence. Par exemple:
Vehiculo auto1 = new Vehiculo();Vehiculo auto2 = auto1;Vehiculo auto3 = new Vehiculo();
auto2 = auto3; //Ahora auto2 y auto3 se refieren al mismo objeto
Une fois cette séquence exécutée, Auto2 fait référence au même objet que Auto3.
Si vous êtes resté un doute, veuillez commenter. A bientôt!