Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1387 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Les méthodes d'une interface ne peuvent pas être protected?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Les méthodes d'une interface ne peuvent pas être protected?

n°705731
El_gringo
Posté le 22-04-2004 à 10:46:02  profilanswer
 

Je risque de m'en prendre plein la tête. Tant pis.
Les méthodes d'une interface ne peuvent donc être que public, ou "portée par défaut" ? J'suis à peu près sur là. Je pourrais avoir confirmation ?


Message édité par El_gringo le 22-04-2004 à 11:12:23
mood
Publicité
Posté le 22-04-2004 à 10:46:02  profilanswer
 

n°705736
lorill
Posté le 22-04-2004 à 10:49:50  profilanswer
 

ou est l'intéret d'une méthode privée pour une interface ?
 
Une interface, c'est un contrat que tu passe avec les objets utilisateurs, donc tu ne peux que spécifier ce que tu leur montre.

n°705745
nraynaud
lol
Posté le 22-04-2004 à 10:55:03  profilanswer
 

ratai, elle sont publiques s'il n'y a pas de mot-clef "public" :
http://java.sun.com/docs/books/jls [...] html#78651
 

Citation :

Every method declaration in the body of an interface is implicitly public.


---------------
trainoo.com, c'est fini
n°705746
nraynaud
lol
Posté le 22-04-2004 à 10:57:04  profilanswer
 

Par contre, une interface elle-même peut être publique, privée ou package-visible. Pour restreindre l'accès à certaines méthodes, tu fais une interface public, et tu lui fais une sous-interface avec la visibilité que tu veux et les méthodes à protéger.


---------------
trainoo.com, c'est fini
n°705753
darklord
You're welcome
Posté le 22-04-2004 à 11:00:45  profilanswer
 

El_gringo a écrit :

Je risque de m'en prendre plein la tête. Tant pis.
Les méthodes d'une interface ne peuvent donc être que public, ou "portée par défaut" ? J'suis à peu près sur là. Je pourrais avoir confirmation ?


 
toi tu n'as pas compris ce que c'était une méthode privée visiblement ;)
 
Pour countourne ton problème  
 
Interface avec les méthode publiques -> Abstract class avec des méthodes protected si tu en as besoins -> tes implémentations

n°705761
El_gringo
Posté le 22-04-2004 à 11:08:52  profilanswer
 

lorill a écrit :

ou est l'intéret d'une méthode privée pour une interface ?
 
Une interface, c'est un contrat que tu passe avec les objets utilisateurs, donc tu ne peux que spécifier ce que tu leur montre.


 
L'intéret dans mon cas : développement d'une API. Je veux forcer à implémenter des méthodes, sans pour autant que ces méthodes soit "exposées" aux autres classes. tu vois l'intéret ?

n°705763
El_gringo
Posté le 22-04-2004 à 11:09:50  profilanswer
 

nraynaud a écrit :

ratai, elle sont publiques s'il n'y a pas de mot-clef "public" :
http://java.sun.com/docs/books/jls [...] html#78651
 

Citation :

Every method declaration in the body of an interface is implicitly public.




 
Tient !? étrange. Dans les sources du JDK, 1 fois sur 2 il y a ou il y a pas le mot clé "public". J'aurais pensé que ça avait une intéret quand même.

n°705766
El_gringo
Posté le 22-04-2004 à 11:11:46  profilanswer
 

DarkLord a écrit :

toi tu n'as pas compris ce que c'était une méthode privée visiblement ;)


 
Pourquoi tu dis ça !???
Ha oui, private, c'est ridicule pour une interface. Mais pour protected, je maintient.

n°705767
darklord
You're welcome
Posté le 22-04-2004 à 11:12:00  profilanswer
 

El_gringo a écrit :

Tient !? étrange. Dans les sources du JDK, 1 fois sur 2 il y a ou il y a pas le mot clé "public". J'aurais pensé que ça avait une intéret quand même.


 
à part rendre le code source confus, je ne vois aucun autre intérêt :/

n°705768
lorill
Posté le 22-04-2004 à 11:13:11  profilanswer
 

El_gringo a écrit :

L'intéret dans mon cas : développement d'une API. Je veux forcer à implémenter des méthodes, sans pour autant que ces méthodes soit "exposées" aux autres classes. tu vois l'intéret ?


oui, mais ce n'est plus une interface pour les autres. Soit tu fais comme l'a dit nraynaud, soit tu passes par une classe abstraite (l'implémentation n'a rien a faire dans une interface)

mood
Publicité
Posté le 22-04-2004 à 11:13:11  profilanswer
 

n°705774
nraynaud
lol
Posté le 22-04-2004 à 11:19:06  profilanswer
 

DarkLord a écrit :

à part rendre le code source confus, je ne vois aucun autre intérêt :/

pareil, laisser 2 mots clefs inutiles dans la grammaire, je trouve ça con.


---------------
trainoo.com, c'est fini
n°705776
El_gringo
Posté le 22-04-2004 à 11:21:05  profilanswer
 

