logo

Classes et objets en Java

En Java, les classes et les objets constituent la base de la programmation orientée objet (POO). Ils aident à modéliser des entités du monde réel et à organiser le code de manière structurée.

  • Une classe est un modèle utilisé pour créer des objets partageant des propriétés et un comportement communs.
  • Un objet est une instance d'une classe. Il représente une entité spécifique créée à partir du modèle de classe.

Par exemple, Dog est une classe Tommy est un objet de cette classe.

Exemple_objet_classe' title=Classes et objets (ici Dog est la classe et Bobby est l'objet)

Classe Java

Une classe est un modèle qui définit les données et le comportement des objets. Il regroupe les domaines et méthodes connexes en une seule unité. La mémoire de ses membres est allouée uniquement lorsqu'un objet est créé.



  • Agit comme un modèle pour créer des objets avec une structure partagée.
  • N'occupe pas de mémoire pour les champs jusqu'à l'instanciation.
  • Peut contenir des constructeurs de méthodes de champs, des classes et des interfaces imbriquées.
Java
class Student {  int id;  String n;  public Student(int id String n) {  this.id = id;  this.n = n;  } } public class Main {  public static void main(String[] args) {  Student s1 = new Student(10 'Alice');  System.out.println(s1.id);  System.out.println(s1.n);  } } 

Sortir
10 Alice 

Objets Java

Un objet est une instance d'une classe créée pour accéder à ses données et opérations. Chaque objet possède son propre état.

  • État : Valeurs stockées dans les champs.
  • Comportement : Actions définies via des méthodes.
  • Identité : Distingue un objet d'un autre.

Les objets reflètent des éléments du monde réel tels qu'un produit client ou un cercle. Les objets non primitifs sont stockés sur le tas tandis que leurs références restent sur la pile.

Objets en Java' loading='lazy' title=Objets Java (exemple de chiens)

Instanciation d'objet

La création d'un objet est appelée instanciation. Toutes les instances d'une classe partagent une structure et un comportement tout en stockant différentes valeurs d'état.

Déclaration d'objets en Java' loading='lazy' title=Déclaration d'objet Java

Déclaration:

Tuf pour chien ;

Cela déclare uniquement une référence. L'objet n'est pas créé et la référence est nulle.

Initialisation :

tuffy = nouveau Chien('Tuffy' 'Papillon' 5 'Blanc');

Classes et objets en Java 3-768' loading='lazy' title=Initialisation

L'opérateur new alloue de la mémoire et appelle le constructeur.

Exemple : définir et utiliser une classe

Java
public class Dog {  String name;  String breed;  int age;  String color;  public Dog(String name String breed int age String color) {  this.name = name;  this.breed = breed;  this.age = age;  this.color = color;  }  public String getName() { return name; }  public String getBreed() { return breed; }  public int getAge() { return age; }  public String getColor() { return color; }  @Override  public String toString() {  return 'Name is: ' + name  + 'nBreed age and color are: '  + breed + ' ' + age + ' ' + color;  }  public static void main(String[] args) {  Dog tuffy = new Dog('tuffy' 'papillon' 5 'white');  System.out.println(tuffy);  } } 

Sortir
Name is: tuffy Breed age and color are: papillon 5 white 

Note: Chaque classe possède au moins un constructeur. Si aucun n'est défini, Java fournit un constructeur par défaut sans argument qui appelle le constructeur parent.

Initialiser l'objet à l'aide de la méthode/fonction

Java
public class Geeks {  static String name;  static float price;  static void set(String n float p) {  name = n;  price = p;  }  static void get() {  System.out.println('Software name is: ' + name);  System.out.println('Software price is: ' + price);  }  public static void main(String[] args) {  Geeks.set('Visual Studio' 0.0f);  Geeks.get();  } } 

Sortir
Software name is: Visual Studio Software price is: 0.0 

Façons de créer un objet en Java

Java prend en charge quatre approches standard.

1. Utilisation d'un nouveau mot-clé

Manière la plus directe de créer un objet.

Java
// creating object of class Test  Test t = new Test(); 

2. Utiliser la réflexion

Utilisé pour le chargement dynamique de classes comme on le voit dans des frameworks comme Spring.

Java
class Student {  public Student() {} } public class Main {  public static void main(String[] args) {  try {  Class c = Class.forName('Student');  Student s = (Student) c.getDeclaredConstructor().newInstance();  System.out.println(s);  } catch (Exception e) {  e.printStackTrace();  }  } } 

Sortir
Student@1dbd16a6 

3. Utilisation de la méthode clone()

clone() crée une copie d'un objet existant. La classe doit implémenter Cloneable.

Java
class Geeks implements Cloneable {  String name = 'GeeksForGeeks';  @Override  protected Object clone() throws CloneNotSupportedException {  return super.clone();  }  public static void main(String[] args) {  try {  Geeks g1 = new Geeks();  Geeks g2 = (Geeks) g1.clone();  System.out.println(g2.name);  } catch (Exception e) {  e.printStackTrace();  }  } } 

Sortir
GeeksForGeeks 

4. Utilisation de la désérialisation

La désérialisation est une technique de lecture d'un objet à partir de l'état enregistré dans un fichier. L'objet est recréé à partir d'un flux d'octets stocké.

Se référer à Sérialisation/Désérialisation en Java .

Java
import java.io.*; class Student implements Serializable {  private String name;  public Student(String name) { this.name = name; }  public String toString() { return 'Student: ' + name; } } public class Main {  public static void main(String[] args) {  try (ObjectOutputStream out =  new ObjectOutputStream(new FileOutputStream('student.ser'))) {  out.writeObject(new Student('Alice'));  } catch (IOException e) { e.printStackTrace(); }  try (ObjectInputStream in =  new ObjectInputStream(new FileInputStream('student.ser'))) {  Student s = (Student) in.readObject();  System.out.println(s);  } catch (Exception e) { e.printStackTrace(); }  } } 

Sortir
Student: Alice 

Une seule référence peut pointer vers différents objets à différents moments.

Java
Test test = new Test(); test = new Test(); 

En héritage, il est courant d'utiliser une référence parent pour les objets enfants.

Java
Animal obj = new Dog(); obj = new Cat(); 

Les objets non référencés deviennent éligibles pour le garbage collection.

Objets anonymes

Les objets anonymes sont créés sans référence et utilisés immédiatement pour des opérations ponctuelles.

  • Aucune variable de référence : Impossible de réutiliser l'objet.
  • Créé et utilisé, il économise instantanément de la mémoire pour les tâches de courte durée.
  • Courant dans la gestion des événements (par exemple, clics sur des boutons).
Java
new Dog('Max' 'Labrador' 3 'Black').getName(); 

Courant dans la gestion des événements de l’interface utilisateur.

Créer un quiz