Bonjour !
Je lisais ce tutorial, et je ne saisis pas bien la différence entre les deux mots-clés protected et package friendly![]()
Merci de m'éclairer![]()
Bonjour !
Je lisais ce tutorial, et je ne saisis pas bien la différence entre les deux mots-clés protected et package friendly![]()
Merci de m'éclairer![]()
Salut,
je vais essayer de rester clair lol.
Alors imaginons que tu es un package Pack avec trois classe A, B, C. Et tu as un autre package Pack2 avec une classe D qui hérite de A.
Si dans la class A tu as des fonctions (ou objets) défini avec le mot clé protected, seul D (et A evidemment) pourront y acceder.
Si par contre tu n'a pas de mot-clé (ce qui correspond a package-friendly) les classes B et C y auront accés mais pas D.
J'espere que j'ai ete clair.
En gros :
protected : moi et mes classes filles y ont accés.
package-friendly (pas de mot clé) : moi et tout mon package mais pas forcément mes classes filles.
Voila a+.
Follow me : http://twitter.com/mkhelif
Mon blog : http://www.mkhelif.fr/
JSplit v1.2 : http://www.mkhelif.fr/development/jsplit
Salut,
Envoyé par Kh4iN3
Presque
Les éléments "package-friendly" ne sont bien visibles que par la classe courante et par les classes du même package.
Par contre les éléments protected sont visibles par la classe courante, les classes du même package ET les classes filles.
![]()
Que signifient les mots-clés public, private et protected ?
a++
Petit détail pour protected, on ne peut y accéder dans les classes filles QUE pour l'objet courant.
Par example:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 package a; public class A { public void method(A a) {} protected void salut() {} }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 package b; public class B extends A { public void method(A a) { a.salut(); //illégal salut(); //ok } }
D'accord, merci à tous les trois![]()
Mais donc (excusez-moi de revenir à la charge), "protected" a une portée plus large que "package frienly" ? Donc ça devrait plutôt être, dans l'ordre :
- public
- protected
- (package friendly)
- private
Non ?![]()
Salut,
merci adiBuga je savais pas que le package avait acces grâce au mot-clé protected, tu viens de m'apprendre un truc lol.
merci pour la correction
a+
Follow me : http://twitter.com/mkhelif
Mon blog : http://www.mkhelif.fr/
JSplit v1.2 : http://www.mkhelif.fr/development/jsplit
Oui, tout à fait.Envoyé par jo_le_coco
Il y a une "inclusion en chaine":
public > protected > (package) > private
Ok merci.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager