Python
Définir une classe Personne
class Personne:
def __init__(self, nom, age):
self.nom = nom
self.age = age
def se_presenter(self):
print(f"Je m'appelle {self.nom} et j'ai {self.age} ans.")
Utiliser la classe
python
CopierModifier
p1 = Personne("Alice", 22)
p1.se_presenter() # Je m'appelle Alice et j'ai 22 ans.
Héritage et Polymorphisme
python
CopierModifier
class Etudiant(Personne):
def __init__(self, nom, age, filiere):
super().__init__(nom, age)
self.filiere = filiere
def se_presenter(self):
super().se_presenter()
print(f"Je suis étudiant en {self.filiere}.")
e1 = Etudiant("Karim", 20, "Informatique")
e1.se_presenter()
# Je m'appelle Karim et j'ai 20 ans.
# Je suis étudiant en Informatique.
Encapsulation (convention)
python
CopierModifier
class CompteBancaire:
def __init__(self, solde):
self.__solde = solde # Attribut privé
def deposer(self, montant):
self.__solde += montant
def afficher_solde(self):
print(f"Solde actuel : {self.__solde} €")
compte = CompteBancaire(100)
compte.deposer(50)
compte.afficher_solde() # Solde actuel : 150 €
Classes abstraites et interfaces
python
CopierModifier
from abc import ABC, abstractmethod
class Animal(ABC):
@abstractmethod
def parler(self):
pass
class Chien(Animal):
def parler(self):
print("Ouaf !")
class Chat(Animal):
def parler(self):
print("Miaou !")
Java
Déclaration d'une classe Personne
java
CopierModifier
public class Personne {
// Attributs (encapsulation avec private)
private String nom;
private int age;
// Constructeur
public Personne(String nom, int age) {
this.nom = nom;
this.age = age;
}
// Getters
public String getNom() {
return nom;
}
public int getAge() {
return age;
}
// Méthode
public void sePresenter() {
System.out.println("Je m'appelle " + nom + " et j'ai " + age
+ " ans.");
}
}
Classe principale avec méthode main
java
CopierModifier
public class Main {
public static void main(String[] args) {
Personne p1 = new Personne("Alice", 22);
p1.sePresenter(); // Affiche : Je m'appelle Alice et j'ai
22 ans.
}
}
Héritage et Polymorphisme
java
CopierModifier
// Classe héritée
public class Etudiant extends Personne {
private String filiere;
public Etudiant(String nom, int age, String filiere) {
super(nom, age); // Appelle le constructeur de Personne
this.filiere = filiere;
}
@Override
public void sePresenter() {
super.sePresenter(); // Appelle la méthode de la classe mère
System.out.println("Je suis étudiant en " + filiere + ".");
}
}
java
CopierModifier
public class Main {
public static void main(String[] args) {
Personne p = new Etudiant("Karim", 20, "Informatique");
p.sePresenter(); // Polymorphisme : appelle la version
d'Etudiant
}
}
Interfaces et Abstraction
java
CopierModifier
public interface Volant {
void voler();
}
public class Avion implements Volant {
public void voler() {
System.out.println("L'avion vole !");
}
}