Developer's Diary

4 enero, 2011

Curso C# – Creacion de clases I

De nuevo volvemos a la carga con nuestro Curso en C#. En esta ocasión vamos a hablar de la creación de clases dentro de nuestro lenguaje favorito de programación.

La mayoría de personas que han llegado hasta aquí saben perfectamente lo que es la programación orientada a objetos o al menos la dominan en cierta parte, pero vamos a comenzar desde el principio para los más novatos.

La programación orientada a objetos es una metodología de programación que comienza a hacerse popular en los 90.

Anteriormente, el tipo de programación que se usaba era la estructurada. Mientras que la programación estructurada, es un tipo de programación que sigue un hilo de ejecución y solo posee métodos y funciones. En la programación orientada a objetos, la aplicación está formada por muchas porciones que interactúan entre sí.

Una manera de poder interpretarlo sería como un ser monocelular y uno multicelular.

La programación estructurada, sería el organismo monocelular, solo existe una unidad, que es nuestro programa y dentro de ella, encontramos nuestros métodos, funciones, variables. Que podrían ser los organulos de ese organismo, que le permiten desplazarse. Este organismo o aplicación, solo puede interactuar con otros organismos del exterior ya sean unicelulares o policelulares.

En una aplicación orientada a objetos es diferente, existen muchas celulas, que serían nuestros objetos. Dentro de cada una de ellas, podemos encontrar organulos, como ocurría con los organismos unicelulares. En muchas ocasiones esas celulas pueden ser tan complejas que pueden llegar a funcionar como organismos unicelulares también, aunque en la mayoría requieren de interacción de otras celulas, del interior de ese organismo o programa. También pueden interactuar con otros organismos tantos estructurados, como orientados a objetos.

Después de esta pequeña analogía, que puede a más de uno haya desconcertado un poco más, paso a terminar de explicarlo de otra manera.

Un lenguaje y una aplicación orientada a objetos,  se suele dividir en pequeñas partes, que son los objetos. Cada objeto tiene una función determinada y dentro de él  están:

– Los atributos que conforman el estado.

Estos serían cada una de las variables que lleva ese objeto dentro de si mismo.

– Los métodos y funciones, que generan el comportamiento del mismo.

Que serían los distintos métodos que hay dentro de él.

-Finalmente la identidad, que sería el nombre con el cual identificamos a nuestra clase, como hacemos también con las variables, por ejemplo.

Cuando pensamos en objetos, debemos pensar en abstraer, es decir en capturar toda la esencia de algo e intentarlo plasmar en un objeto, dentro de nuestra aplicación. Esto a primera vista puede resultar dificil, pero no lo es tanto. Solo debemos pensar en plasmar la realidad que queremos traer del mundo real, a un mundo ficticio de programación.

Si yo creara el objeto piedra dentro de mi mundo programando, no le insertaría el método botar, porque realmente no bota, al menos que en nuestra aplicación así lo deseemos. Al igual no haríamos la pelota de tenis y la pelota de baloncesto y en los dos incluiriamos el método de botar, porque eso sería repetir código y debemos evitar repetir código.

Si quisiesemos más de una pelota, deberíamos heredar una mama pelota en las distintas pelotas. Otra de las caracteristicas de la programación orientada a objetos, que me resulto muy fácil de entender en la primera ocasión, pero que implementarlo no me resulto tan sencillo.

Cuando vamos a heredar una clase, debemos pensar si es estrictamente necesario, ni debemos abusar de ese concepto, ni dejar de usarlo. Cuando tenemos una clase padre y vamos a usar esa clase, pero también vamos a tener distintas clases que vayan a poseer esas caracteristicas y nuevas. Debemos crear usar la herencia. Pongamos el ejemplo anterior de los tipos de pelotas.

Nuestra clase padre, sería la clase pelota. Que tendrá los métodos de botar y los atributos peso, color y tamaño. Por ejemplo. Pero ahora vamos a tener dos tipos de pelotas, de baloncesto y de tenis. Estas dos clases hijas, van a tener los atributos que ya le hemos dado y por ejemplo, sobrecargamos el método de botar, porque en la clase de bola de tenis, la pelota bota un total de tres veces y cuando llamamos al método de botar de la pelota de baloncesto botaría dos veces.

Realizando este tipo de herencia, llegamos a un concepto de polimorfismo muy primario, porque hemos conseguido que una clase de tipo pelota, tenga dos hijas con comportamientos diferentes en el método botar.

El concepto de polimorfismo, abarca aún más que este pequeño ejemplo, es conseguir que algo que inicialmente creamos, se comporte de diferentes maneras. Por ejemplo, el malware, tiene un alto nivel de polimorfismo, porque de esa manera se obtiene un comportamiento que va siempre mutando, para que sea mucho más difícil saber el comportamiento final que va a tener.

En conclusión la programación orientada a objetos, puede resultar complicada inicialmente, cuando comenzamos a programar. Pero es la experiencia la que permite ir realizando esa tarea con mayor facilidad. Existen herramientas conocidas como herramientas UML, que permiten facilitar mucho esta tarea.

Ya que podemos ir creando nuestro diagrama de clases y englobando nuestra imagen de la aplicación poco a poco.

En la siguiente entrega, veremos como realizar una clase dentro de C# y además aprenderemos a usar la herramienta de diagrama de clases que lleva integrada Visual Studio.

No obstante, si os ha quedado alguna duda de la realización de clases, siempre podeis realizar vuestros comentarios para preguntar las posibles dudas.

Saludos.

Anuncios

1 comentario »

  1. A friend referred me to this website. Thank you for the information.

    Comentario por poop scooper — 12 septiembre, 2012 @ 2:19 PM


RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: