Suppression du modificateur d'accès
Java avait à l'origine le private protected
modificateur, mais il a été supprimé dans JDK 1.0.2 (la première version stable , le Java 1.0 que nous connaissons aujourd'hui). Quelques tutoriels concernant JDK 1.0.2 ( ici et ici ) disent ce qui suit:
Remarque: la version 1.0 du langage Java prenait en charge cinq niveaux d'accès: les quatre répertoriés ci-dessus plus private protected
. Le private protected
niveau d'accès n'est pas pris en charge dans les versions de Java supérieures à 1.0; vous ne devriez plus l'utiliser dans vos programmes Java.
Une autre réponse sur SoftwareEngineering.SE déclare:
Java avait à l'origine un tel modificateur. Il a été écrit private protected
mais supprimé dans Java 1.0.
Jetez maintenant un œil à l' historique des versions de Java :
JDK 1.0
La première version est sortie le 23 janvier 1996 et s'appelle Oak. La première version stable, JDK 1.0.2, s'appelle Java 1.
De là, nous pouvons conclure que les tutoriels concernant la version 1.0.2 font référence à la toute première version, JDK 1.0, où le langage s'appelait Oak, mais celui de SoftwareEngineering.SE se réfère à la première version stable, JDK 1.0.2 appelée Java 1.0, où il a été supprimé.
Maintenant, si vous essayez de le rechercher dans la documentation Java 1.0 , vous ne le trouverez pas, car comme mentionné précédemment, il a été supprimé dans JDK 1.0.2, autrement connu sous le nom de Java 1.0. Ceci est prouvé à nouveau lorsque vous regardez les heures de «Dernière modification» pour le lien que vous avez publié. Le lien que vous avez publié a été modifié pour la dernière fois en février 1996. Java 1.0 / JDK 1.0.2, lorsqu'il a private protected
été supprimé, a été publié après février 1996 et, selon les spécifications, en août 1996.
Raison de la suppression
Certaines sources expliquent également la raison private protected
, comme celle- ci. Citer:
Qu'est-ce qui était protégé privé?
Au début, le langage Java permettait certaines combinaisons de modificateurs, dont l'un était private protected
. La signification de private protected
était de limiter la visibilité strictement aux sous-classes (et de supprimer l'accès aux packages). Cela a par la suite été jugé quelque peu incohérent et trop complexe et n'est plus pris en charge. [5]
[5] La signification du protected
modificateur a changé dans la version Beta2 de Java et la private protected
combinaison est apparue en même temps. Ils ont corrigé certaines failles de sécurité potentielles, mais ont dérouté de nombreuses personnes.
Et le SoftwareEngineering.SE soutient également cela, en disant que cela ne valait pas la peine des incohérences et de la complexité supplémentaire, donc il a été supprimé très tôt.
Interprétation
Mon interprétation de tout cela est que peut-être, à l'époque du chêne, les deux étaient autorisés à coexister (d'où la combinaison). Étant donné que protected
le sens de ce terme avait changé 1 , il a peut-être été nécessaire de permettre private
et protected
en même temps. L'introduction est devenue trop complexe et n'en valait pas la peine, et a donc été abandonnée à la fin. Au moment où Java 1.0 / JDK 1.0.2 a été déployé, il avait été abandonné et ne peut donc pas être trouvé dans la documentation.
1 Dans la spécification du langage Oak , Section 4.10, Accès aux variables et méthodes , il est noté que le modificateur par défaut était protected
:
Par défaut, toutes les variables et méthodes d'une classe sont protégées .
C'est assez différent de ce que nous avons aujourd'hui, l'accès par défaut aux packages. Cela a peut-être ouvert la voie à la nécessité de private protected
, car il private
était trop restrictif et protected
trop indulgent.