En Visual Basic .net podemos definir un método que se ejecute inicialmente y en forma automática. Este método se lo llama constructor de la clase.
El constructor tiene las siguientes características:
Se desea guardar los sueldos de 5 operarios en un vector. Realizar la creación y carga del vector en el constructor.
Module Module1 Public Class PruebaConstructor Private sueldos(4) As Integer Public Sub New() Dim f As Integer For f = 0 To sueldos.GetUpperBound(0) Console.Write("Ingrese el sueldo:") sueldos(f) = Console.ReadLine() Next End Sub Public Sub Imprimir() Dim f As Integer For f = 0 To sueldos.GetUpperBound(0) Console.WriteLine(sueldos(f)) Next Console.ReadKey() End Sub End Class Sub Main() Dim op As New PruebaConstructor() op.Imprimir() End Sub End Module
Como podemos ver es el mismo problema que resolvimos cuando vimos vectores. La diferencia es que hemos sustituido el método Cargar con el constructor:
Public Sub New() Dim f As Integer For f = 0 To sueldos.GetUpperBound(0) Console.Write("Ingrese el sueldo:") sueldos(f) = Console.ReadLine() Next End Sub
Debe llamarse obligatoriamente New, no hay forma que no se ejecute el constructor.
La ventaja de plantear un constructor en lugar de definir un método con cualquier nombre es que se llamará en forma automática cuando se crea un objeto de esta clase:
Dim op As New PruebaConstructor()
Cuando se crea el objeto op se llama al método New en forma automática por tener definido un constructor la clase.
Finalmente llamamos al método imprimir:
op.Imprimir()
Plantear una clase llamada Alumno y definir como atributos su nombre y su edad. En el constructor realizar la carga de datos. Definir otros dos métodos para imprimir los datos ingresados y un mensaje si es mayor o no de edad (edad >=18)
Module Module1 Public Class Alumno Private nombre As String Private edad As Integer Public Sub New() Console.Write("Ingrese nombre:") nombre = Console.ReadLine() Console.Write("Ingrese edad:") edad = Console.ReadLine() End Sub Public Sub Imprimir() Console.WriteLine("Nombre:" & nombre) Console.WriteLine("Edad:" & edad) End Sub Public Sub EsMayorEdad() If edad >= 18 Then Console.Write(nombre & " es mayor de edad.") Else Console.Write(nombre & " no es mayor de edad.") End If End Sub End Class Sub Main() Dim alumno1 = New Alumno() alumno1.Imprimir() alumno1.EsMayorEdad() Console.ReadKey() End Sub End Module
Declaramos la clase Alumno, sus dos atributos y definimos el constructor:
Public Class Alumno Private nombre As String Private edad As Integer Public Sub New() Console.Write("Ingrese nombre:") nombre = Console.ReadLine() Console.Write("Ingrese edad:") edad = Console.ReadLine() End Sub
En la Main el constructor se llama en forma automática cuando creamos un objeto de la clase Alumno:
Sub Main() Dim alumno1 = New Alumno()
Los otros dos métodos deben llamarse por su nombre y en el orden que necesitemos:
alumno1.Imprimir() alumno1.EsMayorEdad()
Module Module1 Public Class EmpleadoFabrica Private nombre As String Private sueldo As Single Public Sub New() Console.Write("Ingrese el nombre del empleado:") nombre = Console.ReadLine() Console.Write("Ingrese su sueldo:") sueldo = Console.ReadLine() End Sub Public Sub PagaImpuestos() If sueldo > 3000 Then Console.Write("Debe abonar impuestos") Else Console.Write("No paga impuestos") End If Console.ReadKey() End Sub End Class Sub Main() Dim empleado1 As New EmpleadoFabrica() empleado1.PagaImpuestos() End Sub End Module Module Module1 Public Class OperacionesCalculo Private valor1, valor2 As Integer Public Sub New() Console.Write("Ingrese primer valor:") valor1 = Console.ReadLine() Console.Write("Ingrese segundo valor:") valor2 = Console.ReadLine() End Sub Public Sub Sumar() Dim suma As Integer suma = valor1 + valor2 Console.WriteLine("La suma es:" & suma) End Sub Public Sub Restar() Dim resta As Integer resta = valor1 - valor2 Console.WriteLine("La resta es:" & resta) End Sub Public Sub Multiplicar() Dim multiplicacion As Integer multiplicacion = valor1 * valor2 Console.WriteLine("La multiplicación es:" & multiplicacion) End Sub Public Sub Dividir() Dim division As Integer division = valor1 / valor2 Console.WriteLine("La división es:" & division) End Sub End Class Sub Main() Dim opera As New OperacionesCalculo() opera.Sumar() opera.Restar() opera.Multiplicar() opera.Dividir() Console.ReadKey() End Sub End Module