Fundamentos de la Programación Orientada a Objetos (FPOO)
Por: Felipe Ignacio Gómez Benavides
Ingeniero en Informática
Una pequeña introducción para empezar a familiarizarnos con los conceptos, ¿Qué es la programación orientada a objetos? Según Wikipedia es un paradigma de programación que usa objetos y sus interacciones, para diseñar aplicaciones y programas informáticos. Pero por qué es importante. Porque nos permite escribir líneas de código menos propensas a errores además de poder reutilizar el mismo para nuestra propia conveniencia.
Fundamentos de la POO:
La programación orientada a objetos tiene como conceptos fundamentales los conceptos de objeto y clase.
Un objeto es un ente que posee sus características propias (propiedades) y un conjunto de acciones que es capaz de realizar (métodos).
Una clase es un ente abstracto que permite declarar las propiedades y los métodos de objetos similares.
Un lenguaje de programación orientado a objetos debe permitir al programador realizar definiciones de clases, y construir objetos a partir de esas clases.
La POO es un paradigma de la programación de computadores; esto hace referencia al conjunto de teorías, estándares, modelos y métodos que permiten organizar el conocimiento, proporcionando un medio bien definido para visualizar el dominio del problema e implementar en un lenguaje de programación la solución a ese problema.
Esta manera de representar los problemas nuestros problemas cotidianos tiene características propias las cuales detallo a continuación:
• Encapsulación
• Herencia
• Polimorfismo
Encapsulación: se refiera a la capacidad de unir los datos y para poder manipularlos, estos no necesariamente están a la vista de todo el mundo. Básicamente lo que se hace es ocultar cierta parte de la información para exponer solamente lo más importante o con lo que el usuario interactuara por ejemplo, cuando yo prendo la tele lo que veo es la pantalla ya sea ver una película, jugar algún juego de video o simplemente ver tu programa de televisión favorito, en este caso a mi como usuario no me interesa ver como hace la televisión para mostrarme las imágenes lo que a mí me importa es que realice ese procedimiento, la TV tiene una especie de encapsulamiento ya que muestra solo lo realmente importante y no como lo realiza.
Herencia: se refiere a la capacidad de crear nuevas clases que estén basadas en otras de manera que la nueva herede todas o algunas características de la clase que ha heredado, pudiendo incluso cambiar el comportamiento de algunas de características propias de la clase base, por ejemplo, la clase mamífero seria nuestra clase base, de el podemos desprender dos sub-clases que podrían ser gato y perro, ambos heredan características propias tales como patas cola garras, etc. sin embargo, no son el mismo tipo y esas son las características que pueden variar en cada tipo de representación que se haga.
Polimorfismo: es la capacidad de implementar de forma peculiar algunas de las características que tienen las clases, de forma que cuando necesitemos usarlas no nos preocupe la implementación interna que posean, lo que realmente nos interesa o nos debe importar es que podemos usar esas características, por ejemplo, tenemos clase Animal de ella desprendo las clases mamíferos y aves. Yo puedo darle una instrucción a ambas que sea mover, es el mismo mensaje para ambas, sin embargo, ¿lo harán de igual manera? A eso se refiere el polimorfismo a ocultar el estado de los objetos.
Pero... ¿Qué son los objetos?
Un Objeto es una entidad de la vida real, podemos mirar a nuestro alrededor y darnos cuenta que muchos de los lugares que nos parecen cotidianos pueden ser objeto de análisis y en los cuales podemos determinar entidades clases atributos y ver sus relaciones. Para aclarar más el punto puedo decir que los objetos poseen estados, comportamientos e identidades.
Clases
Una clase es una definición abstracta de un objeto, define la estructura y el comportamiento compartidos por los objetos. Sirven como modelos para la creación de objetos.
De cierta forma, las clases se pueden ver como plantillas, moldes o esquemas de un conjunto de entidades de la cual se crearan instancias (objetos)
Métodos
Los métodos nos indican el comportamiento o estado que un objeto tiene para realizar y el conjunto de métodos nos indican la acción que va a realizar como por ejemplo el objeto balón tiene distintas acciones como rodar, moverse, botar.
Una ventaja de la POO frente al paradigma algorítmico es la facilidad que brinda a través de sus herramientas, de concebir, analizar, modelar, diseñar e implementar el mundo real de manera fiel a como se presenta en la realidad; el paso que hay desde la concepción y asimilación del problema hasta la implementación del mismo es un proceso que se hace de manera casi natural. Esto porque el mundo está lleno de objetos reales, los cuales se puede representar como tales en una solución computarizada. Las clases se relacionan entre sí, de varias maneras diferentes, en este apartado se destacan, la asociación, agregación, composición y especialización / generalización.
Diagramas de casos de uso: Un Diagrama de Casos de Uso muestra la relación entre los actores y los casos de uso del sistema
Diagrama de Secuencia: Un diagrama de Secuencia muestra una interacción ordenada según la secuencia temporal de eventos
Diagrama de Colaboración: Un Diagrama de Colaboración muestra una interacción organizada basándose en los objetos que toman parte en la interacción y los enlaces entre los mismos (en cuanto a la interacción se refiere).
Diagramas de Estado: Un Diagrama de Estados muestra la secuencia de estados por los que pasa bien un caso de uso, bien un objeto a lo largo de su vida, o bien todo el sistema.
Diagramas de clase: Un diagrama de clases sirve para visualizar las relaciones entre las clases que involucran el sistema, las cuales pueden ser asociativas, de herencia, de uso y de consentimiento.
Concluyendo el tema cabe la pregunta ¿pero por qué POO?, porque es más parecido al mundo real ya que nos permite realizar representaciones más complejas excelentes para negocios de clientes o por qué no, para nuestros propios negocios además de que dos grandes plataformas ya han adoptado este paradigma como son Java y .NET
Lo cree para mi Universidad pero si a alguien de Taringa! le puede servir yo feliz
Por: Felipe Ignacio Gómez Benavides
Ingeniero en Informática
Una pequeña introducción para empezar a familiarizarnos con los conceptos, ¿Qué es la programación orientada a objetos? Según Wikipedia es un paradigma de programación que usa objetos y sus interacciones, para diseñar aplicaciones y programas informáticos. Pero por qué es importante. Porque nos permite escribir líneas de código menos propensas a errores además de poder reutilizar el mismo para nuestra propia conveniencia.
Fundamentos de la POO:
La programación orientada a objetos tiene como conceptos fundamentales los conceptos de objeto y clase.
Un objeto es un ente que posee sus características propias (propiedades) y un conjunto de acciones que es capaz de realizar (métodos).
Una clase es un ente abstracto que permite declarar las propiedades y los métodos de objetos similares.
Un lenguaje de programación orientado a objetos debe permitir al programador realizar definiciones de clases, y construir objetos a partir de esas clases.
La POO es un paradigma de la programación de computadores; esto hace referencia al conjunto de teorías, estándares, modelos y métodos que permiten organizar el conocimiento, proporcionando un medio bien definido para visualizar el dominio del problema e implementar en un lenguaje de programación la solución a ese problema.
Esta manera de representar los problemas nuestros problemas cotidianos tiene características propias las cuales detallo a continuación:
• Encapsulación
• Herencia
• Polimorfismo
Encapsulación: se refiera a la capacidad de unir los datos y para poder manipularlos, estos no necesariamente están a la vista de todo el mundo. Básicamente lo que se hace es ocultar cierta parte de la información para exponer solamente lo más importante o con lo que el usuario interactuara por ejemplo, cuando yo prendo la tele lo que veo es la pantalla ya sea ver una película, jugar algún juego de video o simplemente ver tu programa de televisión favorito, en este caso a mi como usuario no me interesa ver como hace la televisión para mostrarme las imágenes lo que a mí me importa es que realice ese procedimiento, la TV tiene una especie de encapsulamiento ya que muestra solo lo realmente importante y no como lo realiza.
Herencia: se refiere a la capacidad de crear nuevas clases que estén basadas en otras de manera que la nueva herede todas o algunas características de la clase que ha heredado, pudiendo incluso cambiar el comportamiento de algunas de características propias de la clase base, por ejemplo, la clase mamífero seria nuestra clase base, de el podemos desprender dos sub-clases que podrían ser gato y perro, ambos heredan características propias tales como patas cola garras, etc. sin embargo, no son el mismo tipo y esas son las características que pueden variar en cada tipo de representación que se haga.
Polimorfismo: es la capacidad de implementar de forma peculiar algunas de las características que tienen las clases, de forma que cuando necesitemos usarlas no nos preocupe la implementación interna que posean, lo que realmente nos interesa o nos debe importar es que podemos usar esas características, por ejemplo, tenemos clase Animal de ella desprendo las clases mamíferos y aves. Yo puedo darle una instrucción a ambas que sea mover, es el mismo mensaje para ambas, sin embargo, ¿lo harán de igual manera? A eso se refiere el polimorfismo a ocultar el estado de los objetos.
Pero... ¿Qué son los objetos?
Un Objeto es una entidad de la vida real, podemos mirar a nuestro alrededor y darnos cuenta que muchos de los lugares que nos parecen cotidianos pueden ser objeto de análisis y en los cuales podemos determinar entidades clases atributos y ver sus relaciones. Para aclarar más el punto puedo decir que los objetos poseen estados, comportamientos e identidades.
Clases
Una clase es una definición abstracta de un objeto, define la estructura y el comportamiento compartidos por los objetos. Sirven como modelos para la creación de objetos.
De cierta forma, las clases se pueden ver como plantillas, moldes o esquemas de un conjunto de entidades de la cual se crearan instancias (objetos)
Métodos
Los métodos nos indican el comportamiento o estado que un objeto tiene para realizar y el conjunto de métodos nos indican la acción que va a realizar como por ejemplo el objeto balón tiene distintas acciones como rodar, moverse, botar.
Una ventaja de la POO frente al paradigma algorítmico es la facilidad que brinda a través de sus herramientas, de concebir, analizar, modelar, diseñar e implementar el mundo real de manera fiel a como se presenta en la realidad; el paso que hay desde la concepción y asimilación del problema hasta la implementación del mismo es un proceso que se hace de manera casi natural. Esto porque el mundo está lleno de objetos reales, los cuales se puede representar como tales en una solución computarizada. Las clases se relacionan entre sí, de varias maneras diferentes, en este apartado se destacan, la asociación, agregación, composición y especialización / generalización.
Diagramas de casos de uso: Un Diagrama de Casos de Uso muestra la relación entre los actores y los casos de uso del sistema
Diagrama de Secuencia: Un diagrama de Secuencia muestra una interacción ordenada según la secuencia temporal de eventos
Diagrama de Colaboración: Un Diagrama de Colaboración muestra una interacción organizada basándose en los objetos que toman parte en la interacción y los enlaces entre los mismos (en cuanto a la interacción se refiere).
Diagramas de Estado: Un Diagrama de Estados muestra la secuencia de estados por los que pasa bien un caso de uso, bien un objeto a lo largo de su vida, o bien todo el sistema.
Diagramas de clase: Un diagrama de clases sirve para visualizar las relaciones entre las clases que involucran el sistema, las cuales pueden ser asociativas, de herencia, de uso y de consentimiento.
Concluyendo el tema cabe la pregunta ¿pero por qué POO?, porque es más parecido al mundo real ya que nos permite realizar representaciones más complejas excelentes para negocios de clientes o por qué no, para nuestros propios negocios además de que dos grandes plataformas ya han adoptado este paradigma como son Java y .NET
Lo cree para mi Universidad pero si a alguien de Taringa! le puede servir yo feliz