Clases en visual basic .Net

12
Ing. Hobby Saavedra Rosas Programación Orientada a Objetos I DEFINIR CLASES EN VISUAL BASIC .NET 1. Cree un proyecto haciendo clic en Nuevo proyecto en el menú Archivo. 2. Aparecerá el cuadro de diálogo Nuevo proyecto. 3. Seleccione Aplicación para Windows de la lista de plantillas del proyecto de Visual Basic para mostrar el nuevo proyecto. 4. Elegimos la ubicación donde deseamos guardar nuestro proyecto. 5. Agregue una clase nueva al proyecto haciendo clic en Agregar clase en el menú Proyecto. Aparecerá el cuadro de diálogo Agregar nuevo elemento. 6. Seleccione la plantilla Clase. 7. Asigne a la nueva clase el nombre Usuario.vb y, a continuación, haga 8. clic en Agregar para mostrar el código de la nueva clase.

description

 

Transcript of Clases en visual basic .Net

Page 1: Clases en visual basic .Net

Ing. Hobby Saavedra Rosas

Programación Orientada a Objetos I

DEFINIR CLASES EN VISUAL BASIC .NET

1. Cree un proyecto haciendo clic en Nuevo proyecto en el menú Archivo. 2. Aparecerá el cuadro de diálogo Nuevo proyecto. 3. Seleccione Aplicación para Windows de la lista de plantillas del proyecto de Visual Basic

para mostrar el nuevo proyecto.

4. Elegimos la ubicación donde deseamos guardar nuestro proyecto.

5. Agregue una clase nueva al proyecto haciendo clic en Agregar clase en el menú Proyecto. Aparecerá el cuadro de diálogo Agregar nuevo elemento.

6. Seleccione la plantilla Clase. 7. Asigne a la nueva clase el nombre Usuario.vb y, a continuación, haga 8. clic en Agregar para mostrar el código de la nueva clase.

Page 2: Clases en visual basic .Net

Ing. Hobby Saavedra Rosas

Programación Orientada a Objetos I

9. Código de la clase Usuario.vb

Public Class Usuario End Class

10. Defina un campo privado para la clase; para ello, agregue el siguiente código entre las instrucciones Class y End Class: Private _nombreUsuario As String

11. Declarar el campo como Private quiere decir que sólo se puede utilizar dentro de la clase. Se pueden utilizar modificadores de acceso más amplio, por ejemplo Public, para hacer que los campos estén disponibles desde fuera de la clase.

12. Defina una propiedad para la clase agregando el código siguiente:

Public Property nombreUsuario() As String Get Return _nombreUsuario End Get Set(ByVal value As String) _nombreUsuario = value End Set End Property

13. Defina un método para la clase agregando el código siguiente:

'****************Definición de metodos************* Public Sub AMayusculas() ' Convertir a mayúsculas el valor de la propiedad _nombreUsuario = UCase(nombreUsuario) End Sub

14. Defina un constructor parametrizado para la clase nueva agregando un procedimiento denominado Sub New:

'***********Constructor de la Clase Usuario Public Sub New(ByVal nomUsuario As String) ' Set the property value. Me.nombreUsuario = nomUsuario End Sub

15. Cuando se crea un objeto basado en esta clase, se llama al constructor Sub New

automáticamente. Este constructor establece el valor del campo que contiene el nombre de usuario.

Page 3: Clases en visual basic .Net

Ing. Hobby Saavedra Rosas

Programación Orientada a Objetos I

MANEJO DE CLASES Y OBJETOS

1. Diseñamos nuestro formulario, para crear objetos de la Clase Usuario.

2. Creamos las variables para trabajar con la clase Usuario. Y luego creamos los objetos.

'Variables a nivel de Formulario 'Variables Globales 'Declaramos una variable objUsuario1 'Permite instanciar la clase Usuario Public objUsuario1 As Usuario 'Declaramos una variables para el nombre del usuario Public nomUser As String

3. Funciones para crear y mostrar datos del usuario.

3.1. nuevoUsuario

Function nuevoUsuario(ByVal nomUsuario As String) As String 'Creamos el objetos usuario ' asignamos el nombre del usuario objUsuario1 = New Usuario(nomUsuario) Return "Usuario Creado con éxito" End Function

3.2. listarUsuario

Function listarUsuario() As String 'Recuperamos el nombre del usuario 'mediante la propiedad nombreUsuario Return "Datos Objeto 1:" + objUsuario1.nombreUsuario End Function

4. Programamos el botón Crear

Private Sub btnCrear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCrear.Click 'Asigamos el contenido de la caja de Texto 'A la variable nomUser Me.nomUser = Me.txtUsuario.Text.Trim 'Invocamos al método nuevoUsuario MsgBox(nuevoUsuario(nomUser)) End Sub

