Programacion Orientada A Abjetos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 6

PROGRAMACION ORIENTADA A ABJETOS

ESTUDIANTE : SALAS GUTIERREZ ROGER LEONEL

PARALELO : “B” TURNO MAÑANA

Programación Orientada a Objetos


Introducción a la programación orientadas a objetos.

La tecnología orientada a objetos se define como una metodología de


diseño de software que modela las características de objetos reales o
abstractos por medio del uso de clases y objetos [1]. Hoy en día, la
orientación a objetos es fundamental en el desarrollo de software, sin
embargo, esta tecnología no es nueva, sus orígenes se remontan a la
década de los años sesenta. De hecho Simula, uno de los lenguajes de
programación orientados a objetos más antiguos, fue desarrollado en 1967.
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 simples y reutilizables de planos de
código (clases) para crear instancias individuales de objetos.

Bases sobre las cuales se fundamenta la programación


orientada a objetos.

Bases sobre las cuales se fundamenta la programación orientada a objetos.


*Abstracción

* Modularidad
*Encapsulamiento
*Jerarquía.
*Polimorfismo
Abstracción.

La abstracción es el proceso en el cual separamos las propiedades más


importantes de un objeto, de las que no lo son. Es decir, por medio de la
abstracción definimos las características esenciales de un objeto del mundo
real, los atributos y comportamientos que lo definen como tal, para
después modelarlo en un objeto de software. En el proceso de abstracción
no debemos preocuparnos por la implementación de cada método o
atributo, solamente debemos definirlo de forma general. Por ejemplo,
supongamos que deseamos escribir un programa para representar el
sistema solar, por medio de la abstracción, podemos ver a éste sistema
como un conjunto de objetos, algunos de estos objetos son los planetas,
que tienen un estado, dado por sus características físicas, digamos, tamaño,
masa, entre otras, estos objetos tendrán también comportamientos : la
translación y la rotación, pueden mencionarse como los más evidentes.
Visualizar las entidades que deseamos trasladar a nuestros programas, en
términos abstractos, resulta de gran utilidad para un diseño optimo de
nuestro software, ya que nos permite comprender más fácilmente la
programación requerida. En la tecnología orientada a objetos la
herramienta principal para soportar la abstracción es la clase. Podemos
definir a una clase como una descripción genérica de un grupo de objetos
que comparten características comunes, dichas características se
especificadas en sus atributos y comportamientos. En otras palabras, una
clase es un molde o modelo en donde se especifican las características que
definen a un objeto de manera general, a partir de una clase pedemos
definir objetos particulares. En programación orientada a objetos se dice
que un objeto es una instancia de la clase, es decir un objeto, es un caso
particular del conjunto de objetos que comparten características similares,
definidas en la clase. Un ejemplo servirá para clarificar estos conceptos.
Definamos a la clase persona, esta clase tendrá ciertos atributos, por
ejemplo edad, sexo y nombre entre otros. Las acciones o comportamientos
que podemos definir para esta clase son, por ejemplo, respirar, caminar,
comer, etcétera. Estas son, para nuestro caso, las características que
definen a nuestra clase persona. Un objeto instanciado de está clase podría
ser Juan Pérez, de sexo masculino y de 35 años de edad, quién se encuentra
caminando. Estos atributos son conocidos formalmente en programación
orientada a objetos como variables de instancia por que contienen el
estado de un objeto particular en un momento dado, en este caso Juan
Pérez. Así mismo, los comportamientos son llamados métodos de instancia
porque nos muestran el comportamiento de un objeto particular de la
clase.
Modularidad.

Dentro de la programación orientada a objetos, la modularidad juega un


papel muy importante. Una vez que hemos representado una situación del
mundo real en un programa, tenemos regularmente como resultado, un
conjunto de objetos de software que constituyen la aplicación. La
modularidad, nos permite poder modificar las características de la clase que
definen a un objeto, de forma independiente de las demás clases en la
aplicación. En otras palabras, si nuestra aplicación puede dividirse en
módulos separados, normalmente clases, y estos módulos pueden
compilarse y modificarse sin afectar a los demás, entonces dicha aplicación
ha sido implementada en un lenguaje de programación que soporta la
modularidad. La tecnología orientada a objetos nos brinda esta propiedad
para hacer uso de ella en el software que desarrollemos.
Encapsulamiento.

También referido como ocultamiento de la información, el


