Maison >Java >javaDidacticiel >Maîtriser la programmation orientée objet en Java : un guide complet ☕♨
La programmation orientée objet (POO) est un paradigme de programmation qui modélise des entités du monde réel sous forme d'objets. Ces objets ont des propriétés (attributs) et des comportements (méthodes). La POO est basée sur les concepts d'encapsulation, d'héritage, de polymorphisme et d'abstraction.
Java est un langage de programmation informatique concurrent, basé sur les classes et orienté objet. Les avantages de l'orienté objet
le développement de logiciels est présenté ci-dessous :
L'encapsulation en Java est un concept fondamental de programmation orientée objet qui implique le regroupement de données (attributs) et de méthodes (comportements) au sein d'un objet. Il permet de masquer les données et de contrôler l'accès, garantissant que les données sont protégées et accessibles uniquement via des méthodes définies.
class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } } public class Main { public static void main(String[] args) { Person p = new Person("Sam", 21); System.out.println("Person Name: "+ p.getName()); System.out.println("Person Name: "+ p.getAge()); /* * p.name = "Anderson"; -> We couldn't modify the varibale value directly. It's Error ❗. * p.age = 20; */ } }
Imaginez une boîte. À l’intérieur de la boîte se trouvent vos effets personnels. Vous pouvez voir la boîte et savoir ce qu'elle contient, mais vous ne pouvez pas toucher ou modifier directement les éléments sans ouvrir la boîte. Ceci est similaire à l'encapsulation en Java.
Le polymorphisme, en Java, est la capacité d'objets de différentes classes à répondre au même appel de méthode de différentes manières. Il s'agit d'un concept fondamental de la programmation orientée objet qui permet la flexibilité et la réutilisabilité du code. Il existe deux types de polymorphisme : le polymorphisme au moment de la compilation et le polymorphisme au moment de l'exécution.
Imaginez que vous avez une télécommande. Vous pouvez appuyer sur le bouton « play », et il jouera quelque chose. Mais ce qu'il lit dépend de l'appareil qu'il contrôle : un téléviseur, un lecteur DVD ou un lecteur de musique.
C'est comme le polymorphisme en Java. Le bouton "play" est la même méthode, mais le comportement (ce qu'il joue) est différent selon l'objet (TV, lecteur DVD, lecteur de musique).
Ainsi, le polymorphisme signifie qu'une même chose (une méthode) peut avoir des comportements différents selon l'objet qui l'appelle.
interface Playable { void play(); } class TV implements Playable { public void play() { System.out.println("Playing TV show"); } } class DVDPlayer implements Playable { public void play() { System.out.println("Playing DVD"); } } class MusicPlayer implements Playable { public void play() { System.out.println("Playing music"); } } public class PolymorphismExample { public static void main(String[] args) { Playable[] devices = {new TV(), new DVDPlayer(), new MusicPlayer()}; for (Playable device : devices) { device.play(); } } }
Concept d'héritage qui permet aux classes d'hériter des attributs, propriétés et méthodes d'une classe parent. Cela favorise la réutilisabilité du code, la modularité et la création de relations hiérarchiques entre les classes.
L'héritage en Java est comme un arbre généalogique. Une classe enfant peut hériter des traits d’une classe parent. Il existe plusieurs façons de procéder :
Java ne prend pas directement en charge l'héritage multiple, mais vous pouvez utiliser des interfaces pour obtenir un résultat similaire.
class Animal { void makeSound() { System.out.println("Generic animal sound"); } void makeSound(int numberOfTimes) { for (int i = 0; i < numberOfTimes; i++) { System.out.println("Generic animal sound"); } } } class Dog extends Animal { @Override void makeSound() { System.out.println("Woof!"); } @Override void makeSound(int numberOfTimes) { for (int i = 0; i < numberOfTimes; i++) { System.out.println("Woof!"); } } } class Cat extends Animal { @Override void makeSound() { System.out.println("Meow!"); } @Override void makeSound(int numberOfTimes) { for (int i = 0; i < numberOfTimes; i++) { System.out.println("Meow!"); } } } public class PolymorphismExample { public static void main(String[] args) { Animal[] animals = {new Dog(), new Cat()}; // Method overloading: animals[0].makeSound(); animals[1].makeSound(3); // Method overriding: for (Animal animal : animals) { animal.makeSound(); } } }
L'abstraction est le processus de séparation des idées d'instances spécifiques et ainsi de développement de classes en termes de leurs propres fonctionnalités, plutôt que de leurs détails d'implémentation. Java prend en charge la création et l'existence de classes abstraites qui exposent des interfaces, sans inclure l'implémentation réelle de toutes les méthodes. La technique d'abstraction vise à séparer les détails d'implémentation d'une classe de son comportement.
abstract class Shape { abstract double getArea(); } class Circle extends Shape { private double radius; public Circle(double radius) { this.radius = radius; } @Override public double getArea() { return Math.PI * radius * radius; } } class Rectangle extends Shape { private double length; private double width; public Rectangle(double length, double width) { this.length = length; this.width = width; } @Override public double getArea() { return length * width; } } public class ShapeExample { public static void main(String[] args) { Shape circle = new Circle(5.0); Shape rectangle = new Rectangle(4.0, 3.0); System.out.println("Circle area: " + circle.getArea()); System.out.println("Rectangle area: " + rectangle.getArea()); } }
Imaginez que vous ayez une télécommande pour une voiture, un vélo et un avion. Vous pouvez utiliser les mêmes boutons de la télécommande pour démarrer, arrêter et déplacer chaque véhicule, même s'ils sont très différents. C'est comme l'abstraction en programmation.
Abstraction
Encapsulation
Différences clés
Feature | Abstraction | Encapsulation |
---|---|---|
Focus | Essential features | Data protection |
Purpose | Simplification | Security, modularity |
Mechanism | Abstract classes, interfaces | Private fields, public methods |
Example | Vehicle interface | Person class with private fields and public methods |
En substance :
Pensez à la POO comme à la construction avec des briques LEGO. Chaque brique est un objet avec sa propre forme et ses propres propriétés. Vous pouvez combiner des briques pour créer des structures plus grandes et plus complexes. En comprenant ces concepts, vous pouvez créer un code plus organisé, flexible et efficace.
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!