programación de aplicaciones

4
Programación de Aplicaciones Omar Emmanuel Lara Juárez Edgar Eduardo Renovato contreras 06/07/2015

Upload: edward-contreras

Post on 11-Aug-2015

61 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programación de aplicaciones

Programación de Aplicaciones

Omar Emmanuel Lara Juárez

Edgar Eduardo Renovato contreras

06/07/2015

Page 2: Programación de aplicaciones

Polimorfismo

El concepto de polimorfismo es en realidad algo muy básico. Realmente, cuando

estamos aprendiendo Programación Orientada a Objetos.

Definición: El polimorfismo es una relajación del sistema de tipos, de tal manera

que una referencia a una clase (atributo, parámetro o declaración local o elemento

de un vector) acepta direcciones de objetos de dicha clase y de sus clases

derivadas (hijas, nietas).

Herencia y las clasificaciones en Programación Orientada a Objetos

Vemos que el polimorfismo y la herencia son dos conceptos estrechamente

ligados. Conseguimos implementar polimorfismo en jerarquías de clasificación que

se dan a través de la herencia.

Por qué el sistema de tipos es importante en Polimorfismo Para entender la

importancia del tipado de datos, conveniente entender cómo es un lenguaje

fuertemente tipado, como es el caso de Java o C. En estos lenguajes, cuando

defino una variable, siempre tengo que decir el tipo de datos que va a contener

esta variable.

Por ejemplo:

int miNumero;

Así le indicamos que la variable declarada "miNumero" va a contener siempre un

entero. Podrás asignarle diversos valores, pero siempre deben de ser números

enteros. De lo contrario el compilador te lanzará un mensaje de error y no te

permitirá compilar el programa que has realizado.

Por ejemplo, si en Java defino la clase "Largometraje" (una cinta que se puede

exhibir en la televisión o el cine), cuando creo objetos de la clase "Largometraje"

debo declarar variables en las que indique el tipo de objeto que va a contener.

Page 3: Programación de aplicaciones

Largometraje miLargo = new Largometraje("Lo que el viento se llevó"); Esa

variable "miLargo", por declaración tendrá una referencia a un objeto de la clase

"Largometraje".

Polimorfismo en objetos

Una función cuyo parámetro se haya declarado de una clase, sólo te aceptará

recibir objetos de esa clase. Un array que se ha declarado que es de elementos de

una clase determinada, solo aceptará que rellenemos sus casillas con objetos de

esa clase declarada.

Vehículo[] misVehiculos = new Vehiculo[3];

Esa variable misVehiculos es un array y en ella he declarado que el contenido de

las casillas serán objetos de la clase "Vehiculo".

Para qué nos sirve en la práctica el polimorfismo

Volvamos a la clase "Largometraje" y ahora pensemos en la clase "Cine". En un

cine se reproducen largometrajes. Puedes, no obstante, tener varios tipos de

largometrajes, como películas o documentales, etc.

Si has entendido el sistema de tipos, y sin entrar todavía en polimorfismo, debido a

que los métodos declaran los tipos de los parámetros que recibes, tendrás que

hacer algo como esto:

reproducir(Película peliculaParaReproducir)

Pero si luego tienes que reproducir documentales, tendrás que declarar:

reproducir(Documental documentaParaReproducir)

Gracias al polimorfismo, cuando declaro la función estacionar() puedo decir que

recibe como parámetro un objeto de la clase "Vehiculo" y el compilador me

aceptará no solamente vehículos genéricos, sino todos aquellos objetos que

hayamos creado.

Page 4: Programación de aplicaciones

Conclusión

El polimorfismo es muy útil para la programación por eso para usar el polimorfismo

y técnicas orientadas a objetos en los programas hay que ampliar la visión de la

programación para incluir no solo miembros y mensajes entre clases individuales

sino también sus puntos en común y las relaciones entre ellas.

Es importante para la elaboración de código que sea factible para el mejor

funcionamiento del programa, la declaración de variables con valores que se

puedan manipular en el código para su función.

Los lenguajes tipados incrementan el tiempo de desarrollo y son más difíciles de

aprender, una ventaja de estos lenguajes es que son compilados, es decir que se

traducen directamente a lenguaje de máquina y esto al manejar grandes

cantidades de datos hace diferencia, es mucho más rápido en la maquina seguir el

proceso que debe realizar. Los lenguajes no tipados, o débilmente tipados, al

definir una variable no requieren de que se les asigne un tipo de variable, es más

pueden cambiar el tipo de variable en cualquier momento, creo que los casos más

conocido se presentan en un lenguaje muy popular. PHP, este lenguaje, no es

tipado, y no hay ningún problema en que una variable sea una Array y luego se

convierta en un entero o unString.