encapsulamiento es la propiedad de la orientación a objetos que nos
permite asegurar que la información de un objeto le es desconocida a los
demás objetos en la aplicación. Es muy frecuente referirse a los objetos de
software como cajas negras, esto se debe principalmente a que no
necesitamos, dentro de la programación orientada a objetos, saber como
esta instrumentado un objeto para que este interactúe con los demás
objetos. Generalmente una clase se define en dos partes, una interfaz por
medio de la cual los objetos que son instanciados de la misma interactúan
con los demás objetos en la aplicación, y la implementación de los
miembros de dicha clase (métodos y atributos). Retomando dos de los
ejemplos anteriores, supongamos que deseamos realizar una aplicación en
donde deben interactuar el objeto Mercedes Benz, instancia de la clase
automóvil y el objeto Juan Pérez, instancia de la clase Persona. Ambos
objetos pueden ser vistos como cajas negras las cuales se comunican por
medio de una interfaz. El objeto Mercedes no sabe como esta
implementado el objeto Juan Pérez y viceversa. Concretamente, el
encapsulamiento permite a un objeto ocultar información al mundo
exterior, o bien restringir el acceso a la misma. Una aplicación orientada a
objetos esta constituida, como mencionamos anteriormente, por módulos.
Estos módulos se implementan mediante clases, las cuales representan,
generalmente, abstracciones de objetos del mundo real. Es por medio del
encapsulamiento que podemos definir los atributos y los métodos de una
clase para que los objetos que se instancian de ésta trabajen como unidades
independientes de los demás objetos con los que interactúan. En otras
palabras, con el encapsulamiento ganamos modularidad, y además
protegemos a los objetos de ser manipulados de forma inadecuada por
objetos externos.
Jerarquía.

Una vez que hemos definido una clase, por ejemplo la clase bicicleta, con
sus atributos y métodos, tal vez necesitemos definir una nueva clase
específica para las bicicletas de carreras. Es obvio que ésta nueva clases
compartirá elementos en común con la clase bicicleta, es decir, la clase
bicicleta de carreras será un subconjunto de la clase bicicleta.
La tecnología orientada a objetos nos permite definir jerarquías entre clases
y jerarquías entre objetos. Las dos jerarquías más importantes que existen
son la jerarquía “es un” que precisa la generalización y especificación entre
clases y la jerarquía “es parte de” en la cual se delimita la agregación de
objetos. Comúnmente, a la jerarquía “es un” se le conoce como herencia.
La herencia simple es la propiedad que nos permite definir una clase nueva
en términos de una clase ya existente. Regresando al ejemplo, si podemos
decir que una bicicleta de carreras “es una” bicicleta, entonces podemos
definir a la clase bicicleta de carreras a partir de la clase bicicleta. Existirán
casos en los cuales se necesite definir una clase a partir de dos o más clases
preexistentes, en este caso estaremos hablando de herencia múltiple. En
cuanto a la jerarquía de agregación, también conocida como inclusión,
podemos decir que se trata del agrupamiento lógico de objetos
relacionados entre si dentro de una clase. Supongamos que tenemos que
definir a la clase automóvil, pero además hemos definido ya a la clase
volante. Si podemos expresar la oración, un volante “es parte de” un
automóvil, entonces podemos instanciar un objeto de la clase volante, para
definir a la clase automóvil. En este caso, se dice que automóvil es una
agregación y volante es un agregado de automóvil.
Polimorfismo

Muchas veces es necesario que un mismo comportamiento o acción se


realice de diferentes maneras, por ejemplo, supongamos que deseamos
implementar a la clase mamíferos, supongamos también que uno de los
métodos que deseamos implementar para esta clase, es el que permita a
tales mamíferos desplazarse de forma natural. Nos encontraremos
entonces con que para algunos mamíferos el desplazamiento se realizará
por medio de caminar, como es en el caso de las personas, para otros el
desplazamiento natural será nadar, como en el caso de los delfines e
inclusive para otros, el desplazamiento se logrará por medio de volar, como
sucede con los murciélagos. En otras palabras, un mismo comportamiento,
en este caso el desplazamiento, puede tomar diferentes formas. Dentro de
la programación orientada a objetos puede modelarse esta situación del
mundo real, en objetos de software, gracias al polimorfismo. El
polimorfismo es la propiedad por la cual una entidad puede tomar
diferentes formas. Generalmente está entidad es una clase, y la forma en
que se consigue que tome diferentes formas es por medio de nombrar a los
métodos de dicha clase con un mismo nombre, pero con diferentes
implementaciones.
EJEMPLO

¿QUE ES UN OBJETO?

• Abstracción funcional

– Hay cosas que sabemos que los coches hacen, pero no cómo lo hacen.
• avanzar
• parar
• girar a la derecha
• girar a la izquierda
• Abstracción de datos

– Un coche tiene además ciertos atributos.


• color
• velocidad

• tamaño
• etc.

También podría gustarte