¿Qué es la Programación Orientada a Objetos?: Página 1
4 Principios de la Programación Orientada a Objetos: Página 5
![](https://assets.isu.pub/document-structure/230602221510-d646570bd070edd50d9ec9de8bf7115e/v1/9ee1a1c792cda8072ac87f9b2976d4bd.jpeg)
Ventajas e inconvenientes del modelo de base de datos orientada a objetos: Página 6
![](https://assets.isu.pub/document-structure/230602221510-d646570bd070edd50d9ec9de8bf7115e/v1/3b380c3589bde0271a5090a3937d6840.jpeg)
¿Qué es la Programación Orientada a Objetos?: Página 1
4 Principios de la Programación Orientada a Objetos: Página 5
Ventajas e inconvenientes del modelo de base de datos orientada a objetos: Página 6
Editor en jefe
JESUS
MALDONADO
Directora creativa
JESUS MALDONADO
Director de arte
JESUS MALDONADO
Dibujos y diseño
JESUS MALDONADO
Fotografía
JESUS
MALDONADO
Equipo web
JESUS MALDONADO
¿Por qué son necesarios los POO? Hay varias razones por las que los POO son preferibles, sin embargo, las siguientes son las más importantes:
•Los POO permiten que las personas comprendan fácilmente el software incluso si no están familiarizados con la implementación.
•Vaya, mejore la legibilidad, la comprensión y la capacidad de mantenimiento del código por un factor de diez.
•Usando OOP, incluso las aplicaciones extremadamente grandes pueden construirse y controlarse fácilmente.
Es por ello que nos dedicaremos a explicar de forma simple y directa sus fundamentos y principios básicos, así como desglosar sus ventajas y desventajas
2 3
JUNIO 2023]
Orientada a Objetos?
Objetos, atributos, mensajes, métodos
Ventajas e inconvenientes
del modelo de base de datos orientada a objetos
La programación orientada a objetos, ha tomado las mejores ideas de la programación estructurada y los ha combinado con varios conceptos nuevos y potentes que incitan a contemplar las tareas de programación desde un nuevo punto de vista. La programación orientada a objetos, permite descomponer mas fácilmente un problema en subgrupos de partes relacionadas del problema. Entonces, utilizando el lenguaje se pueden traducir estos subgrupos a unidades autocontenidas llamadas objetos.
El término Programación Orientada a Objetos (POO), hoy en día ampliamente utilizado, es difícil de definir, ya que no es un concepto nuevo, sino que ha sido el desarrollo de
técnicas de programación desde principios de la década de los setenta, aunque sea en la década de los noventa cuando ha aumentado su difusión, uso y popularidad. No obstante, se puede definir POO como una técnica o estilo de programación que utiliza objetos como bloque esencial de construcción.
La Programación Orientada a Objetos (POO) es un paradigma de programación, es decir, un modelo o un estilo de programación que nos da unas guías sobre cómo trabajar con él. Se basa en el concepto de clases y objetos.
Este tipo de programación se utiliza para estructurar un programa de software en piezas y reutilizables de planos de código para crear instancias individuales de
simples (clases) objetos .
A lo largo de la historia, han ido apareciendo diferentes Lenguajes
paradigmas de programación. secuencialescomo COBOL o procedimentales como Basic o C, se centraban más en la lógica que en los datos. Otros más modernos como Java, C# y Python, utilizan paradigmas para definir los programas, siendo la Programación Orientada a Objetos la más popular.
Con el paradigma de Programación Orientado a Objetos lo que buscamos es dejar de centrarnos en la lógica pura de los programas, para empezar a pensar en objetos, lo que constituye la base de este paradigma. Esto nos ayuda muchísimo en sistemas grandes, ya que en vez de pensar en funciones, pensamos en las relaciones o interacciones de los diferentes componentes del sistema.
Un programador diseña un programa de software organizando piezas de información y comportamientos relacionados en una plantilla llamada clase. Luego, se crean objetos individuales a partir de la plantilla de clase. Todo el programa de software se ejecuta haciendo que varios objetos interactúen entre sí para crear un programa más grande.
Origenes de la programacion orientada a objetos.
1.a Etapa. Lenguajes Ensambladores. La unidad de programación es la instrucción, compuesta de un operador y los operandos. El nivel de abstracción que se aplica es muy bajo.
2.a Etapa. Lenguajes de Programación: Fortran, Algol, Cobol. Los objetos y operaciones del mundo real se podían modelar mediante datos y estructuras de control separadamente.
En esta etapa el diseño del software se enfoca sobre la representación del detalle procedimental y en función del lenguaje elegido. Conceptos como: refinamiento progresivo, modularidad procedimientos y programación estructurada son conceptos básicos que se utilizan en esta etapa. Existe mayor abstracción de datos.
3.a Etapa. Se introducen en esta etapa los conceptos de abstracción y ocultación de la información.
4.a Etapa. A partir de los años setenta se trabaja sobre una nueva clase de lenguajes de simulación y sobre la construcción de prototipos tales como Simula-70 y basado en parte de éste, el Smalltalk. En estos lenguajes, la abstracción de datos tiene una gran importancia y los problemas del mundo real se representan mediante objetos de datos a los cuales se les añade el correspondiente conjunto de operaciones asociados a ellos. Términos como Abstracción de datos, objeto, encapsulación entre otros, son conceptos básicos sobre la que se fundamenta la POO.
La Programación Orientada a objetos permite que el código sea reutilizable, organizado y fácil de mantener. Sigue el principio de desarrollo de software utilizado por muchos programadores DRY (Don’t Repeat Yourself), para evitar duplicar el código y crear de esta manera programas eficientes. Además, evita el acceso no deseado a los datos o la exposición de código propietario mediante la encapsulación y la abstracción.
El primer y más importante concepto de la POO es la distinción entre clase y objeto.
definición de una clase, que es la definición global y genérica de muchos objetos.
Clases, objetos e instancias ¿Cómo se crean los programas orientados a objetos? Resumiendo mucho, consistiría en hacer clases y crear objetos a partir de estas clases. Las clases forman el modelo a partir del que se estructuran los datos y los comportamientos.
Una clase es una plantilla. Define de manera genérica cómo van a ser los objetos de un determinado tipo. Por ejemplo, una clase para representar a animales puede llamarse ‘animal’ y tener una serie de atributos, como ‘nombre’ o ‘edad’ (que normalmente son propiedades), y una serie con los comportamientos que estos pueden tener, como caminar o comer, y que a su vez se implementan como métodos de la clase (funciones). Un ejemplo sencillo de un objeto, como decíamos antes, podría ser un animal. Un animal tiene una edad, por lo que creamos un nuevo atributo de ‘edad’ y, además, puede envejecer, por lo que definimos un nuevo método. Datos y lógica. Esto es lo que se define en muchos programas como la
Con la clase se pueden crear instancias de un objeto, cada uno de ellos con sus atributos definidos de forma independiente. Con esto podríamos crear un gato llamado Paco, con 3 años de edad, y otro animal, este tipo perro y llamado Pancho, con una de edad de 4 años. Los dos están definidos por la clase animal, pero son dos instancias distintas. Por lo tanto, llamar a sus métodos puede tener resultados diferentes. Los dos comparten la lógica, pero cada uno tiene su estado de forma independiente.
Todo esto, son principios y herramientas que pueden ayudar a escribir un código mejor, más limpio y reutilizable.
Objeto: Se trata de un ente abstracto usado en programación que permite separar los diferentes componentes de un programa, simplificando así su elaboración, depuración y posteriores mejoras. Los objetos integran, a diferencia de los métodos procedurales, tanto los procedimientos como las variables y datos referentes al objeto. A los objetos se les otorga ciertas características en la vida real. Cada parte del programa que se desea realizar es tratado como objeto, siendo así estas partes independientes las unas de las otras.Los objetos se componen de 3 partes fundamentales: metodos, eventos y atributos.
Métodos: Son aquellas funciones que permite efectuar el objeto y que nos rinden algún tipo de servicio durante el transcurso del programa. Determinan a su vez como va a responder el objeto cuando recibe un mensaje.
Eventos: Son aquellas acciones mediante las cuales el objeto reconoce que se está interactuando con él. De esta forma el objeto se activa y responde al evento según lo programado en su código.
Atributos: Características que aplican al objeto solo en el caso en que el sea visible en pantalla por el usuario; entonces sus atributos son el aspecto que refleja, tanto en color, tamaño, posición, si está o no habilitado.
Ejemplo de objeto: un coche.
Se considera un coche un objeto, totalmente diferenciado del alquitrán donde está aparcado. Sus atributos son su color, marca, modelo, número de matrícula, número de puertas,... Sus eventos todos aquellas acciones por las cuales si el coche tuviera vida propia reconocería que le estamos dando un uso, como abrir la puerta, girar el volante, embragar, abrir el capot, .... Los métodos son todo aquello que nos ofrece el coche como hacer sonar una bocina cuando tocamos el claxon (evento), llevarnos por la carretera, reducir la velocidad al pisar el freno (evento), ...
Mensajes: Aunque los objetos se han de diferenciar claramente en una aplicación, estos se han de poder comunicar para poder trabajar en conjunto y construir así aplicaciones. Esto se hace posible a través de lo que se denomina paso de mensajes. Cuando un objeto quiere comunicarse con otro lo que hace es enviarle un mensaje con los datos que desea transmitir. En el simil del coche, al apretar el claxon, el objeto claxon envía un mensaje a la bocina indicándole que haga sonar cierto sonido. La potencia de este sistema radica en que el objeto emisor no necesita saber la forma en que el objeto receptor va a realizar la acción. Simplemente este la ejecuta y el emisor se desentiende del como; de hecho ni le importa, solo tiene conocimiento de que se está realizando. Para que todo esto sea posible es necesario una buena programación de los eventos y de los métodos de cada objeto. El conjunto de mensajes a los que un objeto puede responder se denomina protocolo del objeto.
.Autor: Néstor Manuel Marcano González
3
Fuente: https://issuu.com/striker1239/docs/revista
Los conjuntos de datos complejos pueden guardarse y consultarse de forma ra' pida y sencilla.
El uso de las bases de datos orientadas a objetos no esta' muy extendido.
En algunas situaciones, la gran complejidad puede acarrear problemas de rendimiento. Funciona bien con lenguajes de programacio' n orientados a objetos.
Los co' digos de identificacio' n se asignan automa' ticamente a cada objeto.
•La encapsulación
La encapsulación contiene toda la información importante de un objeto dentro del mismo y solo expone la información seleccionada al mundo exterior. Esta propiedad permite asegurar que la información de un objeto esté oculta para el mundo exterior, agrupando en una Clase las características o atributos que cuentan con un acceso privado, y los comportamientos o métodos que presentan un acceso público.
La encapsulación de cada objeto es responsable de su propia información y de su propio estado. La única forma en la que este se puede modificar es mediante los propios métodos del objeto. Por lo tanto, los atributos internos de un objeto deberían ser inaccesibles desde fuera, pudiéndose modificar sólo llamando a las funciones correspondientes. Con esto conseguimos mantener el estado a salvo de usos indebidos o que puedan resultar inesperados.
Usamos de ejemplo un coche para explicar la encapsulación. El coche comparte información pública a través de las luces de freno o intermitentes para indicar los giros (interfaz pública). Por el contrario, tenemos la interfaz interna, que sería el mecanismo propulsor del coche, que está oculto bajo el capó. Cuando se conduce un automóvil es necesario indicar a otros conductores tus movimientos, pero no exponer datos privados sobre el tipo de carburante o la temperatura del motor, ya que son muchos datos, lo que confundiría al resto de conductores.
•La abstracción
La abstracción es cuando el usuario interactúa solo con los atributos y métodos seleccionados de un objeto, utilizando herramientas simplificadas de alto nivel para acceder a un objeto complejo.
En la programación orientada a objetos, los programas suelen ser muy grandes y los objetos se comunican mucho entre sí. El concepto de abstracción facilita el mantenimiento de un código de gran tamaño, donde a lo largo del tiempo pueden surgir diferentes cambios.
Así, la abstracción se basa en usar cosas simples para representar la complejidad. Los objetos y las clases representan código subyacente, ocultando los detalles complejos al usuario. Por consiguiente, supone una extensión de la encapsulación. Siguiendo con el ejemplo del coche, no es necesario que conozcas todos los detalles de cómo funciona el motor para poder conducirlo
La herencia define 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 en una clase de los atributos y comportamientos básicos, se pueden crear clases secundarias, ampliando así la funcionalidad de la clase principal y agregando atributos y comportamientos adicionales.
Volviendo al ejemplo de los animales, se puede usar una sola clase de animal y agregar un atributo de tipo de animal que especifique el tipo de animal. Los diferentes tipos de animales necesitarán diferentes métodos, por ejemplo, las aves deben poder poner huevos y los peces, nadan. Incluso cuando los animales tienen un método en común, como moverse, la implementación necesitaría muchas declaraciones «si» para garantizar el comportamiento de movimiento correcto. Por ejemplo, las ranas saltan, mientras que las serpientes se deslizan. El principio de herencia nos permite solucionar este problema.
El polimorfismo consiste en diseñar objetos para compartir comportamientos, lo que nos permite procesar objetos de diferentes maneras. Es la capacidad de presentar la misma interfaz para diferentes formas subyacentes o tipos de datos. Al utilizar la herencia, los objetos pueden anular los comportamientos principales compartidos, con comportamientos secundarios específicos. El polimorfismo permite que el mismo método ejecute diferentes comportamientos de dos formas: anulación de método y sobrecarga de método.
Alrededor de estos principios de la programación orientada a objetos se construyen muchas cosas. Por ejemplo, los Principios SOLID, o los Patrones de diseño, que son recetas que se aplican a problemas recurrentes que se han encontrado y se repiten en varios proyectos.
¿Qué es una clase y qué es una instancia?
Una clase es por tanto una pantilla implementada en software que describe un conjunto de objetos con atributos y comportamiento similares. Una instancia u objeto de una clase es una representación concreta y específica de una clase y que reside en la memoria del ordenador.
Dato
Un dato es cualquier elemento que necesitemos procesar en un programa. Los programas trabajan con datos de entrada, los cuales son manipulados mediante los procesos informáticos para producir unos datos de salida.
El dato está muy ligado a otro concepto que necesitamos conocer que es el de "información". Seguro que has oído comentar que la informática es el tratamiento automatizado de la información. Entonces ¿Qué es información y qué es dato? Para entender esta diferencia podemos acudir a algunos ejemplos.
•Ejemplos de datos: sería el 0, 12, "sHadksdje2so", "madrid", "lunes" y cosas así. Estos datos no sabemos a lo que se refieren, simplemente son números o cadenas de un valor determinado.
•Ejemplos de información: 0 (el número de Ferraris que tengo en el garaje), 12 (los días del mes), "madrid" (capital de España)...
Los datos se convierten en información cuando les damos un contexto. El número 0 puede ser cualquier cosa, pero ya cambia si te digo que faltan 0 días para mi cumpleaños ¿no? en ese caso el 0 es una información, sobre la cual decides que me tendrás que felicitar ya mismo!
“El que pone el corazo' n en lo que hace consigue recursos donde los indolentes se dan por vencidos”
Clases, instancia, tipos de datos Qué son los tipos de datos
Un tipo de datos es un conjunto de valoíes que tienen una caíacteíística en común y que íesponden a unas opeíaciones deteíminadas.
En un sistema infoímático tíabajamos con datos y los lenguajes de píogíamación necesitan sabeí cuál es el tipo de ese dato, paía sabeí los valoíes posibles que podíían teneí y las cosas que se peímiten haceí con ellos. Poí ejemplo, 2 es un númeío enteío. Lo podíé sumaí, íestaí y haceí otías opeíaciones matemáticas con otíos númeíos. "madíid" es una cadena de caíacteíes, que la podíé compaíaí con otías cadenas, concatenaí otías cadenas, etc. Dependiendo del lenguaje de píogíamación puede tíabajaí con unos tipos u otíos. Poí ejemplo hay lenguajes que distinguen entíe númeíos enteíos y númeíos decimales y otíos lenguajes de píogíamación en los que solamente se tiene el tipo de datos numéíico, englobando tanto decimales como enteíos en el mismo saco.
Como hemos dicho, todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple carácter, tal como "x", una cadena como "hola", un valor entero tal como 35 o un valor numérico con coma flotante como "0.55". En todo caso, el tipo de dato nos indica el conjunto de valores que podría llegar a tomar una variable de un tipo en particular. En todos los lenguajes de programación encontramos una clasificación de tipos de datos siempre presente, los tipos de datos simples y los tipos de datos compuestos.
“El que pone el corazo' n en lo que hace consigue recursos donde los indolentes se dan por vencidos”
Polimorfismo, compatilidad con lenguaje de programación, creación de versiones
Definición: polimorfismo (en POO) es la capacidad que tienen ciertos lenguajes para hacer que, al enviar el mismo mensaje (o, en otras palabras, invocar al mismo método) desde distintos objetos, cada uno de esos objetos pueda responder a ese mensaje (o a esa invocación) de forma distinta.
Se puede clasificar el polimorfismo en dos grandes clases:
•Polimorfismo dinámico (o polimorfismo paramétrico) es aquel en el que el código no incluye ningún tipo de especificación sobre el tipo de datos sobre el que se trabaja. Así, puede ser utilizado a todo tipo de datos compatible.
•Polimorfismo estático (o polimorfismo ad hoc) es aquél en el que los tipos a los que se aplica el polimorfismo deben ser explícitos y declarados uno por uno antes de poder ser utilizados.
El polimorfismo dinámico unido a la herencia es lo que en ocasiones se conoce como programación genérica.
También se clasifica en herencia por redefinición de métodos abstractos y por método sobrecargado. El segundo hace referencia al mismo método con diferentes parámetros.
Otra clasificación agrupa los polimorfismo en dos tipos: Ad-Hoc que incluye a su vez sobrecarga de operadores y coerción, Universal (inclusión o controlado por la herencia, paramétrico o genericidad).
Compatibilidad con lenguajes de píogíamación
Los lenguajes de píogíamación que utiliza una base de datos oíientada a objetos utilizan heííamientas de diseño paía el modelado de objetos y codificación. En la actualidad, existen vaíios lenguajes de píogíamación: C++, Java, Smalltalk, LISP.
a. Extendeí el lenguaje a tíavés de las llamadas expíesiones de consulta, que son paíecidas a las sentencias SQL y pueden seí usadas paía extíaeí y píocesaí convenientemente bases de datos íelacionales.
b. b. Un lenguaje de píogíamación oíientado a objetos que tíabaje en foíma diíecta con la base de datos a tíavés de un Modelo de Datos peísistente.
La deteíminación de veísión peímite íastíeaí los cambios de un objeto. Las aplicaciones de base de datos oíientadas a objetos íequieíen de vaíias veísiones del mismo objeto. Si el sistema está opeíativo, y se íequieíe actualizaí
¡En esta revista se explica con detalle el paradigma de la programación orientada a objetos y sus términos asociados tales como “clase”, “objeto”, “herencia”, “encapsula c ión”, “polimorfismo”, “modulariza ción” etc.