sábado, 29 de mayo de 2010

PROGRAMACIÓN ORIENTADA A OBJETOS parte 2


Presionamos F5 para ejecutar el proyecto y mostrar el formulario.


-En el primer cuadro de texto, escribimos nuestro nombre.-En el segundo cuadro de texto, escribimos nuestro segundo apellido.-En el tercer cuadro de texto, escribimos nuestro tercer apellido.-En el cuarto cuadro de texto, escribimos el año de nuestro nacimiento con cuatro dígitos (por ejemplo, 1983).-Activamos la casilla si está casado/a.


Hacemos clic en el botón Without.Se abrirá un cuadro de mensaje. Muestra nuestro nombre sin el punto tras la inicial del primer apellido.

En el menú Archivo, hacemos clic en Guardar todo.
Probar controladores de eventos
Si deseamos escribir código que responda a un evento (o que controle un evento), debemos asociar ese evento a un controlador de eventos. Podemos hacerlo mediante la instrucción Handles o Add Handler.
La instrucción Add Handler permite asociar los eventos a los controladores en tiempo de ejecución, mientras que la instrucción Handles sólo asocia los eventos a los controladores en tiempo de compilación. La instrucción Handles se puede agregar al final de cualquier subrutina que tenga la misma firma que el evento.
Por ejemplo, antes, agregamos un evento denominado "AgeCalculated" que toma un parámetro de tipo "Integer". La subrutina que crea para controlar el evento también debe tomar un parámetro Integer, como se observa en el código siguiente.
Private Sub person1_AgeCalculated(ByVal Age As Integer) _
Handles person1.AgeCalculated
El objeto person1 se debe crear con la instrucción WithEvents para que se pueda tener acceso al evento AgeCalculated. Al usar la instrucción Add Handler, puede asociar dinámicamente los eventos a controladores en tiempo de ejecución.
Probamos el controlador de eventos en la clase Person
En el Explorador de soluciones, seleccionamos Form1 y, en el menú Ver, hacemos clic en Código.
Agregamos la instrucción WithEvents antes de la declaración person1, como se muestra en el código siguiente:
WithEvents person1 As New Persons.Persons


Agregamos el procedimiento siguiente a Form1. Este código comprueba la edad calculada y muestra un mensaje basado en el resultado.
· Private Sub person1_AgeCalculated(ByVal Age As Integer) _
· Handles person1.AgeCalculated
·
· If Age > 18 Then
· MsgBox("You have been over 18 for " & Age - 18 _
· & " years.")
· Else
· MsgBox("You will be 18 in " & 18 - Age & " years")
· End If
·
End Sub


Presionamos F5 para ejecutar el proyecto y mostrar el formulario.-En el primer cuadro de texto, escribimos nuestro nombre.-En el segundo cuadro de texto, escribimos nuestro segundo apellido.-En el tercer cuadro de texto, escribimos nuestro tercer apellido.-En el cuarto cuadro de texto, escribimos el año de nuestro nacimiento con cuatro dígitos (por ejemplo, 1983).-Activamos la casilla si está casado/a.
Hacemos clic en el botón Actualizar para establecer las propiedades de la clase y haga clic en el botón Full Name.Un cuadro de mensaje muestra su nombre completo. Si tiene más de 18 años, otro cuadro de mensaje muestra información sobre cuánto tiempo hace que cumplió los 18 años. Si tiene menos de 18 años, aparece un cuadro de mensaje que muestra información sobre cuánto tiempo queda hasta que cumpla los 18 años. A continuación, otro cuadro de mensaje muestra su edad.



En el menú Archivo, hacemos clic en Guardar todo.
Generar una clase a partir de una clase existente: Herencia de clases
Ahora veremos cómo utilizar la herencia de clases para crear una clase basada en una clase existente.
Muchos objetos de la vida real tienen atributos y comportamientos en común, por ejemplo, todos los coches tienen ruedas y motores, y pueden avanzar y detenerse. Sin embargo, algunos automóviles tienen atributos que no son comunes, por ejemplo, un descapotable tiene una parte superior que se puede subir/bajar electrónica o manualmente.
Si se creó un objeto para representar un automóvil, se pueden incluir propiedades y métodos para todos los atributos y comportamientos comunes, pero no se podrían agregar atributos como la cubierta de un descapotable, puesto que dicho atributo no es generalizable a todos los automóviles.
Mediante el uso de la herencia, se puede crear una clase "descapotable" que deriva de la clase "automóvil". Ésta hereda todos los atributos de la clase automóvil y puede agregar los atributos y comportamientos que son únicos de un auto descapotable.
Heredar a partir de una clase existente
La instrucción Inherits se utiliza para declarar una nueva clase, denominada clase derivada, basada en una clase existente conocida como clase base. Las clases derivadas heredan todas las propiedades, los métodos, los eventos, los campos y las constantes definidos en la clase base.
El siguiente código muestra la declaración de una clase derivada.
Class DerivedClass
Inherits BaseClass
End Class
Se pueden crear instancias de la nueva clase DerivedClass, se puede tener acceso a sus propiedades y métodos como BaseClass y se pueden agregar nuevas propiedades y métodos que son específicos de la nueva clase. Para ver un ejemplo, nos fijaremos en la clase Persons que tenemos creada.
Supongamos que deseamos tener una clase que represente jugadores de béisbol: los jugadores del béisbol tienen todos los atributos definidos en la clase Persons, pero también tienen atributos únicos, como su número y posición. En lugar de agregar esas propiedades a la clase Persons, se creará una nueva clase derivada que se hereda de Persons, a la que se agregaran las nuevas propiedades.
Para crear una clase derivada de la clase Persons:
Abrimos el proyecto Persons que llevamos todo el tutorial usando.
En el Explorador de soluciones, seleccionamos el nodo del proyecto Persons.
En el menú Proyecto, elegimos Agregar clase.



