Programación orientada a
objetos
La programación orientada a objetos es una forma de
programar que trata de encontrar una solución a estos problemas. Introduce
nuevos conceptos, que superan y amplían conceptos antiguos ya conocidos.
- Objetos: Los objetos son el elemento central de la programación en Visual Basic. Los formularios, controles y las bases de datos son objetos.
- Módulos: Son tipos de referencia que encapsulan los elementos definidos en ellos, pero difieren en la forma en que se realiza el acceso a los elementos desde otros procedimientos. Son la parte de código general del proyecto, en el puedes definir por funciones que quieres que estén activas para cualquier formulario dentro del proyecto, incluso se puede configurar para que sea él quien realice la primera acción al ejecutar tu aplicación.
- Propiedades: Son las características observables de un objeto. Las propiedades se reconocen porque describen un aspecto del objeto que podemos medir con una escala establecida previamente. A cada propiedad se le debe asignar un valor el cual permite identificar de manera única al objeto.
- Herencia: Un objeto es heredero de otro cuando posee todas sus propiedades y todos sus métodos y reconoce todos sus eventos, aunque pueda disfrutar de propiedades, métodos y eventos adicionales. Se define la herencia como la característica que tienen los objetos de derivarse unos de otros. Por otra parte la herencia supone una clase base y una jerarquía de clases que contienen las clases derivadas de la clase base, así las clases derivadas pueden heredar las propiedades y métodos de una clase base, añadiendo sus propios métodos y propiedades, incluso cambiar aquellos elementos de la clase base que necesiten sean diferentes.
- Metodo: Un método es una subrutina asociada exclusivamente a una clase (llamados métodos de clase o métodos estáticos) o a un objeto (llamados métodos de instancia). Analógicamente a los procedimientos en los lenguajes imperativos, un método consiste generalmente de una serie de sentencias para llevar a cabo una acción, un juego de parámetros de entrada que regularan dicha acción y o, posiblemente, un valor de salida (o valor de retorno) de algún tipo.
- Polimorfismo: Consiste en la funcionalidad múltiple que puede tener un miembro de una clase para comportarse de diversas maneras de acuerdo al tipo de objeto que lo implemente.
Existen dos formas de
implementar el polimorfismo en Visual Basic.
Polimorfismo basado en Herencia:
Es una nueva forma de crear multiple funcionalidad para un método de una clase base que puede ser sobre escrito por otros métodos con el mismo nombre en las clases derivadas.
Polimorfismo basado en Interfaces:
Este tipo de
polimorfismo se usa también en Visual Basic 6 y consiste en crear una interface
donde se definan nombres de propiedades y/o métodos, y luego se implementen con
la sentencia “Implements” en varias clases, escribiendo diferentes códigos o
implementaciones para las propiedades y métodos de cada clase.
Este último tipo de polimorfismo
no se va a tratar, debido a que la manera natural de implementar polimorfismo
es a través de la herencia de clases sobre escribiendo propiedades o métodos.
Algunos Ejemplos:
Objeto: textbox
- Private Sub TextBox1_KeyPress(ByVal sender As Object, _
- ByVal e As System.Windows.Forms.KeyPressEventArgs) _
- Handles TextBox1.KeyPress
- If Char.IsLetter(e.KeyChar) Then
- e.Handled = False
- ElseIf Char.IsControl(e.KeyChar) Then
- e.Handled = False
- ElseIf Char.IsSeparator(e.KeyChar) Then
- e.Handled = False
- Else
- e.Handled = True
- End If
- End Sub
Polimorfismo basado en herencias:
“Crear Empleado” de la clase “Empleado”
modificándose en la clase derivada “Vendedor” para incluir lo recibido por
comisiones de ventas. Crearemos el método llamado “MostrarSueldo” que
permita crear el empleado y mostrar cuánto gana, usando el polimorfismo
dependiendo si es vendedor o no.
Sub
MostrarSueldo(ByVal vEmpleado As Empleado, _
ByVal
vCodigo As Integer, ByVal vNombre As String, _
ByVal vSueldo As Single)
vEmpleado.CrearEmpleado(vCodigo,vNombre,vSueldo)
MsgBox(vNombre
& " gana s/. " & vSueldo)
End Sub
Sub ProbarPolimorfismo()
Dim objEmpleado As New
Empleado
Dim objVendedor As New
Vendedor
objEmpleado.CrearEmpleado(100,
"Luis Dueñas", 1000)
objVendedor.Venta=1000
objVendedor.Comision=0.10
objVendedor.CrearEmpleado(100,
"Luis Dueñas", 1000)
End Sub
En este
ejemplo el resultado será para el primer caso el mensaje “Luis Dueñas gana
1000” y en el segundo caso el mensaje “Luis Dueñas gana 1100
Herencia en
una clase:
Podemos crear una clase
llamada “Vendedor” que herede de la clase “Empleado” que habíamos creado
anteriormente, y crear dos propiedades, una llamada “Venta” y otra llamada
“Comision”, tal como sigue:
Public Class Vendedor
Inherits Empleado
Private mvarVenta As Single
Private mvarComision As
Single
Property Venta() As Single
Get
Venta = mvarVenta
End Get
Set(ByVal Value As Single)
mvarVenta = Value
End Set
End Property
Property Comision() As
Single
Get
Comision = mvarComision
End Get
Set(ByVal Value As Single)
mvarComision = Value
End Set
End Property
End Class
Finalmente, la clase
“Vendedor” tendrá
5 propiedades: 3 heredadas:
“Codigo”, “Nombre” y “Basico” y 2 propias: “Venta” y “Comision”.
2 métodos heredados:
“CrearEmpleado” y “ActualizarBasico”.
2 eventos heredados:
“BasicoBajo” y “BasicoAlto”.
Controles
básicos Visual basic
Textbox: Mediante este control podremos realizar tanto la entrada como la salida de datos en nuestras aplicaciones.
No hace falta que
indiquemos las coordenadas de la situación del formulario en pantalla, simplemente
tendremos que marcar sobre el control de la caja de herramientas y dibujarlo
con el tamaño que queramos en nuestro formulario.
Label: Este
control es también uno de los más utilizados, aunque su utilidad queda
restringida a la visualización de datos en el mismo, no permitiendo la
introducción de datos por parte del usuario.
La forma de utilizarlo es
similar a la del control anterior, dibujar el control en el formulario con el
tamaño que queramos y asignarle un texto en tiempo de diseño o de ejecución
esta vez sin utilizar la propiedad text puesto que no la incorpora, sino
utilizando la propiedad caption.
Este control sirve para
mostrar mensajes en nuestro formulario que orienten al usuario sobre la
utilidad de los demás controles que tengamos en la aplicación o para indicarnos
acciones que podemos realizar. En el ejemplo anterior donde aparecía un textbox
en el formulario, hubiera quedado mejor con un mensaje aclaratorio contenido en
un control label:
PROPIEDADES:
Caption: Es el texto
que contendrá el control.
Alignment: Alineación del texto contenido en el control, no necesita que esté activada ninguna otra propiedad.
BorderStyle: Si queremos que aparezca un borde alrededor del control activaremos esta propiedad.
Command Button: Este control es el típico botón que aparece en todas las aplicaciones y que al hacer click sobre él nos permite realizar alguna operación concreta, normalmente Aceptar o Cancelar. Aunque según el código que le asociemos podremos realizar las operaciones que queramos.
PROPIEDADES
Caption: Aquí
pondremos el letrero que queremos que aparezca en el botón: aceptar, cancelar,
salir, etc.
Enabled: Esta es una
nueva propiedad, cuando su valor es true el botón funciona normalmente, cuando
su valor es false el botón se encuentra desactivado, no responde a los eventos
producidos sobre él y el texto aparece en un gris claro advirtiéndonos de su
estado. Podemos utilizar esta propiedad para activar o desactivar un botón
dependiendo del estado de otros controles. Por ejemplo, en un botón Aceptar, no
activarlo hasta que se haya introducido una cantidad en un control textbox, ya
que ese botón nos calculará el IVA de la cantidad.
EVENTOS
Click: Es el
evento típico de este control y el que más se utiliza.
MouseMove: Como
sabemos detecta el movimiento del ratón sobre el control. Puede servir para que
aparezca un mensaje en un control Label que nos aporte información sobre la
utilidad del control ampliando el texto que hayamos colocado como caption del
commandbutton.
Option
Button: Este control nos permite elegir una opción entre varias de las que se
nos plantean. Cada opción será un control option button diferente. Facilita la
introducción de datos por parte del usuario:
PROPIEDADES DE OPTIONBUTTON
Caption: El texto que
aparecerá al lado del control: Rojo, verde, etc.
Value: Es el valor
que tendrá el control: True si se encuentra activado y False si no lo está.
Para comprobar que opción ha activado el usuario comprobaremos el estado de
esta propiedad.
Alignment: Alineación
del texto respecto al control: Left Justify: el control aparece a la izquierda
del texto.
Ejemplo Final