une interface comme atribut

une interface comme atribut - Java - Programmation

Marsh Posté le 21-05-2006 à 18:41:13    

Bonjour,
 
quel est l'intéret d'avoir une interface comme attribut d'une classe, pourriez vous donner un exemple?
 
merci

Reply

Marsh Posté le 21-05-2006 à 18:41:13   

Reply

Marsh Posté le 22-05-2006 à 22:45:12    

root76 a écrit :

Bonjour,
 
quel est l'intéret d'avoir une interface comme attribut d'une classe, pourriez vous donner un exemple?
 
merci


 
cela te permet d'écrire des méthodes génériques qui puissent être utilisée par toutes les classes dérivants de ton attributs interface.
 
Par exemple,  

Code :
  1. public class ExampleList {
  2. private List list_;
  3. public void incrList() {
  4.  for (int i = 0; i < list_.size(); i++) {
  5.   Integer j = (Integer) list_.get(i);
  6.   int incrj = j.intValue() + 1;
  7.   list_.set(i, new Integer(incrj));
  8.  }
  9. }
  10. public String toString() {
  11.  String lResult = "";
  12.  for (int i = 0; i < list_.size(); i++) {
  13.   lResult += list_.get(i) + " ";
  14.  }
  15.  return lResult;
  16. }
  17. public ExampleList(ArrayList pList) {
  18.  list_ = pList;
  19. }
  20. public ExampleList(Vector pList) {
  21.  list_ = pList;
  22. }
  23. public static void main(String[] args) {
  24.                 // Utilisation avec une ArrayList
  25.  ArrayList lArrayList = new ArrayList();
  26.  lArrayList.add(new Integer(1));
  27.  lArrayList.add(new Integer(2));
  28.  lArrayList.add(new Integer(3));
  29.  ExampleList lList1 = new ExampleList(lArrayList);
  30.  lList1.incrList();
  31.  System.out.println(lList1);
  32.                 // Utilisation avec un Vector
  33.  Vector lVector = new Vector();
  34.  lVector.add(new Integer(2));
  35.  lVector.add(new Integer(3));
  36.  lVector.add(new Integer(4));
  37.  ExampleList lList2 = new ExampleList(lVector);
  38.  lList2.incrList();
  39.  System.out.println(lList2);
  40. }
  41. }


 
Les méthodes incrList et toString sont communes que l'attribut soit une ArrayList ou un Vector.
 
Le principal intérêt est donc de n'écrire des méthodes que pour une seule interface plutôt que pour chacune des classes qui l'implémente.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed