[[slam4:poo]]

Ceci est une ancienne révision du document !


Rappels

Encapsulation

L'encapsulation consiste à protéger une partie des membres d'un objet, de façon à contrôler son utilisation et à rendre interne une partie de son comportement.

L'encapsulation est généralement mise en oeuvre à partir des types d'accès définis dans la classe sur ses membres.

Types d'accès

Accès Rôle
Privé (private) Accessibilité dans l'objet lui-même (this) uniquement.
Protégé (protected) id Privé + Accessibilité dans les classes dérivées
Public (public) id Protégé + Accessibilité de l'extérieur, sur une instance de la classe

Exemples java

Private
|h Déclaration & accès
public class Base {
	private int member;
	public int getMember(){
		//Accès possible à this.member ou member sur l'instance this de la classe
		return this.member;
	}
}
Protected
|h Déclaration & accès
public class Base {
	protected int pMember;
 
	public int getpMember() {
		return pMember;
	}
}
 
public class Derivee extends Base {
	public void maminpulePMember(){
		//Accès possible à this.member ou member sur l'instance this de la classe dans la classe dérivée
		System.out.println(this.pMember);
	}
}
Public
|h Déclaration & accès
public class Base {
	protected int pMember;
	public static int count;
 
	public int getpMember() {
		return pMember;
	}
}
 
 
public class Programme {
 
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Base b=new Base();
		//Accès au membre public de classe count
		Base.count++;
		//Accès au membre public getpMember sur une instance de Base
		System.out.println(b.getpMember());
	}
 
}

Règles de mise en oeuvre

Les membres de données ne doivent jamais être à portée publique, excepté les membres de données statiques (de classe). Il est ensuite possible de contrôler l'accès à ces données protégées en ajoutant des accesseurs, en lecture et/ou en écriture.

Méthodes d'accès

Accesseur en lecture

Le rôle d'un accesseur en lecture est de retourner la valeur d'un membre privé.

public int getpMember() {
        return pMember;
}

Accesseur en écriture (modificateur)

Le rôle d'un accesseur en écriture est de permettre la modification d'un membre privé, par affectation de la valeur passée en paramètre.

public void setpMember(int pMember) {
        this.pMember=pMember;
}

Construction d'objets

Un constructeur est une méthode d'une classe permettant l'instanciation d'objets. Plusieurs constructeurs peuvent être implémentés dans une classe.
On parle dans ce cas de surcharge (overloading).
Le rôle d'un constructeur est de permettre de créer des instances d'objets cohérentes, dont les membres sont correctement initialisés.

Polymorphisme d'héritage

Le polymorphisme est un concept permettant de simuler le changement de comportement ou de forme d'un objet, au cours de l'exécution d'un programme.

Exemple de mise en oeuvre :
Soit une classe Animal abstraite, ayant pour Classes dérivées Cloporte et Limace.

Interface

slam4/poo.1347548967.txt.gz · Dernière modification: 2017/08/09 16:32 (modification externe)
GNU Free Documentation License 1.3
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0