una poo modificadores miembros los entre encapsulamiento elaborar ejemplos diferentes cuadro comparativo clases clase acceso oop history

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).