Skip to main content

Java

Encapsulation

Définition :

Principe qui consiste à protéger les données internes d'un classe en les rendant accessibles uniquement via des méthodes publiques (gettes/setters).

Code :
public class User {
    private String name; // caché
    private int age;

    public String getName() { return name; }       // accès contrôlé
    public void setName(String name) { this.name = name; }

    public int getAge() { return age; }
    public void setAge(int age) {
        if (age >= 0) this.age = age; // validation ici
    }
}

Polymorphism

Définition :

Capacité d’un même objet à se comporter différemment selon son type concret. On peut manipuler plusieurs objets différents via une même référence parent.

Code :
Animal a1 = new Dog();
Animal a2 = new Cat();

List<Animal> animals = List.of(a1, a2);
for (Animal a : animals) {
    a.speak(); // chaque animal a son comportement propre
}

Héritage

Définition :

Mécanisme permettant à une classe d'hériter des attributs et comportements d'une autre classe.
La classe dérivée peut réutiliser ou redéfinir (@Override) ces comportements.

Code :
public class Animal {
    void speak() { System.out.println("Some sound"); }
}

public class Dog extends Animal {
    @Override
    void speak() { System.out.println("Woof!"); } // spécialisation
}

Animal a = new Dog();
a.speak(); // → Woof!

Interface

Définition :

Contrat qui définit un ensemble de méthodes qu’une classe doit implémenter. Ne contient pas d’état (sauf constantes).

Code :
public interface Flyable {
    void fly(); // méthode abstraite
}

public class Bird implements Flyable {
    public void fly() { System.out.println("Flies with wings"); }
}

public class Plane implements Flyable {
    public void fly() { System.out.println("Flies with engines"); }
}