Java : rendre un objet constant ? - Java - Programmation
Marsh Posté le 28-11-2004 à 10:15:01
vince_223 a écrit : C'est super les attributs protected accesible dans tout le package .... |
Bah oui, c'est pas la même chose qu'en C++, c'est tout ...
(il y a une quatrième visibilité aussi)
Marsh Posté le 28-11-2004 à 10:25:42
Friendly
Marsh Posté le 28-11-2004 à 10:28:00
ouais mais ca resoud pas mon prob tout ca ! Le fait qu'un attributs protected soit accessible dans tout le package m'emmerde pas mal. (elle est pas tip top respectée l'encapsulation dans le cas des heritages !!!)
Marsh Posté le 28-11-2004 à 10:36:58
Franchement quelqu'un peut me dire pkoi ils sont mis les attributs protected visible dans tout le package ? Je en trouve pas d'interet a faire ca ...
Marsh Posté le 28-11-2004 à 10:41:33
Parce que l'encapsulation sert aussi au niveau package. Un package est un composant (aka subsystem), et les protected sont un point d'extension du package par dérivation, tandis que les publics sont des points d'entrée (interface publiée).
Les friendly sont des objets internes au composant.
En fait, ces visibilité permettent d'avoir deux granularité d'encapsulation : la classe et le package.
Marsh Posté le 28-11-2004 à 10:45:55
D'accord mais le fait de proposer deux granularités rend le concept objet plus flou, surtout au niveau classe.
comment ferai tu, toi, si tu as un objet qui ne doit pas accerder aux attributs protected d'un autre objet, au sein d'un meme pacqkage ?
A part les separer dans des packages respectifs ? ya t il d'autre solution ?
Marsh Posté le 29-11-2004 à 17:06:08
Si tu ne veux pas que tes attributs soient accessibles par les autres classes du package, tu les mets "private"... Après tu fais des accesseurs à tes attributs dans lesquels tu peux faire tous les contrôles que tu veux.
Ensuite, quand tu fais un package, il est sensé formé un tout cohérent et donc avoir des attributs accessibles à l'intérieur du package ne me paraît pas déconnant.
Sinon c'est que tes 2 classes n'ont à priori rien à faire dans le même package.
Marsh Posté le 28-11-2004 à 10:13:25
Salut a tous,
Voila je voudrais par exemple qu'une méthode me renvoie un objet constant, alors que cet objet n'est pas définit constant.
un peu comme en c++ en faisant un :
const Objet getObjet(int index){return listObjet[i]};
Est il possible de faire ca en java ? (C'est super les attributs protected accesible dans tout le package .... )
Merci de vos reponse.