pensando en objetos + consejos











bueno este documento quiero que sea una combinacion de algo que a la verdad hasta ahora aprendo que son las propiedades de los objetos donde usamos get para retornar y set para procesar los valores. es decir:

todo objeto tiene una propiedad, digamos que tenemos monedas de 100, 200, 500 "una de cada una" estos objetos estarían encerradas dentro de una plantilla que llamaremos "yo tengo dinero :D". Pero estos objetos "monedas" tienen sus propiedades aquí la mas destacables son su valor $100, $200 y $500 respectivamente, otra propiedad seria el tamaño, cada una posee un tamaño diferente. pero comparten métodos que las hace pertenecer a una misma plantilla los cuales son comprar cosas. Asi es como hablando de propiedades las declaramos como

public Property moneda () As double
get
return valor
end get

set (Byval valor as double)
end set
End Property

Ahora por lo que me motiva a publicar esta pequeña practica es que trabaje con diferencia de fechas. es decir conocer el tiempo transcurrido entre uno y otro. para los que usan la biblioteca sabrán que esto es lo básico de sistema toman la fecha de préstamo y la de entrega, luego obtiene la diferencia y si te pasa de dos días por decir algo te empiezan a multar. por lo que supongo que habrán algunos que les interese estos algoritmo, y mas que eso funciones de visual basic que ayudan a calcular estas diferencias.

utilizo estructuras para la fecha por como dije quería probar las propiedades de los objetos:

pues ahora si, aqui esta el codigo "solo una parte> la mas pequeña" la otra clase la pueden descargar con el proyecto completo:

Public Class actividad

'esta es una clase que supuestamente mostraria el comportamiento de un usuario en un for0
' si lo extendemos mas, esto seria el nivel de trabajo de un empleado en una empresa
' con lo que podriamos tener sus bajas o mejorar a nivel laborar, con lo q llevaria
' a memonrandos para su hoja de vida u ascensos en caso contrario
' pero vamos por el lado facil: un usuario d eun foro.



Structure Fderegistro
Dim dia As Byte
Dim mes As Byte
Dim anio As Short
End Structure
Public nick As String
Private Ndemensajes As Integer
Private registro As Fderegistro

Public Property nombre() As String ' propiedad #1: los nick deben contener almenos un caracter asi sea tipo alfanumerico o un caracter especial
Get 'aqui se devuelbe el valor del atributo
Return nick
End Get

Set(ByVal nom As String) 'aqui se procesa el valor del atributo
If (nom.Length = 0) Then
Console.WriteLine("")
Console.WriteLine("(X) Nombre vacio")
nick = 0 'mmm aquimando una bandera para que vuelba a ingresar nuevos datos
Console.ReadKey()
Console.Clear()
Else
nick = nom
End If
End Set
End Property


Public Property numdemesnajes() As Integer 'propiedad #2: el numero de mensajes no es <>
Get
Return Ndemensajes
End Get

Set(ByVal valor As Integer)
If (valor <>
Console.WriteLine("(X) El numero de mensajes es invalido, intentelo de nuevo")
Ndemensajes = -1
Console.ReadKey()
Console.Clear()
Console.Write("nombre del usuario: " & nick) ' esto lo ago para cuando se produce una excepcion de conversion de tipo y ahora que el numero es negativo

Else
Ndemensajes = valor
End If
End Set
End Property


Public Property ingFecha() As Fderegistro

Get 'aqui devulebo la info
Return registro
End Get
Set(ByVal recibido As Fderegistro) 'aqui proceso la info
If (recibido.anio <>
Console.WriteLine("(X) no existen fechas negativas")
recibido.anio = -1

Console.ReadKey()
'ahora algo mas estetico para que no se vea un desorden

Console.Clear()
Console.Write("nombre del usuario: " & nick)
Console.WriteLine("")
Console.Write("numero de mensajes: " & Ndemensajes)


Else
registro = recibido
End If
End Set
End Property



End Class



Nota: estaré haciendo las demás aplicaciones en modo gráfico jejejej o bueno eso creo.

No hay comentarios:

Publicar un comentario