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.
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.
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 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'objet JavaDé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');
InitialisationL'opérateur new alloue de la mémoire et appelle le constructeur.
Exemple : définir et utiliser une classe
Javapublic 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
Javapublic 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.
Javaclass 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.
Javaclass 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 .
Javaimport 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.
JavaTest test = new Test(); test = new Test();
En héritage, il est courant d'utiliser une référence parent pour les objets enfants.
JavaAnimal 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).
new Dog('Max' 'Labrador' 3 'Black').getName();
Courant dans la gestion des événements de l’interface utilisateur.
Créer un quiz