Retrait du modificateur d'accès
Java n'ont, à l'origine de l' private protected
modificateur, mais il a été supprimé dans le JDK 1.0.2 (la première stable version, Java 1.0 que nous connaissons aujourd'hui). Quelques tutoriels concernant JDK 1.0.2 (ici et ici) dire ce qui suit:
Remarque: La version 1.0 du langage Java pris en charge cinq niveaux d'accès: les quatre énumérées ci-dessus ainsi private protected
. L' private protected
niveau d'accès n'est pas pris en charge dans les versions de Java supérieur à 1.0; vous devez ne plus utiliser dans vos programmes Java.
Une autre réponse sur SoftwareEngineering.SE membres:
Java avait à l'origine d'une telle modification. Il a été écrit private protected
mais supprimé en Java 1.0.
Maintenant, jetez un oeil à la Version Java de l'Histoire:
JDK 1.0
La première version a été publiée le 23 janvier 1996 et a appelé le Chêne. La première version stable, JDK 1.0.2, est appelé Java 1.
À partir de cela, nous pouvons conclure que des tutoriels concernant la version 1.0.2 reportez-vous à la première version du JDK 1.0, où la langue a été appelé le Chêne, mais l'un de SoftwareEngineering.SE réfère à la première version stable, JDK 1.0.2 appelé Java 1.0, où il a été enlevé.
Maintenant, si vous essayez de faire une recherche dans le Java 1.0 documentation, vous ne le trouverez pas, parce que, comme mentionné plus tôt, il a été supprimé dans le JDK 1.0.2, autrement connu sous le nom de Java 1.0. C'est prouvé de nouveau lorsque vous regardez la "Dernière modification" fois pour le lien que vous avez posté. Le lien que vous avez posté a été modifiée en février 1996. Java 1.0/JDK 1.0.2, lorsqu' private protected
a été supprimé, a été libéré après février 1996, et selon les spécifications, août 1996.
La raison du retrait
Certaines sources expliquent également la raison pour private protected
, comme cela . Pour citer:
Ce qui a été privé protégé?
Dès le début, le langage Java a permis pour certaines combinaisons de touches, dont l'une a été private protected
. Le sens de l' private protected
a été à la limite de la visibilité strictement aux sous-classes (et de supprimer le package access). Ce fut par la suite considéré comme un peu incohérente et trop complexe et n'est plus supporté.[5]
[5] Le sens de l' protected
modificateur de changé dans la Beta2 version de Java, et l' private protected
combinaison est apparu à la même époque. Ils ont corrigé certains potentielles failles de sécurité, mais confondu beaucoup de gens.
Et le SoftwareEngineering.SE prend également en charge ce, en disant que ce n'était pas la peine de les incohérences et supplémentaire de complexité, de sorte qu'il a été supprimé dès le début.
L'interprétation
Mon interprétation de tout cela est que peut-être, de retour dans le Chêne jours, les deux ont été autorisés à coexister (d'où la combinaison). Depuis protected
s'sens avait changé1, il peut y avoir un besoin d'autoriser private
et protected
dans le même temps. L'introduction est devenu trop complexe et n'était pas la peine, et a donc été abandonné à la fin. Par le temps de Java 1.0/JDK 1.0.2 roulé autour, il avait été abandonné et ne peut donc pas être trouvée dans la documentation.
1Dans le Chêne Spécification du Langage, de l'Article 4.10 de l'Accès à des Variables et des Méthodes, il est à noter que la modification par défaut est protected
:
Par défaut, toutes les variables et les méthodes d'une classe sont protégés.
C'est très différent de ce que nous avons aujourd'hui, le défaut d'accès au package. Cela pourrait ouvrir la voie à la nécessité d' private protected
car private
était trop restrictive et, protected
a été trop indulgent.