PROGRAMACION ORIENTADA A OBJETOS

6
Que es P.O.O? La Programación Orientada a Objetos (POO u OOP según sus siglas en inglés) es un paradigma de programación que usa objetos y sus interacciones para diseñar aplicaciones y programas de computadora. Está basado en varias técnicas, clase, objeto, método, herencia, modularidad, polimorfismo, y encapsulamiento. Su uso se popularizó a principios de la década de 1990. Actualmente son muchos los lenguajes de programación que soportan la orientación a objetos. La programación Orientada a objetos (POO) es una forma especial de programar, más cercana a como expresaríamos las cosas en la vida real que otros tipos de programación. Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para escribir nuestros programas en términos de objetos, propiedades, métodos y otras cosas que veremos rápidamente para aclarar conceptos y dar una pequeña base que permita soltarnos un poco con este tipo de programación. Abstracción: La abstracción consiste en aislar un elemento de su contexto o del resto de los elementos que lo acompañan. En programación, el término se refiere al énfasis en el "¿qué hace?" más que en el "¿cómo lo hace?" (Característica de caja negra). El común denominador en la evolución de los lenguajes de programación, desde los clásicos o imperativos hasta los orientados a objetos, ha sido el nivel de abstracción del que cada uno de ellos hace uso.

Transcript of PROGRAMACION ORIENTADA A OBJETOS

Page 1: PROGRAMACION ORIENTADA A OBJETOS

Que es P.O.O?

La Programación Orientada a Objetos (POO u OOP según sus siglas en inglés) es

un paradigma de programación que usa objetos y sus interacciones para diseñar

aplicaciones y programas de computadora. Está basado en varias técnicas, clase,

objeto, método, herencia, modularidad, polimorfismo, y encapsulamiento. Su uso

se popularizó a principios de la década de 1990. Actualmente son muchos los

lenguajes de programación que soportan la orientación a objetos.

La programación Orientada a objetos (POO) es una forma especial de programar,

más cercana a como expresaríamos las cosas en la vida real que otros tipos de

programación.

Con la POO tenemos que aprender a pensar las cosas de una manera distinta,

para escribir nuestros programas en términos de objetos, propiedades, métodos y

otras cosas que veremos rápidamente para aclarar conceptos y dar una pequeña

base que permita soltarnos un poco con este tipo de programación.

Abstracción:

La abstracción consiste en aislar un elemento de su contexto o del resto de los

elementos que lo acompañan. En programación, el término se refiere al énfasis en

el "¿qué hace?" más que en el "¿cómo lo hace?" (Característica de caja negra). El

común denominador en la evolución de los lenguajes de programación, desde los

clásicos o imperativos hasta los orientados a objetos, ha sido el nivel de

abstracción del que cada uno de ellos hace uso.

Page 2: PROGRAMACION ORIENTADA A OBJETOS

Característica de P.O.O

Objetos:

Se puede decir que un objeto es todo aquello que pueda ser identificable dentro

de una especificación de requerimientos o problema y tenga las siguientes

características:

Tenga estados definibles (abierto, cerrado).

Posea comportamientos asociados (puede correr, saltar, volar, etc). Éstos son

denominados métodos.

Son capaces de interactuar/comunicarse con otros objetos por medio de sus

métodos.

Una característica propia de este paradigma, es la transparencia entre la

implementación a nivel de código y la funcionalidad que provee un método (no me

interesa cómo lo haga, sólo que lo haga).

Clases:

Las clases son plantillas que agrupan comportamiento (métodos) y estados

(atributos) de los futuros objetos.

Los objetos son instancias de una clase. Usando el símil “variable – tipo” de la

programación estructurada, se entiendo que un objeto es una variable que tiene el

comportamiento y estados del tipo (objeto).

Ejmplo:

Page 3: PROGRAMACION ORIENTADA A OBJETOS

Herencia

Es la propiedad que permite a los objetos ser construidos a partir de otros objetos, es decir: la capacidad de un objeto para utilizar las estructuras de datos y los métodos previstos en antepasados o ascendientes, siendo su objetivo final la reutilización de código anteriormente desarrollado.

Los objetos con propiedades comunes (atributos y métodos) se clasifican en una clase. De igual modo las clases con propiedades y funciones comunes se agrupan en una superclase. Las clases que se derivan de una superclase son subclases.

Ejemplo:

Page 4: PROGRAMACION ORIENTADA A OBJETOS

Encapsulamiento

También conocido como ocultación, permite cambiar la visibilidad de los elementos miembros de la clase, tanto para atributos como para métodos. De forma que los elementos miembro de la clase pueden tener tres niveles así:

Privados:

Son los elementos que solo pueden ser accedidos directamente por la clase que los define.

En java la palabra reservada es private.

Protegidos:

Los elementos protegidos son aquellos que pueden ser accedidos por las clases descendientes o clases que compartan el mismo espacio físico "paquete"

En java la palabra reservada es protected

Públicos:

Estos son los elementos en los cuales no hay restricción alguna y pueden ser accedidos por cualquier clase y objeto del modelo.

En java la palabra reservada es public.

El encapsulamiento es interno y externo.

Para el interno manejamos los elementos privados y los protegidos.

Para el externo manejamos los elementos públicos.

Una analogía propuesta para entender el concepto:

Piense en las cosas personales que no se pueden contar y eso debe ser privado nadie lo puede conocer.

Piense en las cosas que en la familia se sabe pero no se puede enterar nadie fuera de la familia esto debe ser protegido.

Lo que es de mostrar es todo lo bueno eso es lo público.

Page 5: PROGRAMACION ORIENTADA A OBJETOS

Polimorfismo

En programación orientada a objetos se denomina polimorfismo a la capacidad que tienen los objetos de una clase de responder al mismo mensaje o evento en función de los parámetros utilizados durante su invocación. Un objeto polimórfico es una entidad que puede contener valores de diferentes tipos durante la ejecución del programa.

Dicho de otra forma, el polimorfismo consiste en conseguir que un objeto de una clase se comporte como un objeto de cualquiera de sus subclases, dependiendo de la forma de llamar a los métodos de dicha clase o subclases. Una forma de conseguir objetos polimórficos es mediante el uso de punteros a la superclase.

Ejemplo:

En general nos sirve para programar objetos con características comunes y que todos estos compartan la misma superclase en una jerarquía de clases, como si todas fueran objetos de la superclase. Esto nos simplifica la programación.