Ayuda ejercicios unidad 14: Clases en VB





        Crear una clase en la que dispongamos de:

Una variable privada,

Una variable pública.

Una propiedad y su variable interna.

Una propiedad solo lectura, y su variable interna.

Una propiedad solo asignación, y su variable interna.

 

Public Class Ejercicio

  Dim Variable As String = "Valor por defecto"

  Public DatoExterno As String = "Valor por defecto"

  Dim Propie As String

  Dim PropieLectura As Integer

  Dim PropieAsignac As String

 

  Property Propiedad() as String

    Get

      Return Propie       ' Lectura

    End Get

    Set(ByVal value as String)

      Propie = value      ' Asignación

    End Set

  End Property

 

  WriteOnly Property PropiedadAsignacion() as String

    Set(ByVal value as String)

      PropieAsignac = value      ' Asignación

    End Set

  End Property

 

 

 

 

  ReadOnly Property PropiedadLectura() as Integer

    Get

      Return PropieLectura       ' Lectura

    End Get

  End Property

End Class

 

        A la clase anterior asignar datos a las variables en su declaración.

Modificar los contenidos de esas variables a través de sus propiedades, realizando un control en función del tipo de dato a introducir.

Visualizar los contenidos antes y después de los cambios.

 

Public Class Ejercicio

  Dim Variable As String = "Valor por defecto"

  Public DatoExterno As String = "Valor por defecto"

  Dim Propie As String = "Valor por defecto"

  Dim PropieLectura As Integer = 3

  Dim PropieAsignac As String = "Valor por defecto"

 

  Property Propiedad() As String

    Get

      Return Propie       ' Lectura

    End Get

    Set(ByVal value As String)

      If value <> "" Then Propie = value ' Asignación

    End Set

  End Property

 

 

  WriteOnly Property PropiedadAsignacion() As String

    Set(ByVal value As String)

      If value <> "" Then PropieAsignac = value ' Asignación

    End Set

  End Property

 

  ReadOnly Property PropiedadLectura() As Integer

    Get

      Return PropieLectura       ' Lectura

    End Get

  End Property

End Class

 

Module Module1

  Sub Main()

    Dim Objeto As New Ejercicio  ' ("Nuevo")

 

    Console.WriteLine("Antes {0} ", Objeto.DatoExterno)

    Objeto.DatoExterno = "Nuevo dato"

    Console.WriteLine("Después {0} ", Objeto.DatoExterno)

 

    Console.WriteLine("Antes {0} ", Objeto.Propiedad)

    Objeto.Propiedad = "Nuevo valor"

    Console.WriteLine("Después {0} ", Objeto.Propiedad)

 

    Console.WriteLine("Antes {0} ", Objeto.PropiedadLectura)

    '  no se puede asignar es read only, solo lectura

    '  Objeto.PropiedadLectura = 25

    Console.WriteLine("Después {0} ", Objeto.PropiedadLectura)

 

    '  no se puede leer es write Only

    '  Console.WriteLine("Antes {0} ", Objeto.PropiedadAsignacion) 

    Objeto.PropiedadAsignacion = "Nuevo valor"

    '  no se puede leer es write Only

    '  Console.WriteLine("Después {0} ", Objeto.PropiedadAsignacion)

    Console.ReadKey()

  End Sub

End Module

 

        Añadir a la clase anterior el método new, de forma que se pueda cargar los valores iniciales de las propiedades en el mismo.

 

Public Class Ejercicio

  Dim Variable As String = "Valor por defecto"

  Public DatoExterno As String = "Valor por defecto"

  Dim Propie As String = "Valor por defecto"

  Dim PropieLectura As Integer = 3

  Dim PropieAsignac As String = "Valor por defecto"

 

  Property Propiedad() As String

    Get

      Return Propie       ' Lectura

    End Get

    Set(ByVal value As String)

      If value <> "" Then Propie = value ' Asignación

    End Set

  End Property

 

 

  WriteOnly Property PropiedadAsignacion() As String

    Set(ByVal value As String)

      If value <> "" Then PropieAsignac = value ' Asignación

    End Set

  End Property

 

  ReadOnly Property PropiedadLectura() As Integer

    Get

      Return PropieLectura       ' Lectura

    End Get

  End Property

 

  Sub New(ByVal Prop As String, _

          ByVal PropLec As Integer, _

          ByVal PropAsig As String)

 

    If Prop <> "" Then Propie = Prop

    If PropLec <> 0 Then PropieLectura = PropLec

    If PropAsig <> "" Then PropieAsignac = PropAsig

 

  End Sub

End Class

 

 

Module Module1

  Sub Main()

    Dim Objeto As New Ejercicio("Valor prop en new", 23, "Valor PropAsig en New")

 

    Console.WriteLine("Antes {0} ", Objeto.DatoExterno)

    Objeto.DatoExterno = "Nuevo dato"

    Console.WriteLine("Después {0} ", Objeto.DatoExterno)

 

    Console.WriteLine("Antes {0} ", Objeto.Propiedad)

    Objeto.Propiedad = "Nuevo valor"

    Console.WriteLine("Después {0} ", Objeto.Propiedad)

 

    Console.WriteLine("Antes {0} ", Objeto.PropiedadLectura)

    '  no se puede asignar es read only, solo lectura

    '  Objeto.PropiedadLectura = 25

    Console.WriteLine("Después {0} ", Objeto.PropiedadLectura)

 

    '  no se puede leer es write Only

    '  Console.WriteLine("Antes {0} ", Objeto.PropiedadAsignacion) 

    Objeto.PropiedadAsignacion = "Nuevo valor"

    '  no se puede leer es write Only

    '  Console.WriteLine("Después {0} ", Objeto.PropiedadAsignacion)

    Console.ReadKey()

  End Sub

End Module

 

Observar como en la ejecución no se modifica el valor de la propiedad solo lectura.

 

   Inicio    






Página inicial  Cursos Informática Gratuitos

Síguenos en:   Facebook       Sobre aulaClic            Política de Cookies