You are on page 1of 12

DEFINIR CLASES EN VISUAL BASIC .

NET
1. Cree un proyecto haciendo clic en Nuevo proyecto en el men Archivo. 2. Aparecer el cuadro de dilogo Nuevo proyecto. 3. Seleccione Aplicacin para Windows de la lista de plantillas del proyecto de Visual Basic para mostrar el nuevo proyecto.

4. Elegimos la ubicacin 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 dilogo Agregar nuevo elemento. 6. Seleccione la plantilla Clase. 7. Asigne a la nueva clase el nombre Usuario.vb y, a continuacin, haga 8. clic en Agregar para mostrar el cdigo de la nueva clase.

Ing. Hobby Saavedra Rosas

Programacin Orientada a Objetos I

9. Cdigo de la clase Usuario.vb


Public Class Usuario End Class

10. Defina un campo privado para la clase; para ello, agregue el siguiente cdigo entre las instrucciones Class y End Class: Private _nombreUsuario As String
11. Declarar el campo como Private quiere decir que slo se puede utilizar dentro de la clase. Se pueden utilizar modificadores de acceso ms amplio, por ejemplo Public, para hacer que los campos estn disponibles desde fuera de la clase. 12. Defina una propiedad para la clase agregando el cdigo 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 mtodo para la clase agregando el cdigo siguiente:


'****************Definicin de metodos************* Public Sub AMayusculas() ' Convertir a maysculas 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 automticamente. Este constructor establece el valor del campo que contiene el nombre de usuario.

Ing. Hobby Saavedra Rosas

Programacin Orientada a Objetos I

MANEJO DE CLASES Y OBJETOS 1. Diseamos 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 botn 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 mtodo nuevoUsuario MsgBox(nuevoUsuario(nomUser)) End Sub

Ing. Hobby Saavedra Rosas

Programacin Orientada a Objetos I

5. Programamos el botn 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 mtodo listarUsuario MsgBox(listarUsuario) End Sub

6. Ejecucin de la aplicacin 6.1. Ingresamos el nombre de un usuario

6.2. Luego clic en nuevo

6.3. Luego clic en mostrar

Ing. Hobby Saavedra Rosas

Programacin Orientada a Objetos I

EJERCICIOS PROPUESTOS 1) Implemente una clase de nombre TV con los siguientes atributos: nmero de serie, marca (Sony, Phillips,Panasonic, LG,Samsung), ao de fabricacin , precio en dolares . Considere un metodo que calcule el precio en soles a un tipo de cambio que se le indique como parmetro. 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 '---------MTODOS-------------------------' Overrides Function toString() As String Return _numeroSerie + " "

Ing. Hobby Saavedra Rosas

Programacin Orientada a Objetos I

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

Diseamos el formulario para ingresar los datos del TV

Cdigo 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 & _ "Nmero de Serie: " & objTV.numeroSerie.ToString & _ vbCrLf & "Marca : " & objTV.marca.ToString & _ vbCrLf & "Ao de Fabricacin : " & objTV.anioFabricacion.ToString & _ vbCrLf & "Precio en Dlares : " & 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

Ing. Hobby Saavedra Rosas

Programacin 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 aplicacin FrmTV, llenamos los datos

Clic en Grabar

Clic en Mostrar

Ing. Hobby Saavedra Rosas

Programacin Orientada a Objetos I

2) Implemente una clase de nombre Empleado con los siguientes atributos: codigo , nombre , area laboral, sueldo, horas extras, afiliacin a una AFP. Adems , considere atributos de valores comunes para todos los empleados , para los porcentajes de descuento por afiliacin a una AFP( 11% del sueldo), por afiliacin al sistema nacional de pensiones ( 6% del sueldo) y por salud ( 3% del sueldo ). Considere mtodos de clculo para el monto de horas extras (sueldo bsico/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

Ing. Hobby Saavedra Rosas

Programacin 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 '---------MTODOS-------------------------' 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

Ing. Hobby Saavedra Rosas

Programacin Orientada a Objetos I

Diseamos el formulario para ingresar los datos del Empleado

Cdigo 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

Ing. Hobby Saavedra Rosas

Programacin 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

Ejecucin

de

la

aplicaciones

FrmEmpleado,

llenamos

lo

datos

solicitados:

Clic en Grabar

Clic en Mostrar

Ing. Hobby Saavedra Rosas

Programacin Orientada a Objetos I

3) Realizar la implementacin en cdigo VB 10.0, de la Clase Producto, encapsulamiento de atributos, creacin de Objetos y envo de mensajes haciendo uso de la herramienta Visual Studio 2010.

Ing. Hobby Saavedra Rosas

Programacin Orientada a Objetos I