1 Declaración por Referencia e Instancia.
1.1 Creación de un Objeto Por Referencia e Instancia.
Se referencia al objeto hacia una variable:
Dim Variable as [Objeto]
Creando el objeto o Instanciandolo:
Variable = New [Objeto]
1.2 Creación de un Objeto Por Referencia e Instancia a la vez.
Se referencia e instancia a la vez:
Se referencia e instancia a la vez:
Dim Variable as New [Objeto]
Una vez creado el objeto se puede hacer uso de sus métodos y propiedades.
Ejemplo:Acá se muestra que el objeto solo es referenciado por lo tanto se producirá una excepción que el objeto no fue instanciado.
Figura 1
Si ahora instanciamos el objeto veremos que no produce ninguna excepción.
1.3 Uso de Clases en .NET
Como vimos en los laboratorios anteriores, los tipos de datos se dividen en dos grupos: tipos por valor y tipos por referencia. Los tipos por referencia realmente son clases, de la cuales debemos crear una instancia para poder usarlas, cuando instanciamos una clase esta se crea en la parte lejana de la memoria llamada heap, y las variables que la contienen solo hacen una referencia a la dirección de su ubicación en la que la CLR ha almacenado el objeto recién creado.
Como vimos en los laboratorios anteriores, los tipos de datos se dividen en dos grupos: tipos por valor y tipos por referencia. Los tipos por referencia realmente son clases, de la cuales debemos crear una instancia para poder usarlas, cuando instanciamos una clase esta se crea en la parte lejana de la memoria llamada heap, y las variables que la contienen solo hacen una referencia a la dirección de su ubicación en la que la CLR ha almacenado el objeto recién creado.
En el .NET Framework la mayor parte a usar será una clase, la creación de formularios, la creación de módulos, y las clases mismas etc., toda estas se grabaran con la extensión vb si usamos como lenguaje predeterminado Visual Basic, para C# la extensión sera .cs.
Figura 3
2 Creación de Clases en .NET
1.4 Object: La clase base de todas las clases de .NET
Las clases existentes en la biblioteca de clases del .NET Framework, derivan de una clase principal llamada object, es decir así lo indiquemos o no cualquier clase que definamos o usemos tendrá el comportamiento.
Todas las clases de .NET se derivan de la clase Object, es decir, lo indiquemos o no, cualquier clase que definamos tendrá el comportamiento heredado de esa clase. El uso de la clase Object como base del resto de las clases de .NET es la única excepción a la herencia simple soportada por .NET, ya que de forma implícita, todas las clases de .NET se derivan de la clase Object independientemente de que estén derivadas de cualquier otra.
1.4 Object: La clase base de todas las clases de .NET
Las clases existentes en la biblioteca de clases del .NET Framework, derivan de una clase principal llamada object, es decir así lo indiquemos o no cualquier clase que definamos o usemos tendrá el comportamiento.
Todas las clases de .NET se derivan de la clase Object, es decir, lo indiquemos o no, cualquier clase que definamos tendrá el comportamiento heredado de esa clase. El uso de la clase Object como base del resto de las clases de .NET es la única excepción a la herencia simple soportada por .NET, ya que de forma implícita, todas las clases de .NET se derivan de la clase Object independientemente de que estén derivadas de cualquier otra.
De los miembros que tiene la clase Object debemos resaltar el método ToString, este método está pensado para devolver una representación en formato cadena de un objeto.
Figura 4
1.5 Definir una clase
En Visual Basic 2005, todo el código que queramos escribir, lo tendremos que hacer en un fichero con la extensión .vb, dentro de ese fichero es donde escribiremos nuestro código, el cual, tal como dijimos anteriormente siempre estará incluido dentro de una clase, aunque un fichero de código de VB puede contener una o más clases, es decir, no está limitado a una clase por fichero. En Visual Basic 2005 las clases se definen usando la palabra clave Class seguida del nombre de la clase, esa definición acaba indicándolo con End Class.
Figura 5
1.6 Los miembros de una clase
Una clase puede contener cualquiera de estos elementos (miembros):
Una clase puede contener cualquiera de estos elementos (miembros):
• Enumeraciones
• Campos
• Métodos (funciones o procedimientos)
• Propiedades
• Eventos
Aquí una breve descripción:
Los campos: Son variables usadas para mantener los datos que la clase manipulará.
Los campos: Son variables usadas para mantener los datos que la clase manipulará.
Los métodos: Son las acciones que la clase puede realizar, normalmente esas acciones serán sobre los datos que
contiene. Dependiendo de que el método devuelva o no un valor, podemos usar métodos de tipo Function o de tipo Sub respectivamente.
Las propiedades: Son las "características" de las clases y la forma de acceder "públicamente" a los datos que contiene. Por ejemplo, podemos considerar que el nombre y los apellidos de un cliente son dos características del cliente.
Los eventos: Son mensajes que la clase puede enviar para informar que algo está ocurriendo en la clase.
Esquema de una Clase:
Public Class Empleados
Dim Codigo As Integer
Public bEstado As Boolean
Private sCta As String
Public Property Cuenta()
Get
Return sCta
End Get
Set(ByVal value)
sCta = value
End Set
End Property
Public Function BuscaEMpleado(ByVal _codigo As Integer) As String
Return "Felipe Castañeda"
End Function
End Class
Uso de la clase:
Figura 6
1.7 Creación de Procedimientos Sobre Cargados
La sobrecarga de funciones (tanto para funciones como para procedimientos Sub), es una característica que nos permite tener una misma función con diferentes tipos de parámetros, ya sea en número o en tipo.
La sobrecarga de funciones (tanto para funciones como para procedimientos Sub), es una característica que nos permite tener una misma función con diferentes tipos de parámetros, ya sea en número o en tipo.
Supongamos que queremos tener dos funciones (o más) que nos permitan hacer operaciones con diferentes tipos de datos, y que, según el tipo de datos usado, el valor que devuelva sea de ese mismo tipo.
Ejemplo de procedimientos sobre cargados:
Sub VerificarDatos()
'Codigo a ejecutar
'.....
'.......................
End Sub
Sub VerificarDatos(ByVal xVar1 As String)
'Codigo a ejecutar
'.....
'.......................
End Sub
Function VerificarDatos(ByVal xVar1 As String, ByVal xVar2 As Integer) As Boolean
'Codigo a ejecutar
'.....
'.......................
End Function
Sub VerificarDatos(ByVal ParamArray xVar1() As String)
'Codigo a ejecutar
'.....
'.......................
End Sub
Llamada a un Procedimiento Sobre Cargado:
Figura 7
2 Inicio de una Aplicación, Control de Excepciones.
2.1 Ejecución de una Aplicación
Para iniciar y cerrar una aplicación, la biblioteca de clases del .NET Framework proporciona la clase Application, esta clase contiene dos métodos principales aparte de métodos para gestionar una aplicación
Para iniciar y cerrar una aplicación, la biblioteca de clases del .NET Framework proporciona la clase Application, esta clase contiene dos métodos principales aparte de métodos para gestionar una aplicación
A nivel Aplicación.
Run: Invoca el método Application.Run para iniciar la aplicación.
Run: Invoca el método Application.Run para iniciar la aplicación.
Figura 8
Exit: Para cerrar una aplicación, invocamos al método Application.Exit
Figura 9
A nivel Formulario.
Show: Llama al formulario indicado para ser mostrado:
Close: Destruye el formulario al que hace referencia.
2.2 Manejo de excepciones
Las excepciones en Visual Basic 2005 las podemos controlar usando las instrucciones Try / Catch / Finally., estas instrucciones realmente son bloques de instrucciones, al estilo de If / Else.
2.2 Manejo de excepciones
Las excepciones en Visual Basic 2005 las podemos controlar usando las instrucciones Try / Catch / Finally., estas instrucciones realmente son bloques de instrucciones, al estilo de If / Else.
Cuando queramos controlar una parte del código que puede producir un error lo incluimos dentro del bloque Try, si se produce un error, éste lo podemos detectar en el bloque Catch, por último, independientemente de que se produzca o no una excepción, podemos ejecutar el código que incluyamos en el bloque Finally, para indicar el final del bloque de control de excepciones lo haremos con End Try.Cuando creamos una estructura de control de excepciones no estamos obligados a usar los tres bloques, aunque el primero: Try si es necesario, ya que es el que le indica al compilador que tenemos intención de controlar los errores que se produzcan. Por tanto podemos crear un "manejador" de excepciones usando los tres bloques, usando Try y Catch o usando Try y Finally.
Try
En este bloque incluiremos el código en el que queremos comprobar los errores, el código a usar será un código normal, es decir, no tenemos que hacer nada en especial, ya que en el momento que se produzca el error se usará (si hay) el código del bloque Catch.
Catch
Si se produce una excepción, ésta la capturamos en un bloque Catch. En el bloque Catch podemos indicar que tipo de excepción queremos capturar, para ello usaremos una variable de tipo Exception, la cual pude ser del tipo de error específico que queremos controlar o de un tipo genérico.
Finally
En este bloque podemos indicar las instrucciones que queremos que se ejecuten, se produzca o no una excepción. De esta forma nos aseguramos de que siempre se ejecutará un código, por ejemplo para liberar recursos, se haya producido un error o no.
Ejemplo
Dim x, y, r As Integer
Try
x = 5
y = 6
r = x / 6
Console.WriteLine("El resultado es {0}", r)
Catch ex As ArithmeticException When y = 0
Console.WriteLine("Sucedio un error Aritmetico")
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
Laboratorio 04:
Empecemos a crear una aplicación para demostrar el uso de las funciones estudiadas:
I.- Crear el siguiente formulario con el nombre frmLogin, con el siguiente diseño:
Laboratorio 04:
Empecemos a crear una aplicación para demostrar el uso de las funciones estudiadas:
I.- Crear el siguiente formulario con el nombre frmLogin, con el siguiente diseño:
Figura 10
Las propiedades para este formulario, son las siguientes:
MaximizeBox= False
MinimizeBox= False
StartPosition = CenterScreen
ShowIcon = False
Opacity = 85%
Y las propiedades para los objetos textbox son las siguientes:
TxtUsuario:
MaxLength = 5
CharacterCasing= Upper
TxtClave:
MaxLength = 5
PasswordChar = *
II.- Una vez realizado esto, dentro del modulo modGeneral, crear un método con el nombre “Sub Main”.
Sub Main()
''''''''''''''''''''''
'Ejecución de procesos.
'...
'.......
''''''''''''''''''''''
frmLogin.Show()
Application.Run()
End Sub
Para indicarle a nuestro proyecto que al iniciarse se ejecute nuestro método “Sub Main”, en propiedades del proyecto debemos indicarle desactivando la opción “Enable application framework”:
Figura 11
II.- Crear el siguiente formulario con el nombre frmClientes y con el siguiente diseño.
Figura 12
III.- Aprendiendo a configurar la tabulación de nuestros controles, desde el menú Ver seleccionamos Orden de Tabulación.
Figura 13
Luego la visualización del formulario quedara como sigue, dándole un Click comenzaremos a configurarlo el orden de tabulación.
Figura 14
IV.- Ahora crearemos un modulo con el nombre modGeneral, dentro de él tendremos que crear al as siguientes variables:
Private _Usuario As String = "admin"
Private _Clave As String = "admin"
Después un Enum para la definición de los tipos de clientes:
Enum TipoCliente
Mayorista
Nuevo
Moroso
End Enum
Public Tipo As TipoCliente
Luego agregaremos la siguiente función llamada Logeo, dentro de este modulo:
Function Login(ByVal Usuario As String, ByVal Clave As String) As Boolean
Dim bEstado As Boolean = False
If Usuario = _Usuario And Clave = _Clave Then
If Usuario = _Usuario And Clave = _Clave Then
bEstado = True
Else
bEstado = False
End If
Return bEstado
End Function
V.- Ahora en el formulario frmLogin debemos escribir lo siguiente dentro del botón Aceptar.
End Function
V.- Ahora en el formulario frmLogin debemos escribir lo siguiente dentro del botón Aceptar.
If Login(Me.txtUsuario.Text, Me.txtClave.Text) Then
frmClientes.Show()
Me.Close()
Else
MessageBox.Show("Usuario incorrecto", "Sistemas",
_ MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End If
VI.- En el formulario frmLogin, frmClientes buscamos el evento FormClosed y escribimos lo siguiente, asimismo en el botón cancelar del formulario frmLogin:
Application.Exit()
VII.- Crear una clase al proyecto con el nombre Clientes, y dentro de el definir las siguientes variables, como se muestra en el siguiente grafico:
Public Class Clientes
Public Codigo As String = ""
Public Nombre As String = ""
Public Apellido As String = ""
Public Ciudad As String = ""
Public Telefono As String = ""
Public FecNacimiento As String = ""
End Class
End Class
VIII.- En la misma clase tenemos que agregar el siguiente método:
Public Sub AgregaClientes(ByVal xList As ListBox)
Dim sDato As String = ""
Codigo += Space(5 - Len(Codigo))
Nombre += Space(20 - Len(Nombre))
Apellido += Space(20 - Len(Apellido))
Ciudad += Space(13 - Len(Ciudad))
Telefono += Space(8 - Len(Telefono))
sDato = Codigo + Space(3) + Nombre + Space(3) + Apellido
Select Case Tipo
Case TipoCliente.Mayorista
sDato += Ciudad
Case TipoCliente.Nuevo
sDato += Ciudad + Space(3)
sDato += Telefono
Case TipoCliente.Moroso
End Select
xList.Items.Add(sDato)
End Sub
IX.- Finalmente en la clase agregamos un último procedimiento sobrecargado con en el mismo nombre del procedimiento anterior en el punto VIII:
Public Function AgregaClientes() As String
Dim sDato As String = ""
sDato = Codigo + " " + Nombre + " " + Apellido + " " + Ciudad
Return sDato
End Function
X.- Volviendo al formulario frmClientes, agregar lo siguiente en el botón Agregar y probar el formulario.
If Me.radMayorista.Checked = True Then Tipo = TipoCliente.Mayorista
If Me.radMoroso.Checked = True Then Tipo = TipoCliente.Mayorista
If Me.radNuevo.Checked = True Then Tipo = TipoCliente.Mayorista
Dim _Clientes As New Clientes
With _Clientes
.Codigo = Me.txtCodigo.Text
.Nombre = Me.txtNombres.Text
.Apellido = Me.txtApellidos.Text
.Ciudad = Me.txtCiudad.Text
.Telefono = Me.txtTelefono.Text
.FecNacimiento = Me.dtpFecha.Value
End With
_Clientes.AgregaClientes(Me.lstClientes)
Realizar lo siguiente:
I.- Cuando se seleccione la opción “Otros” de “Tipo de clientes” se debe de usar el procedimiento sobrecargado del punto IX:
II.- Implementar la eliminación del listado de clientes.
No hay comentarios:
Publicar un comentario