Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

help interface

2 réponses
Avatar
Vincent
bonjour,

J'ai cherché des infos sur les classes (?) interface, j'ai du mal à
comprendre à quoi ca sert ?

j'ai un programme qui doit utiliser une fonction de traitement du signal (
je luis passe une dizaine de variables et en retour je récupère une valeur

Cette fonction est dans une classe java ( j'ai pas la source
CalculTherm.java ni CalculTherm.class), j'ai un fichier CalculThermInterface
qui possède une méthode public float CalculerThermo(int a, int b, string
zone, .......);

je peux faire quoi avec ? comment puis je créer mon programme main ?



merci

Vincent

ps : j'ai trouvé un exemple d'un programme composé de 3 classes ( main,
interface et definition de l'interface)
du genre somme(int a, int b); pourquoi utiiser une interface et pas
une classe normale ? y pas de rmi ou truc de ce genre

2 réponses

Avatar
julien balas
bonjour,

J'ai cherché des infos sur les classes (?) interface, j'ai du mal à
comprendre à quoi ca sert ?


l'interface defini un contrat

si tu ecris

public interface Animal {
public void cri() ;
}

ca dit que toute les classe qui veulent etre des "Animal" doivent
implementer la methode "cri"

si tu cree des classes chiens et chats, tu indique que ce sont des animaux

public class Chien implements Animal {
public void cri() {
System.out.println("Ouaf!");
}
}
public class Chat implements Animal {
public void cri() {
System.out.println("Miaou!");
}
}

ca te permet ensuite dans ton programme de manipuler des "Animal" sans
avoir besoin de savoir si ce sont des chiens ou des chats, comme ils
implements tous les deux l'interface "animal", tu est CERTAIN (et le
compilo refuse de compiler si ca n'est pas le cas) que TOUS les obj de
type animal auront la methode "cri"

Ce qui te permet d'ecrire ensuite de choses du genre

public class Test {

public static void main(String[] args) {
List<Animal> tablo = new ArrayList<Animal>();

tablo.add(new Chien());
tablo.add(new Chat());

for(Animal current : tablo) {
current.cri();
}
}
}
Et que ca produise comme resultat
Ouaf!
Miaou!

au passage, c'est le même mecanisme avec "List" et "ArrayList", "Set" et
"Hashset"

Si demain je veut remplacer mon "ArrayList" par un "Vecctor" ou une
"LinkedList", je suis sur que ca fonctionnera sans pb. Car toutes ces
classes suivent l'interface "List".


Pour revenir a ton exemple, j'imagine qu'il faut que tu ecrive une
classe qui implemente "CalculThermInterface"...

--
JB

Avatar
Laurent Courtin
Bonjour,

J'ai trouvé ça un jour sur ce groupe et je l'ai trouvé intéressant :

http://groups.google.com/groups?as_umsgidB6752ca$0$21148$ club-internet.fr

Cordialement,

--
Laurent