sábado, 29 de noviembre de 2014

Definiendo Propiedades e Implementando Métodos

Crear una aplicación que contiene una clase de Visual Basic .NET
  1. Inicie Visual Studio .NET y cree un nuevo proyecto de aplicación de consola de Visual Basic .NET llamado EmployeeProperties.
  2. En el menú Proyecto, haga clic en Agregar clase. En el cuadro de diálogo Agregar nuevo elemento, escriba Employee.vb en el cuadro Nombre y, a continuación, haga clic en Abrir.
  3. Examine el código de la nueva clase en la ventana Ver código.

Definir campos, constructores y métodos

  1. Agregue tres campos Private a la clase Employee de la manera siguiente:
    Private Name As String
    Private Salary As Decimal
    Private HireDate As DateTime
  2. Defina un constructor para la clase con el fin de inicializar los campos de la clase Employee:
    Public Sub New(ByVal Name As String, _
                   ByVal Salary As Decimal, _
                   ByVal HireDate As DateTime)
       Me.Name = Name
       Me.Salary = Salary
       Me.HireDate = HireDate
    End Sub
  3. Agregue un método Public a la clase:
    Public Sub PayRise(ByVal Amount As Decimal)
       Me.Salary += Amount
    End Sub

Definir propiedades en la clase

  1. Agregue el código siguiente para agregar una propiedad de lectura y escritura llamada FullName. El descriptor de acceso Get devuelve el nombre del empleado. El descriptor de acceso Set utiliza el parámetro Value que se pasa en el descriptor de acceso Set para establecer el nombre del empleado.
    Public Property FullName() As String
       Get
          Return Me.Name
       End Get
       Set(ByVal Value As String)
          Me.Name = Value
       End Set
    End Property
  2. Agregue el código siguiente para agregar una propiedad ReadOnly llamada Remuneration. El descriptor de acceso Get devuelve el sueldo del empleado. No hay ningún descriptor de acceso Set porque el sueldo no se puede establecer directamente; la única forma de cambiar el sueldo es llamar al método PayRise.
    Public ReadOnly Property Remuneration() As Decimal
       Get
          Return Me.Salary
       End Get
    End Property
  3. Agregue el código siguiente para agregar otra propiedad ReadOnly llamada DaysSinceJoined. El descriptor de acceso Get calcula cuántos días ha trabajado el empleado para la compañía.
    Public ReadOnly Property DaysSinceJoined() As Integer
       Get
          Dim timespan As TimeSpan = DateTime.Now.Subtract(Me.HireDate)
          return timespan.Days
       End Get
    End Property

Crear un objeto y utilizar las propiedades

  1. Muestre el código de Module1.vb en la ventana Ver código.
  2. En el método Main, utilice el operador New para crear un objeto Employee. Asigne la referencia de objeto a una variable local Employee del siguiente modo:
    Dim worker As New Employee( "Jayne Doe", _
                                 125000, _
                                 New DateTime(1998, 7, 31) )
  3. Agregue el código siguiente para cambiar la propiedad FullName del empleado. Esto invocará implícitamente el descriptor de acceso Set para la propiedad FullName.
    worker.FullName = "Jayne Lafayette"
  4. Agregue el código siguiente para mostrar los detalles del empleado mediante los descriptores de acceso Get para las propiedades FullName, Remuneration y DaysSinceJoined:
    Console.WriteLine("Nombre completo: " & worker.FullName)
    Console.WriteLine("Remuneración: " & worker.Remuneration)
    Console.WriteLine("Días trabajados: " & worker.DaysSinceJoined)

Comprobar que funciona

  1. Genere y ejecute la aplicación.
  2. La aplicación mostrará la siguiente información en la consola (el valor "Días trabajados" depende de la fecha actual):
    Nombre completo: Jayne Lafayette
    Remuneración: 125000
    Días trabajados: 1139
  3. Vuelva al archivo Module1.vb en la ventana Ver código y agregue el código siguiente al final del método Main:
    worker.Remuneration = 1000000
  4. Pruebe a generar la aplicación. Aparecerá un error de compilación porque Remuneration es una propiedad de sólo lectura.
  5. Cambie la instrucción de la manera siguiente:
    worker.Salary = 1000000
  6. Pruebe a generar de nuevo la aplicación. Aparecerá otro error de compilación porque el campo Salary está marcado como Private. La única forma de modificar el sueldo del empleado es utilizar el método público PayRise.

No hay comentarios:

Publicar un comentario