Developer's Diary

11 enero, 2011

Curso C# – Creacion de clases II

Buenas, en esta segunda entrega de nuestro Curso de C#, vamos a explicar como crear una aplicación con distintas clases en C#. Va a tratarse de una aplicación de Consola, en donde vamos a aprender a usar la utilidad de diagrama de clases, vamos a crear clases estáticas, a ver como se realiza la herencia y a generar varios constructores.

Antes de nada, vamos a crear nuestro nuevo proyecto, dentro de nuestro Visual Studio, vamos a crear una aplicación de consola, ya que tampoco nos preocupa el aspecto visual en este ejemplo, si no más bien captar la capacidad de la programación en objetos.

Cuando tengamos nuestro nuevo proyecto generado, pulsaremos con el botón derecho dentro del explorador de soluciones en nuestro proyecto y seleccionaremos la opción de “ver diagrama de clases”.

Se nos creara un nuevo fichero con extensión .cd. El contenido del fichero es un XML, con las caracteristicas de nuestro diagrama. Podemos crear tantos ficheros de diagramas de clases como queramos, pudiendo introducir en ellos todo lo que vayamos a crear en nuestra aplicación.

Nuestra aplicación, va a ser una aplicación de pelotas, para continuar con nuestro ejemplo del post anterior. En la aplicación, vamos a ir indicando pelotas y las vamos a ir botando, indicando por pantalla cuantos botes ha dado cada pelota.

Puede ser una aplicación sin utilidad, pero nos permitirá tener un mayor conocimiento de la programación orientada a objetos.

Como ya indicamos en el post anterior, lo primero que vamos a realizar, es una pelota padre, con los atributos y métodos generales y posteriormente crearemos todos los tipos de pelotas hijas, con los cambios pertinentes.

Antes de ponernos manos a la obra, vamos a explicar un último concepto de gran importancia en la programación y sobre todo en la programación orientada a objetos.  El encapsulamiento y los ámbitos de protección, aunque existen algunos más, vamos a distinguir en esta ocasión tres, que son los más básicos: Public, Private, Protected.

Estas tres palabras reservadas son modificadores de accesibilidad, pueden existir ciertas caracteristicas que no nos interesan que sean mostradas al exterior de la clase, como puede ocurrir con los atributos. En este caso nuestra palabra reservada es Private, cuando nombramos algo con esta palabra reservada, solo tendremos acceso a esto desde dentro de ese objeto.

Sin embargo, si nuestra palabra reservada es Public,  se tendrá acceso tanto desde dentro como del exterior.

Finalmente, Protected, solo dará acceso a los objetos hijos de esa clase.

Existen otras palabras reservadas que también pueden ser de utilidad, como puede ser static, que nos permite acceder a ese atributo o método sin una instanciación previa o internal, que nos permite acceder solo desde ese espacio de nombres. Es interesante hacer un proyecto, solamente para experimentar con cada unas de las palabras clave, para comprobar que nivel de seguridad requerimos en cada momento.

Vamos a comenzar a crear nuestra aplicación, vamos a crear todos los cuerpos de las clases desde el diagrama de clases. Es un diseñador bastante completo que nos permite trabajar con facilidad, realizando un drag and drop. Inicialmente vamos a generar una clase a la que llamaremos pelota y le vamos a introducir cuatro atributos:  tamaño, nombre, peso y color. Además de un método, botar.

Tanto los métodos, como los atributos vamos a indicar la palabra clave protected, para que solo se pueda acceder a estos desde las clases hijas, si en vez de usar protected, usaramos la palabra reservada public, podríamos acceder a ellos tanto desde las clases hijas, como a desde la clase padre.

Para realizar este proceso, primero podemos arrastar desde el cuadro de herramientas una clase o pulsar con el botón derecho y crear una nueva clase.

 

Cuando indiquemos que hemos creado nuestra clase, nos aparecerá un cuadro de diálogo indicando que tenemos nuestra nueva clase, podremos modificar el nombre de la misma.

A partir de aquí incluiremos los nombres de los métodos, el tipo de dato al que pertenecen y el acceso del mismo, en el cuadro de detalles de clase. Es necesario seleccionar la clase en cuestión. Otro apunte importante es que también podemos incluir desde ahí, los distintos comentarios que deseemos agregar.

Como podeis ver en las imagenes, hacemos diferencia entre atributos y propiedades, mientras que los atributos son de tipo privado, las propiedades son este caso de tipo publicas, también podríamos haberlas creado protegidas para que solo las clases hijas pudiesen acceder a ellas.

Como podeis comprobar, he nombrado a los atributos, precedidos con “m_” y el nombre. Esto es una costumbre que he tomado de ver código de otras personas, también hay muchos desarrolladores que solo preceden con un “_” aunque no es obligatorio nombrar los atributos de esta manera, es interesante hacerlo de esta manera, para evitar confusión, entre atributos y propiedades.

De hecho el IDE de desarrollo tiene una función que permite encapsular el campo, como podemos ver en esta imagen, que genera una propiedad de un atributo previamente codificado. El mismo entorno de desarrollo se encarga por si mismo de eliminar el inicio de la nomenclatura.

 

Con esta nueva clase ya generada, pasamos a crear las respectivas hijas, para ello solo debemos crear una nueva clase y tomar posteriormente del cuadro de herramientas la opción de herencia. Pinchamos sobre nuestra nueva clase, con la opción de herencia y sin soltar el botón, nos dirigimos hasta la clase padre, en este caso Pelota.

Ya tenemos nuestra clase PelotaTenis, siendo hija de Pelota, podríamos, si nos fuese necesario y nuestra aplicación llegara hasta ese punto introducir una nueva herencia y crear una hija de PelotaTenis, siendo PelotaPadel, por ejemplo. Aunque no existen caracteristicas inicialmente que pueda contener PelotaTenis, que no posea Pelota y que puedan contener varios tipos de Pelota similares a PelotaTenis.

Ahora mismo tenemos casi toda nuestra aplicación diseñada, lista para empezar a programar. Pero, aún nos falta algo dentro de nuestras clases de vital importancia y se trata del constructor y de como implementar ese constructor en clases hijas. Además de todo el código que contiene nuestra clase.

Pero eso lo realizaremos en una posterior entrega y definitiva. Donde ya veremos nuestra aplicación completamente armada y ejecutada.

Un saludo y no olvideis comentar si teneis alguna duda.

Anuncios

1 comentario »

  1. […] nuestra clase Pelota, que ya pudimos usar anteriormente, en la sección del curso en la que vimos creación de clases, recordemos un poco su […]

    Pingback por Curso de C# – Ficheros II « Developer's Diary — 9 febrero, 2011 @ 10:36 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: