oop - poo - Historial de modificadores de control de acceso tales como público/privado/protegido
modificadores de acceso java pdf (4)
Los modificadores de acceso públicos, privados y protegidos provienen de C ++. Parece que lo público y lo privado ya existían en "C con clases", precursor de corta duración de C ++. Esto probablemente se detalla en El diseño y la evolución de C ++ .
Creo que lo abstracto y lo final vienen de Java y lo interno de C #.
¿Cómo estas palabras y conceptos cobraron vida? ¿Cuáles fueron las fuerzas y problemas que los hicieron aparecer? ¿Cuál fue el primer idioma para tenerlos?
En realidad, no se trata solo de public
/ private
/ protected
, sino de toda la gama de palabras clave que imponen algunas reglas ( abstract
, final
, internal
).
Pero, por favor, no asumas cosas. Responda si sabe al menos parte de la respuesta o responda si vivió esos momentos. Las referencias son muy apreciadas.
Para C ++, los orígenes de la protección pública y privada provienen de los experimentos de Stroustrup con C With Classes, pero de un sistema aún más antiguo: la computadora Cambridge CAP. Esto se describe en la sección 2.10 de "El diseño y la evolución de C ++".
En cuanto a protegido, ha tenido un pasado más turbio y no tengo una buena referencia para ello.
este tipo de cosas comienza con diseñadores de múltiples idiomas que preguntan ''¿cuál es un nombre simple y lógico para este concepto''? luego, con el tiempo, ciertos nombres se vuelven populares (a veces porque son buenos nombres, a veces solo porque). agregue 20 años, y la mayoría de las personas terminan eligiendo los mismos nombres, según lo que han visto.
una pregunta similar, tal vez, para preguntar cómo se agregan nuevas palabras a (digamos) el idioma inglés.
Simula (1967) , considerado el primer lenguaje OO, tiene modificadores llamados protegidos y ocultos . Supongo que el público es el predeterminado, no puedo recordar. También utiliza virtual .
Y, gracias a Pavel, Simula introdujo las palabras clave (y los conceptos) más importantes de la clase , esto , los nuevos tipos de referencia y downcasting.
Smalltalk (1980) , un lenguaje de OO posterior pero mucho más fundamental, nos dio Métodos para responder a los Mensajes . Esta es básicamente la misma funcionalidad que las funciones virtuales. Los mensajes y las clases se imitaron posteriormente en C (no OO) para dar el comportamiento polimórfico de la API de Windows. Pero todavía se necesitan feos instrucciones de conmutación y punteros de función para reemplazar la herencia.
El primer uso de Propiedades fue, por lo que sé, en Delphi (Object Pascal, <1994).