Page 4: Clases en visual basic .Net

Ing. Hobby Saavedra Rosas

Programación Orientada a Objetos I

5. Programamos el botón Mostrar.

Private Sub btnMostrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMostrar.Click 'Mostrar en un MsgBox, los datos del usuario 'Invocamos al método listarUsuario MsgBox(listarUsuario) End Sub

6. Ejecución de la aplicación

6.1. Ingresamos el nombre de un usuario

6.2. Luego clic en nuevo

6.3. Luego clic en mostrar

Page 5: Clases en visual basic .Net

Ing. Hobby Saavedra Rosas

Programación Orientada a Objetos I

EJERCICIOS PROPUESTOS

1) Implemente una clase de nombre TV con los siguientes atributos: número de serie, marca

(Sony, Phillips,Panasonic, LG,Samsung), año de fabricación , precio en dolares .

Considere un metodo que calcule el precio en soles a un tipo de cambio que se le indique

como parámetro.

Creamos una clase TV, en Visual Basic .NET

Public Class TV '--------ATRIBUTOS--------------' Private _numeroSerie As String Private _marca As String Private _anioFabricacion As String Private _precioDolares As Decimal '---------PROPIEDADES-----------' Public Property numeroSerie() As String Get Return _numeroSerie End Get Set(ByVal value As String) _numeroSerie = value End Set End Property Public Property marca() As String Get Return _marca End Get Set(ByVal value As String) _marca = value End Set End Property Public Property anioFabricacion() As String Get Return _anioFabricacion End Get Set(ByVal value As String) _anioFabricacion = value End Set End Property Public Property precioDolares() As Decimal Get Return _precioDolares End Get Set(ByVal value As Decimal) _precioDolares = value End Set End Property '---------MÉTODOS-------------------------' Overrides Function toString() As String Return _numeroSerie + " "

Page 6: Clases en visual basic .Net

Ing. Hobby Saavedra Rosas

Programación Orientada a Objetos I

End Function Public Function precioSoles(ByVal tipoCambio As Decimal) As Decimal Return precioDolares * tipoCambio End Function End Class

Diseñamos el formulario para ingresar los datos del TV

Código fuente dentro del formulario FrmTV

Public Class FrmTV Public objTV As TV Public marca As String Function nuevoTV() As String objTV = New TV objTV.numeroSerie = UCase(Me.txtNumSerie.Text.Trim) objTV.marca = Me.marca objTV.anioFabricacion = Me.txtAnioFabricacion.Text.Trim objTV.precioDolares = CDec(Me.txtPrecioDolares.Text.Trim) Return "Tv creado con éxito" End Function Function mostrarTV() As String Return "Datos del TV 1: " & vbCrLf & _ "Número de Serie: " & objTV.numeroSerie.ToString & _ vbCrLf & "Marca : " & objTV.marca.ToString & _ vbCrLf & "Año de Fabricación : " & objTV.anioFabricacion.ToString & _ vbCrLf & "Precio en Dólares : " & objTV.precioDolares.ToString & _ vbCrLf & "Precio en Soles : " & objTV.precioSoles(2.58).ToString End Function Private Sub FrmTV_Load(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles MyBase.Load cboMarca.SelectedIndex = 0 End Sub

Page 7: Clases en visual basic .Net

Ing. Hobby Saavedra Rosas

Programación Orientada a Objetos I

Private Sub btnGrabar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGrabar.Click

MsgBox(nuevoTV) End Sub Private Sub btnMostrar_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles btnMostrar.Click MsgBox(mostrarTV) End Sub Private Sub cboMarca_SelectedIndexChanged(ByVal sender As System.Object,

ByVal e As System.EventArgs) Handles cboMarca.SelectedIndexChanged Try marca = cboMarca.SelectedItem.ToString Catch ex As Exception End Try End Sub End Class

Ejecucion de la aplicación FrmTV, llenamos los datos

Clic en Grabar

Clic en Mostrar

Page 8: Clases en visual basic .Net

Ing. Hobby Saavedra Rosas

Programación Orientada a Objetos I

2) Implemente una clase de nombre Empleado con los siguientes atributos: codigo , nombre ,

area laboral, sueldo, horas extras, afiliación a una AFP. Además , considere atributos de

valores comunes para todos los empleados , para los porcentajes de descuento por

afiliación a una AFP( 11% del sueldo), por afiliación al sistema nacional de pensiones ( 6%

del sueldo) y por salud ( 3% del sueldo ). Considere métodos de cálculo para el monto de

horas extras (sueldo básico/240 * horas extras), monto de los descuentos por AFP, por

SNP, por salud, monto total de descuentos, sueldo total, sueldo neto.

