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