0% ont trouvé ce document utile (0 vote)
3 vues2 pages

02 Java POO

Le document présente les concepts fondamentaux de la programmation orientée objet en Java, y compris les classes, objets, héritage, polymorphisme et encapsulation. Il explique également les modificateurs d'accès, la différence entre classes abstraites et interfaces, ainsi que des exemples de code illustrant ces concepts. Enfin, il aborde l'utilisation de 'instanceof' pour le polymorphisme et la possibilité d'implémenter plusieurs interfaces par une classe.

Transféré par

bouhouchsofia3
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues2 pages

02 Java POO

Le document présente les concepts fondamentaux de la programmation orientée objet en Java, y compris les classes, objets, héritage, polymorphisme et encapsulation. Il explique également les modificateurs d'accès, la différence entre classes abstraites et interfaces, ainsi que des exemples de code illustrant ces concepts. Enfin, il aborde l'utilisation de 'instanceof' pour le polymorphisme et la possibilité d'implémenter plusieurs interfaces par une classe.

Transféré par

bouhouchsofia3
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Note #2 — Java

Programmation Orientée Objet


Classes, objets, héritage, polymorphisme, encapsulation

1. Classes et Objets
Une classe est un modèle (blueprint). Un objet est une instance de cette classe créée avec new.
public class Animal {
private String nom; // attribut encapsulé
private int age;

public Animal(String nom, int age) { // constructeur


[Link] = nom;
[Link] = age;
}

public String getNom() { return nom; } // getter


public void setNom(String n) { nom = n; }// setter

public void sePresenter() {


[Link]("Je suis " + nom + ", " + age + " ans.");
}
}

Animal a = new Animal("Rex", 3);


[Link](); // Je suis Rex, 3 ans.

2. Encapsulation & Modificateurs d'accès


Modificateur Classe Package Sous-classe Partout

private ✓ ✗ ✗ ✗

(défaut) ✓ ✓ ✗ ✗

protected ✓ ✓ ✓ ✗

public ✓ ✓ ✓ ✓

3. Héritage (extends)
public class Vehicule {
protected String marque;
public Vehicule(String m) { marque = m; }
public void info() { [Link](marque); }
}

public class Voiture extends Vehicule {


private int portes;
public Voiture(String m, int p) {
super(m); // appel du constructeur parent
portes = p;
}
@Override
public void info() {
[Link]();
[Link]("Portes : " + portes);
}
}

4. Polymorphisme
Animal[] animaux = { new Chien("Rex"), new Chat("Mimi") };
for (Animal a : animaux) {
[Link](); // méthode de la vraie sous-classe appelée
}

// instanceof pour vérifier le type


if (animaux[0] instanceof Chien d) { // Java 16 pattern matching
[Link]();
}

5. Classe abstraite vs Interface


Classe abstraite
public abstract class Forme {
public abstract double surface(); // méthode abstraite
public void afficher() { [Link]("S=" + surface()); }
}
public class Cercle extends Forme {
private double r;
public Cercle(double r) { this.r = r; }
public double surface() { return [Link] * r * r; }
}

Interface
public interface Deplacable {
void deplacer(int x, int y); // abstract implicite
default void arreter() { [Link]("Stop"); }
}
// Une classe peut implémenter PLUSIEURS interfaces
public class Robot implements Deplacable, Serializable { ... }
■ Une classe ne peut hériter que d'UNE seule classe, mais peut implémenter plusieurs interfaces.

Vous aimerez peut-être aussi