Creamos una clase TV, en Visual Basic .NET

Public Class Empleado '--------ATRIBUTOS--------------' Private _codigoEmpleado As String Private _nombreEmpleado As String Private _areaLaboral As String Private _sueldoBasico As Decimal Private _horasExtras As Integer Private _afp As String '---------PROPIEDADES-----------' Public Property horasExtras() As Integer Get Return _horasExtras End Get Set(ByVal value As Integer) _horasExtras = value End Set End Property Public Property afp() As String Get Return _afp End Get Set(ByVal value As String) _afp = value End Set End Property Public Property sueldoBasico() As Decimal Get Return _sueldoBasico End Get Set(ByVal value As Decimal) _sueldoBasico = value End Set End Property Public Property areaLaboral() As String Get Return _areaLaboral End Get Set(ByVal value As String) _areaLaboral = value End Set End Property Public Property nombreEmpleado() As String Get Return _nombreEmpleado End Get

Page 9: Clases en visual basic .Net

Ing. Hobby Saavedra Rosas

Programación Orientada a Objetos I

Set(ByVal value As String) _nombreEmpleado = value End Set End Property Public Property codigoEmpleado() As String Get Return _codigoEmpleado End Get Set(ByVal value As String) _codigoEmpleado = value End Set End Property '---------MÉTODOS-------------------------' Public Function descuentoAfp() As Decimal Dim dsctoAfp As Decimal Select Case Me.afp Case "INTEGRA" dsctoAfp = _sueldoBasico * 0.11 Case "PRIMA" dsctoAfp = _sueldoBasico * 0.11 Case "PROFUTURO" dsctoAfp = _sueldoBasico * 0.11 Case "HORIZONTE" dsctoAfp = _sueldoBasico * 0.11 End Select Return dsctoAfp End Function Public Function descuentoSnp() As Decimal Return _sueldoBasico * 0.06 End Function Public Function descuentoEssalud() As Decimal Return _sueldoBasico * 0.03 End Function Public Function montoDstos() As Decimal Return descuentoAfp() + descuentoSnp() + descuentoEssalud() End Function Public Function montoHorasExtras() As Decimal Return _sueldoBasico * _horasExtras / 240 End Function Public Function sueldoTotal() As Decimal Return _sueldoBasico + montoHorasExtras() End Function Public Function sueldoNeto() As Decimal Return sueldoTotal() - montoDstos() End Function End Class

Page 10: Clases en visual basic .Net

Ing. Hobby Saavedra Rosas

Programación Orientada a Objetos I

Diseñamos el formulario para ingresar los datos del Empleado

Código Fuente

Public Class FrmEmpleado Public objEmpleado As Empleado Public afp As String Function nuevoEmpleado() As String objEmpleado = New Empleado objEmpleado.codigoEmpleado = Me.txtCodigo.Text.Trim objEmpleado.nombreEmpleado = Me.txtNombres.Text.Trim objEmpleado.areaLaboral = Me.txtAreaLaboral.Text.Trim objEmpleado.sueldoBasico = Me.txtSueldoBasico.Text.Trim objEmpleado.horasExtras = Me.txtHorasExtras.Text.Trim objEmpleado.afp = Me.afp Return "Empleado creado con éxito" End Function Function mostrarEmpleado() As String Return "Datos del Empleado 1: " & vbCrLf & _ "Nombre del Empleado:" & objEmpleado.nombreEmpleado.ToString & _ vbCrLf & "Sueldo Empleado:" & objEmpleado.sueldoTotal.ToString End Function Private Sub btnGrabar_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles btnGrabar.Click MsgBox(nuevoEmpleado) End Sub Private Sub btnMostrar_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles btnMostrar.Click MsgBox(mostrarEmpleado) End Sub Private Sub FrmEmpleado_Load(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles MyBase.Load cboAFP.SelectedIndex = 0 End Sub

Page 11: Clases en visual basic .Net

Ing. Hobby Saavedra Rosas

Programación Orientada a Objetos I

Private Sub cboAFP_SelectedIndexChanged(ByVal sender As System.Object,

ByVal e As System.EventArgs) Handles cboAFP.SelectedIndexChanged Try afp = cboAFP.SelectedItem.ToString Catch ex As Exception End Try End Sub End Class

Ejecución de la aplicaciones FrmEmpleado, llenamos lo datos solicitados:

Clic en Grabar

Clic en Mostrar

Page 12: Clases en visual basic .Net

Ing. Hobby Saavedra Rosas

Programación Orientada a Objetos I

3) Realizar la implementación en código VB 10.0, de la Clase Producto, encapsulamiento de

atributos, creación de Objetos y envío de mensajes haciendo uso de la herramienta

Visual Studio 2010.