Please enable JavaScript.
Coggle requires JavaScript to display documents.
Lenguajes de Programación Orientado a Objetos - Coggle Diagram
Lenguajes de Programación Orientado a Objetos
Programación Orientada a Objetos(OOP)
Es un modelo de programacion informatica que organiza el diseño de software en torno a datos u objetos en lugar de funciones y logica.
Esta se centra en los objetos que los desarrolladores quieren manipular en lugar de enfocarse en la lógica necesaria para manipularlos
Este enfoque de programación es adecuado para programas que son grandes, complejos y se actualizan o mantienen activamente
La organización también permite que el método sea beneficioso para el desarrollo colaborativo, dónde los proyectos se dividen en grupos.
Objetos
: Se puede definir como un campo de datos que tiene atributos y comportamientos únicos
Atributos:
>
Nombre
>
Color
>
Raza
>
Hambriento
Metodos:
>
Ladrando
>
Oliendo
>
Buscando
>
Moviendo la cola
Ejemplo:
Los ejemplos de un objeto pueden variar desde entidades físicas, como un ser humano que se describe por propiedades como nombre y dirección, hasta pequeños programas informáticos como widgets
Una vez conocido el objeto, se etiqueta con una clase de objetos que contiene cualquier sentencia lógica que pueda manipularlo
Cada secuencia lógica se conoce como
método
Los objetos pueden comunicarse con interfaces bien definidas llamadas mensajes
PASOS BASICOS EN POO
Primer paso
Recopilar todos los objetos que un programador desea manipular e identificar como se relacionan entre si,un ejercicio que a menudo se conoce como
modelado de datos
Principios de la Programación Orientada a Objetos
Abstracción
Es cuando el usuario interactúa solo con l0os atributos y métodos seleccionados de un objeto, utilizando herramientas simplificadas de alto nivel para acceder a un objeto complejo
Denota las características esenciales de un objeto que lo distingue de los demás
Visión simplificada de cierta parte de la realidad
La elección de los detalles esenciales es subjetiva
La clave de la POO esta en abstraer los métodos y los datos comunes a un conjunto de objetos y almacenarlos en una clase
Encapsulamiento
Reunir todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción y solo expone la información seleccionada al mundo exterior. Esto aumenta la cohesión de los componentes del sistema..
Permite tratar a un objeto como una caja negra
Permite que se modifique la implementación interna de un objeto sin afectar a los clientes que lo utilizan
Modularidad
Propiedad que permite subdividir una aplicación en partes mas pequeñas(llamadas módulos),cada una de las cuales debe ser tan independiente como sea posible de la aplicación en si y de las restantes partes. Estos módulos se pueden compilar por separado, pero tienen conexiones con otros módulos.
Fragmentar un programa en componentes individuales reduce su complejidad en algún grado
Propiedad que tiene el sistema que ha sido descompuesto en un conjunto de módulos coherentes y débilmente acoplados
Polimorfismo
Consiste en diseñar objetos para compartir comportamientos, lo que permite procesar objetos de diferentes maneras. Es la capacidad de presentar la misma interfaz para diferentes formas subyacentes o tipos de datos. El polimorfismo permite que el mismo método ejecute diferentes comportamientos de dos formas: anulación de métodos y sobrecarga de método
Dinámico
Es el que el código no incluye ningún tipo de especificación sobre el tipo de datos
Estático
Es el que los tipos a los que se aplica el polimorfismo deben ser explicitados y declarados uno por uno antes de ser utilizados
Principio de Ocultación
Cada objeto es aislado del exterior, es un modulo natural y cada tipo de objeto expone una interfaz a otros objetos que especifica como pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas, solamente los propios métodos internos del objeto pueden acceder a su estado.
Consiste en separar el aspecto externo del objeto, al cual pueden acceder otros objetos, del aspecto interno del mismo, que es inaccesible para los demás
Recolección de Basura
Es la técnica por la cual el entorno de objetos se encarga de destruir automáticamente y por tanto desvincular la memoria asociada, los objetos que hayan quedado sin ninguna referencia a ellos.
El programador no debe preocuparse por la asignación o liberación de memoria, ya que el entorno se encargara de eso.
En algunos lenguajes híbridos como C++ u Object Pascal, esta característica no existe y la memoria debe desasignarse expresamente.
Herencia
Define las relaciones jerárquicas entre clases de forma que atributos y métodos comunes puedan ser reutilizados. Las clases principales extienden atributos y comportamientos a las clases secundarias. A través de la definición de una clase de atributos y comportamientos básicos se pueden crear clases secundarias ampliando así la funcionalidad de la clase principal y agregando atributos y comportamientos adicionales
Las clases por encima en la jerarquía a una clase dada, se denominan
superclases
o
clase base
Las clases por debajo en la jerarquía a una clase dada, se denominan
subclases
Una clase puede ser superclase y subclase al mismo tiempo
Tipos de Herencia
>
Simple
>
Múltiple
Ventajas de la Programacion Orientada a Objetos
Por modularidad
>
Proporciona separación de tareas
>
Mejora de la capacidad de mantenimiento del software, ya que parte del sistema se puede actualizar en caso de problemas sin necesidad de realizar cambios a gran escala
Por extensibilidad
>
Los objetos se pueden ampliar para incluir nuevos atributos y comportamientos
>
Los objetos que se utilizan en la Programación Orientada a Objetos pueden ser diseñados y escritos por un programador y adoptados por otro.
Por reutilización
>
Una vez que un objeto esta escrito y probado, se puede insertar fácilmente en otro programa.
>
El costo de desarrollo es menor debido a la reutilización de software alrededor de todo el proyecto.
>
El software adquiere mayor calidad debido a que permite que se utilice mas tiempo y recursos en la verificación del software
Desventajas de la Programacion Orientada a Objetos
>
Limitaciones del programador: Es posible que el programador desconozca algunas características del paradigma estructurado.
>
No hay una forma única de resolver los problemas. Esto puede llevar a que diferentes interpretaciones de la solución planteada emerjan
>
Se requiere una documentación amplia para determinar la solución planteada
Programas hechos con Java
Android
: Un OS de código abierto desarrollado por Google
Minecraft
: Consiste en un juego en el que puedes armar y crear tu propio mundo a partir de bosques y distintos elementos prediseñados
Gmail
: Es un servicio de email online al que podemos acceder con nuestra cuenta de Google o creando una nueva
Opera mini
: Es un navegador para celulares uqe ha permitido darles una segunda oportunidad a aquellos dispositivos que quedaron obsoletos
Lenguajes Orientados a Objetos
Ada
C++
C#
VB.NET
Delphi
Eiffel
Java
Objetive-C
Ocalm
PHP
Python
Ruby