domingo, 29 de abril de 2012

Unidad 1.

 
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
  1. Private Sub TextBox1_KeyPress(ByVal sender As Object, _  
  2.                               ByVal e As System.Windows.Forms.KeyPressEventArgs) _  
  3.                               Handles TextBox1.KeyPress  
  4.   
  5.     If Char.IsLetter(e.KeyChar) Then  
  6.         e.Handled = False  
  7.     ElseIf Char.IsControl(e.KeyChar) Then  
  8.         e.Handled = False  
  9.     ElseIf Char.IsSeparator(e.KeyChar) Then  
  10.         e.Handled = False  
  11.     Else  
  12.         e.Handled = True  
  13.     End If  
  14. 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