lorill a écrit :

oui, mais ce n'est plus une interface pour les autres. Soit tu fais comme l'a dit nraynaud, soit tu passes par une classe abstraite (l'implémentation n'a rien a faire dans une interface)


 
Non, ça devient une interface rien que pour la classe, en effet.
Je n'comprend pas ta remarque entre parenthèses!

n°705777
El_gringo
Posté le 22-04-2004 à 11:22:24  profilanswer
 

nraynaud a écrit :

pareil, laisser 2 mots clefs inutiles dans la grammaire, je trouve ça con.


 
Ben, maintenant qu'il existe depuis le début du Java, ils peuvent plus le supprimer. C'est l'utiliser une fois sur 2 ce "public" qui est con.

n°705779
El_gringo
Posté le 22-04-2004 à 11:24:11  profilanswer
 

nraynaud a écrit :

Par contre, une interface elle-même peut être publique, privée ou package-visible. Pour restreindre l'accès à certaines méthodes, tu fais une interface public, et tu lui fais une sous-interface avec la visibilité que tu veux et les méthodes à protéger.


 
Je vais plutôt faire une classe abstraite. Mais j'aimerai quand même comprendre ce que tu veux dire (j'ai pas compris).

n°705834
lorill
Posté le 22-04-2004 à 12:23:02  profilanswer
 

El_gringo a écrit :

Non, ça devient une interface rien que pour la classe, en effet.
Je n'comprend pas ta remarque entre parenthèses!


exemple : un lecteur audio
 

Code :
  1. interface Player
  2. {
  3.   public void play(AudioFile file);
  4.   public void pause();
  5.   public void resume();
  6.   public void stop();
  7. }


la on ne dit pas comment faire aux implémenteurs de l'interface, juste ce qu'il faut faire.
 

Code :
  1. abstract class AbstractPlayer
  2. {
  3.   public void play(AudioFile file)
  4.   {
  5.     //appel a split puis process pour chaque frame
  6.     //..
  7.   }
  8.   protected abstract AudioFrames[] splitInFrames(AudioFile file);
  9.   protected abstract processFrame(AudioFrame frame);
  10.   //...
  11. }


la tu impose l'utilisation d'AudioFrames pour la lecture. tu dis donc comment faire pour lire AudioFile.

n°705836
El_gringo
Posté le 22-04-2004 à 12:25:25  profilanswer
 

Ok, j'ai saisi.  
Merci à vous.

n°705864
the real m​oins moins
Posté le 22-04-2004 à 13:11:06  profilanswer
 

DarkLord a écrit :

à part rendre le code source confus, je ne vois aucun autre intérêt :/

m'enfin !!!
sans le mot clé public la methode est PACKAGE-PROTECTED !!
(ha, ptet pas pour les interfaces, c'est de ça qu'on parle? [:slackerbitch])


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°705887
darklord
You're welcome
Posté le 22-04-2004 à 13:32:33  profilanswer
 

the real moins moins a écrit :

m'enfin !!!
sans le mot clé public la methode est PACKAGE-PROTECTED !!
(ha, ptet pas pour les interfaces, c'est de ça qu'on parle? [:slackerbitch])


 
 :sarcastic:

n°705909
El_gringo
Posté le 22-04-2004 à 13:46:22  profilanswer
 

the real moins moins a écrit :

m'enfin !!!
sans le mot clé public la methode est PACKAGE-PROTECTED !!
(ha, ptet pas pour les interfaces, c'est de ça qu'on parle? [:slackerbitch])


 
...c'était vraiment très interressant ! :sarcastic:

n°705911
nraynaud
lol
Posté le 22-04-2004 à 13:47:25  profilanswer
 

the real moins moins a écrit :

m'enfin !!!
sans le mot clé public la methode est PACKAGE-PROTECTED !!
(ha, ptet pas pour les interfaces, c'est de ça qu'on parle? [:slackerbitch])

http://test1ng.free.fr/yvelepanos/panos/29eac558062fa60709e439f772b5bb5a.png
va lire l'extrait du JLS que j'ai posté plus haut.


---------------
trainoo.com, c'est fini
n°705939
the real m​oins moins
Posté le 22-04-2004 à 14:01:36  profilanswer
 

[:jm@rc]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Les méthodes d'une interface ne peuvent pas être protected?

 

Sujets relatifs
Camera pilotable via interface web et ActiveX de la carte de capturenombre d'appel de méthodes sous la forme a().b()..z()
Interface graphique MysqlInterface !
[Débutant & Conception] Comment bien concevoir une interface graphiqueMarquage d'une catégorie d'objet : interface vide ou flag booleén ?
un vrai logiciel ! (terminal -> interface graphique...)"Poids" des méthodes dans des objets
Conseil pour interface graphique en C[Livre] Méthodes Merise - UML
Plus de sujets relatifs à : Les méthodes d'une interface ne peuvent pas être protected?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR