Les Interfaces
Liens pour comprendre mieux les interfaces et les packages: The Java Tutorial Lesson: Interfaces and Packages (en Anglais)Une interface est une collection des definitions des methodes (sans implantations). Une interface peut aussi declarer les constants.
Les differences entre une interface et une classe abstraite:
- Une interface ne peut pas implanter aucun methodes, mais une classe abstraite peut les implanter.
- Une classe peut avoir pleuseurs interfaces mais peut avoir seulement une "superclasse".
- Une interface n'est pas un part d'un arbre d'heritage.
Une class peut implanter une ou plusieurs interface(s) (mot clé implements suivi d'une liste de noms d'interfaces séparés par une virgule)
Créer et utiliser un interface
interface X { final double PI = 3.14; public int a(); public void b(); } class Y implements X { private int xa=0; //interface X public int a() { return xa; } public void b() { xa++; } }Exemple:
ActionListener
Javadoc pour ActionListener
Class qui utilise ActionListener (ShapesApplet.java)
Exemple:
ALifeWorld
interface ALifeWorld { public int getWidth(); public int getHeight(); } interface FlockALifeWorld extends ALifeWorld { ALifePoint getNearestNeighbor(int id); double getCentroidX(); double getCentroidY(); double getWgtCentroid(); double getWgtParallel(); double getWgtDistance(); } abstract class ALifeSim extends JPanel implements ALifeWorld { ... //interface ALifeWorld //getWidth et getHeight() sont dans JPanel } class FlockALifeSim extends ALifeSim implements FlockALifeWorld, ChangeListener { void setup(int numPts) { pts=new ALifePoint[numPts]; for (int i=0; i < numPts; i++) { pts[i] = new FlockALifePoint(this,i); } ... } ... //FlockALifeWorld interface public double getCentroidX() { return centX; } public double getCentroidY() { return centY; } public double getWgtCentroid() { return (double)sWgtCentroid.getValue()/100.0;} public double getWgtParallel() { return (double)sWgtParallel.getValue()/100.0;} public double getWgtDistance() { return (double)sWgtDistance.getValue()/100.0;} } class FlockALifePoint extends ALifePoint{ ... FlockALifeWorld w; FlockALifePoint(FlockALifeWorld w, int id) { ... this.w=w; ... } public void computeDir() { ... ALifePoint nearest = w.getNearestNeighbor(getId()); ... } }Retour à la page principale d'ift1020
Last modified: Sun Oct 3 10:12:47 EDT 2004 par Douglas Eck [douglas D0T eck AT umontreal D0T ca]