En el cuadro de diálogo Agregar nuevo elemento, escribimos Players en el cuadro Nombre, a continuación, hacemos clic en Agregar.



Se agregará un nuevo módulo de clase al proyecto.



En el Editor de código, agregamos lo siguiente justo debajo de la línea Public Class Players.
Inherits Persons
Agregamos también el siguiente código para definir las dos nuevas propiedades.
· Private numberValue As Integer
· Private positionValue As String
· Public Property Number() As Integer
· Get
· Number = numberValue
· End Get
· Set(ByVal value As Integer)
· numberValue = value
· End Set
· End Property
· Public Property Position() As String
· Get
· Position = positionValue
· End Get
· Set(ByVal value As String)
· positionValue = value
· End Set
End Property


En el menú Archivo, hacemos clic en Guardar todo.
Probar la clase Players
Hemos creado una clase Players, derivada de la clase Persons.Ahora haremos una nueva aplicación para probar la clase Players.
Para crear un proyecto de prueba para la clase:
En el menú Archivo, elegimos Agregar y, a continuación, hacemos clic en Nuevo proyecto.
En el cuadro de diálogo Agregar nuevo proyecto, en el panel Plantillas, seleccionamos una Aplicación de Windows Forms.
En el cuadro Nombre, escribimos PlayerTest y hacemos clic en Aceptar.



Se agregará un nuevo proyecto de Windows Forms al Explorador de soluciones y aparecerá un nuevo formulario.



En el Explorador de soluciones, seleccionamos el proyecto PlayerTest y, en el menú Proyecto, hacemos clic en Establecer como proyecto de inicio.
En el Explorador de soluciones, seleccionamos el proyecto PlayerTest y, en el menú Proyecto, haga clic en Agregar referencia.
Se abrirá el cuadro de diálogo Agregar referencia.
Hacemos clic en la ficha Proyectos, elegimos Persons y hacemos clic en Aceptar.



Hacemos doble clic en el formulario para abrir el Editor de código y escribimos la siguiente declaración justo debajo de la línea Public Class Form1.
2. Dim player1 As New Persons.Players
Dim player2 As New Persons.Players

Esto declara dos nuevas instancias de la clase Players.

En el menú Archivo, hacemos clic en Guardar todo.
Para probar la clase derivada:
En el Explorador de soluciones, seleccionamos Form1 en el proyecto PlayerTest y, a continuación, en el menú Ver, hacemos clic en Código.


En el Editor de código, agregamos el siguiente código al procedimiento de evento Form1_Load.
2. With player1
3. .FirstName = "Wyrm"
4. .LastName = "Garcia"
5. .Number = 13
6. .Position = "Shortstop"
7. End With
8. With player2
9. .FirstName = "Joe"
10. .LastName = "Black"
11. .Number = 51
12. .Position = "Catcher"
End With



En el Explorador de soluciones, seleccionamos Form1 en el proyecto PlayerTest y, a continuación, en el menú Ver, hacemos clic en Diseñador.


En el Cuadro de herramientas, arrastramos dos controles Button al formulario.
Seleccionamos el primer control Button y en la ventana Propiedades establecemos su propiedad Text en At Bat.
Seleccionamos el segundo control Button y en la ventana Propiedades establecemos su propiedad Text en On Deck.
Hacemos doble clic en el primer botón (At Bat) para abrir el Editor de código y escribimos el siguiente código en el controlador de eventos Button1_Click.
5. MsgBox(player1.Position & " " & player1.FullName & ", #" & _
CStr(player1.Number) & " is now at bat.")


Observamos que estamos utilizando el método FullName que se heredó de la clase base Persons.

En el controlador de eventos Button2_Click, agregamos el siguiente código.
2. MsgBox(player2.Position & " " & player2.FullName & ", #" & _
CStr(player2.Number) & " is on deck.")



Presionamos F5 para ejecutar el programa. Hacemos clic en cada botón para ver los resultados.Clic al Boton1(At Bat):


Clic al Boton2(on Deck):



En el menú Archivo, elegimos Guardar todo.
Y aqui, finalizando probar una clase derivada, acabamos con el tutorial sobre la POO y sus clases en Visual Basic.NET.
Hemos visto, qué son y cómo crear clases, agregarle propiedades, métodos y eventos, las hemos heredado, etc. Espero que no se os haya hecho demasiado largo, ni muy tostonazo, pero la mejor forma de aprender y de que las cosas se entiendan, es haciéndolo uno mismo...

1 comentario:

  1. Link 12bet Casino - Vie Casino
    Link 12bet Casino. More Information. Search. All games. All games. All players. Play Now. Slots. 24H. 92% RTP. Mobile. 우리카지노 No download No link 12bet login. Mobile. No login.

    ResponderEliminar