[syntaxe] difference? de portée?
Bonjour tout le monde,
J'aurais aimer savoir quelle est la difference entre :
Code:
1 2 3
|
public class Exemple {}
class Other {} |
et
Code:
1 2 3 4
|
public class Exemple {
class Other {}
} |
.
Ces deux codes etant le code contenu dans un fichier Exemple.java .
J'imagine qu'il y a une difference de portée et/ou visibilitée mais je ne vois pas trop...
Merci d'avance
Re: [syntaxe] difference? de portée? (scope)
Citation:
Envoyé par TabrisLeFol
Bonjour tout le monde,
J'aurais aimer savoir quelle est la difference entre :
Code:
1 2 3
|
public class Exemple {}
class Other {} |
et
Code:
1 2 3 4
|
public class Exemple {
class Other {}
} |
.
Ces deux codes etant le code contenu dans un fichier Exemple.java .
J'imagine qu'il y a une difference de portée mais je ne vois pas trop...
Merci d'avance
il n'y a aucune difference de portée c'est juste que la class other dans les 2 examples n'est pas visible en dehors de son package, et ds le 1er code c'est un objet de la classe Example
Re: [syntaxe] difference? de portée? (scope)
Citation:
c'est juste que la class other dans les 2 examples n'est pas visible en dehors de son package
Cela je veux bien dans le premier.
Citation:
dans le 1er code c'est un objet de la classe Example
La je ne comprends pas. :roll: 8O
Re: [syntaxe] difference? de portée? (scope)
Citation:
Envoyé par TabrisLeFol
Citation:
c'est juste que la class other dans les 2 examples n'est pas visible en dehors de son package
Cela je veux bien dans le premier.
Citation:
dans le 1er code c'est un objet de la classe Example
La je ne comprends pas. :roll: 8O
ouais bon ok, c'est une classe interne de example, c'est ma facon d'exprimer les choses
voila ce que java offre en ce qui concerne l'accessibilite des composants d'une classe de base à partir des autres classes:
[quote]
aucun attribut : accessibles par les classes qui font partie du meme paquetage, inaccessibles par les autres
public: accessibles par toutes les classes
protected : accessibles par toutes les classes derivées, et les classes du meme paquetage, inaccessible par les autres
private : inaccessible par toutes les classes
Re: [syntaxe] difference? de portée? (scope)
Citation:
Envoyé par khokho
Citation:
Envoyé par TabrisLeFol
Citation:
c'est juste que la class other dans les 2 examples n'est pas visible en dehors de son package
Cela je veux bien dans le premier.
Citation:
dans le 1er code c'est un objet de la classe Example
La je ne comprends pas. :roll: 8O
ouais bon ok, c'est une classe interne de example, c'est ma facon d'exprimer les choses
voila ce que java offre en ce qui concerne l'accessibilite des composants d'une classe de base à partir des autres classes:
aucun attribut : accessibles par les classes qui font partie du meme paquetage, inaccessibles par les autres
public: accessibles par toutes les classes
protected : accessibles par toutes les classes derivées, et les classes du meme paquetage, inaccessible par les autres
private : inaccessible par toutes les classes
Il faut porter tout de meme une attention toute particuliere sur le modifier protected dans le cas d une classe sous classe de la classe declarant le feature protected (déclarée dans un autre package que sa superclasse):
Tu peux appeler toutes les methodes protected de ta superclasse :
Code:
1 2
|
this.methodeProtected(); //OK |
mais tu ne peux pas invoquer les methodes protected sur une autre instance:
Code:
1 2
|
anotherInstance.methodeProtected(); //Illegal |
Il en est de meme pour les attributs protected de la super classe, tu ne peux les lire a partir d une autre instance
Code:
1 2
|
... x = this.attributProtected; //OK |
Code:
1 2
|
... x = anotherInstance.attributProtected; //Illegal |
Re: [syntaxe] difference? de portée? (scope)
Benjamin >> c'est bon à savoir ca ;)