Alumno (A) :: Coranguez Rodriguez Fatima
Alumno (A) :: Coranguez Rodriguez Fatima
Alumno (A) :: Coranguez Rodriguez Fatima
CORANGUEZ RODRIGUEZ
PROGRAMACION ORIENTEDA A
INSTITUTO TECNOLÓGICO
SUPERIOR DE TEZIUTLÁN
FATIMA
Número de Control:
22TE0517*
Licenciatura en:
SISTEMAS COMPUTACIONALES
OBJETOS
DOCENTE:
RICARDO ALBERTO CERRANO HERRERA
Existen diferentes tipos de paradigmas en diferentes campos del conocimiento, como la filosofía, la
educación, la lingüística, la ciencia o la programación.
Paradigma de programación
Paradigma imperativo
Paradigma declarativo
Programación Lógica: Prólogo
Programación funcional: Lisp, Scala, Java, Kotlin
Abstracción de datos
Encapsulación
Evento
Módulo
Herencia
Polimorfismo
Programación reactiva
Este paradigma se basa en escuchar eventos generados por cambios de contenido o flujo de
datos, donde los objetos responden a los valores que reciben de esos cambios. Las bibliotecas más
famosas son Project Reactor y RxJava. React/Angular usa RxJ para aprovechar la programación
reactiva.
¿Qué es una clase?
Una clase define un grupo o conjunto de datos, en los objetos se denominan atributos que
definen el objeto, y un conjunto de comportamientos, funciones o métodos del objeto que
lo manipulan y relacionan entre sí.
Las clases se utilizan para representar entidades o conceptos. Por ejemplo, usuario,
noticia, categoría, juego, imagen, mensaje, etc. pueden representar casi cualquier
sustantivo, cualquier dispositivo.
Abstracción:
Representa las propiedades esenciales de un objeto que capturan su comportamiento. Cada objeto
en el sistema actúa como un modelo para un "agente" abstracto que puede realizar trabajo,
informar y cambiar su estado y "comunicarse" con otros objetos en el sistema sin revelar cómo se
implementan estas funciones. Los procesos, funciones o métodos también se pueden abstraer y,
cuando se abstraen, se necesitan varias técnicas para ampliar la abstracción. El proceso de
abstracción le permite seleccionar características relevantes juntas e identificar comportamientos
comunes para definir nuevos tipos de entidades en el mundo real. La abstracción es clave en el
proceso de análisis y diseño orientado a objetos porque nos permite crear un conjunto de clases
que nos permiten modelar la realidad o el problema que queremos resolver.
Encapsulación:
Significa combinar todos los elementos que pueden considerarse pertenecientes a la misma entidad
en el mismo nivel de abstracción. Esto permite una mayor coherencia entre los componentes del
sistema. Algunos autores confunden este concepto con el principio de ocultamiento, principalmente
porque a menudo se usan juntos.
Modularidad:
La modularidad es una característica que permite dividir una aplicación en partes más pequeñas
(llamadas módulos), cada parte debe ser lo más independiente posible de la aplicación en sí y de
otras partes. Estos módulos se pueden compilar de forma independiente, pero tienen enlaces a
otros módulos. Al igual que la encapsulación, los lenguajes admiten la modularidad de varias
formas.
Principio oculto:
Cada objeto está aislado del mundo exterior y es un módulo natural. Cada tipo de objeto expone
una interfaz a otros objetos que especifica cómo interactúan con los objetos de la clase. El
aislamiento protege las propiedades de un objeto para que no puedan ser modificadas por personas
que no tienen acceso a ellas; solo los métodos internos del propio objeto pueden acceder a su
estado. Esto garantiza que otros objetos no puedan cambiar accidentalmente el estado interno del
objeto, evitando efectos secundarios e interacciones no deseadas. Algunos lenguajes relajan esto al
permitir el acceso directo a los datos internos de un objeto de manera controlada y limitando el
nivel de abstracción. Toda la aplicación se reduce a una colección de objetos o un rompecabezas.
Polimorfismo:
Diferentes comportamientos asociados con diferentes objetos pueden ser iguales; cuando se llama
por este nombre, se usa el comportamiento apropiado para el objeto que se está usando. En otras
palabras, las referencias y las colecciones de objetos pueden contener diferentes tipos de objetos, y
la operación que llama a la referencia producirá el comportamiento correcto para el tipo real del
objeto al que se hace referencia. Si esto sucede en tiempo de ejecución, la última función se
denomina asignación diferida o asignación dinámica. Algunos lenguajes proporcionan funciones
de polimorfismo más estáticas ("tiempo de compilación"), como plantillas de C++ y sobrecarga de
operadores.
Herencia:
Las clases no están aisladas sino que están relacionadas entre sí y forman una jerarquía
taxonómica. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que
pertenecen. La herencia organiza y facilita el polimorfismo y la encapsulación para que los objetos
puedan definirse y crearse como objetos preexistentes de un tipo particular. Pueden compartir (y
expandir) su comportamiento sin repetirlo. Esto normalmente se hace agrupando objetos en clases
y agrupando esos objetos en árboles o cuadrículas que representan comportamientos comunes. Si
un objeto hereda de más de una clase, se dice que tiene herencia múltiple.
Garbage Collection:
La recolección de basura o recolector de basura es una técnica mediante la cual el entorno de los
objetos se encarga de destruir automáticamente y desasignar así la memoria asociada que queda
sin ninguna referencia. Esto significa que los programadores no tienen que preocuparse por
asignar o liberar memoria, porque el entorno la asignará cuando se cree un nuevo objeto y la
desasignará cuando nadie la esté usando. En la mayoría de los lenguajes híbridos que se han
ampliado para soportar el paradigma de la programación orientada a objetos, como C++ u Object
Pascal, esta función no existe y la memoria debe liberarse explícitamente.
CONCLUSION
Se puede decir que los lenguajes de programación orientados a objetos tratan los programas como
colecciones de objetos que se ayudan mutuamente a realizar operaciones, comprender las
entidades que contienen datos como objetos y hacer que los programas sean más fáciles de
escribir, mantener y reutilizar. .
Por otro lado, la POO (Programación Orientada a Objetos) es un gran avance en el campo de la
programación, una de sus principales ventajas es un aumento significativo en la productividad del
programador y robustez del programa, personalmente los lenguajes orientados a objetos.