Conceptos básicos de programación en Visual Basic.NET [email_address] dunbit.blogspot.com dunbitFormacion.blogspot.com dunbitTecnico.blogspot.com
Índice Variables y tipos de datos Sentencias de control Estructuras de Datos Procedimientos y Funciones Programación orientada a Objetos dunbit@hotmail.com  dunbitFormacion.blogspot.com
a. Variables y tipos de datos .NET FrameWork contiene los tipos System.object Mantienen los tipos anteriores Tipos de datos numéricos Enteros Byte  (entero de 1 byte sin signo) Short  (entero de 2 bytes con signo) Integer  (entero de 4 bytes con signo) Long  (entero de 8 bytes con signo) Estos tipos se asignan a  System.Byte ,  System.Int16 ,  System.Int32 , y  System.Int64 , respectivamente.  El valor predeterminado de un tipo integral es  0 .  dunbit@hotmail.com  dunbitFormacion.blogspot.com
Tipos de Datos Numéricos Tipos Decimales Single  (punto flotante de 4 bytes)  Double  (punto flotante de 8 bytes). Estos tipos se asignan a  System.Single  y  System.Double , respectivamente. El valor predeterminado de un tipo de punto flotante equivale al literal  0 .  El tipo  Decimal  (valor decimal de 16 bytes), que corresponde a  System.Decimal . El valor predeterminado decimal equivale al literal  0D .  Tipos Lógicos El tipo de valor  Boolean , que representa un valor de veracidad, es normalmente el resultado de una operación lógica o relacional. El literal es de tipo  System.Boolean . El valor predeterminado del tipo  Boolean  equivale al literal  False .  dunbit@hotmail.com  dunbitFormacion.blogspot.com
Tipos de Datos Tipo para Fechas El tipo de valor  Date , que representa una fecha, una hora o ambas y corresponde a  System.DateTime . El valor predeterminado del tipo  Date  equivale al literal  # 01/01/0001 12:00:00AM # .  Tipos para caracteres El tipo de valor  Char , que representa una carácter único unicode y corresponde a  System.Char . El valor predeterminado del tipo  Char  equivale a la expresión constante  ChrW( 0 ) .  El tipo de referencia  String , que representa una secuencia de los caracteres Unicode, se asigna a  System.String . El valor predeterminado del tipo  String  es una referencia Null.  dunbit@hotmail.com  dunbitFormacion.blogspot.com
Tipos de Datos Simular string de longitud fija  Dim s as string = space(10) Clase System.String, System.Text.StringBuilder    devuelve la misma instancia modificada Dim s as new system.stringBuilder S.append(“Esto”) S.append(“ es”) S.append(“ una”) S.append(“ prueba”) Msgbox s.tostring Métodos: Length, Copy, Replace, Trim, toLower,toUpper dunbit@hotmail.com  dunbitFormacion.blogspot.com
Variaciones de los tipos Integer    Short Long   Integer No existe   Long  Variant    no exite, Object Currency    no existe, decimal Date    no se guarda como Double String (longitud fija)    No existe dunbit@hotmail.com  dunbitFormacion.blogspot.com
Conversión de tipo de datos Ctype(expresión, tipo) Expresión, variable, resultado de una función, constante Tipo, cualquier expresión Dim as ... Dim x as string, y as integer X=“34” Y=ctype(x, integer) Funciones especificas Cint, Clong, Csng, Cdate... Conversión implícita Y=X  dunbit@hotmail.com  dunbitFormacion.blogspot.com
Variables inicialización Sintaxis  Palabra reservada DIM Nombre de la variable Palabra reservada AS Tipo de datos Opcional inicialización Múltiples variables Dim I,J,X As Integer    Todas integer  Podemos inicializar a la vez que se declara Dim i as integer =21 Dim dHoy as date=today() Dim dblFloat as double =123.1234 Dim dBirthay as date =#1/1/95# Dim calculo as integer = 1*5 dunbit@hotmail.com  dunbitFormacion.blogspot.com
Operadores de Asignación Asignación de valores de forma tradición Variable=variable {operador} expresión A=A + 25  Asignación Reducida Variable {Operador} = Expresión A+=25 Operadores *= /= += -=  ^= &= Dim M as string=“Primera parte” M &=“ segunda parte” dunbit@hotmail.com  dunbitFormacion.blogspot.com
Vectores Definición e Inicialización Cualquier tipo de datos, Empiezan siempre de 0 Dim a() as string ={“Lunes”, “Martes”} Tipos de datos por referencia No contienen el valor sino un puntero Ordenar Vectores A.Sort(A)   equiv    Array.Sort(A) Tamaño de un vector   A.Length Copiar un vector   A.copyto(b,0) Redimensionar    Redim, Preserve Declarando e inicializando Arrays Dim Month(12) as integer Dim aMonth() as integer={1,2,3,4,5,6,7,8,9,10,11,12} Dim x as string Redim x(5) Dim y(2) as string Redim preserve y(5) dunbit@hotmail.com  dunbitFormacion.blogspot.com
Vectores Multidimensionales Vectores con más de una dimensión Definición e Inicialización Dim a2(,) as integer Dim b2(1,1) as integer Dim c2(,) as integer ={{1,2,3},{4,5,6}} Tamaño C2.length    longitud total C2.GetUpperBound(0)    longitud de la primera dimesión C2.Rank    Nº de dimensiones Redimensionar    cambia el tamaño pero no el numero de dimensiones Redim  Preserve  (x,z) Copiar con Copy Diferencias No se puede ordenar .Sort  ni copiar con .CopyTo dunbit@hotmail.com  dunbitFormacion.blogspot.com
Ámbito de variables Ámbito de las variables Procedimiento/Función Public Sub.... .... Dim i as integer ... End Sub Bucle Dim i as Integer For i =1 to 10 Dim imax as integer Imax =i Next i Msgbox(“imMax)    Error dunbit@hotmail.com  dunbitFormacion.blogspot.com
Opciones de Visual Studio para las variables Explicit. Obliga a declarar todas las variables Strict. Limita las conversiones implícitas entre tipos de datos. Solo permite cuando el tipo de destino es mayor Dim i as integer, d as double, l as long D=12.2333 I=D  ‘ error I=256 L=I  ‘no error Compare.  Binario   Distingue mayúsculas Text    no distingue Predeterminar los valores desde: Herramientas    Opciones     (Activar la casilla)  Mostrar todas las configuraciones    Proyectos y soluciones    Valores predeterminados de VB dunbit@hotmail.com  dunbitFormacion.blogspot.com
El Lenguaje Visual basic .Net b. Sentencia de Control If – then – Else – End IF Select Case For variable= valor TO valor final STEP incremento For Each variable In colección While expresión Do Loop dunbit@hotmail.com  dunbitFormacion.blogspot.com
Sentencia de Control If – then – Else – End IF Operadores AND, OR,NOT Operadores AndAlso, OrElse Select Case Select Case expresion Case valor Case Else End Case dunbit@hotmail.com  dunbitFormacion.blogspot.com
Bucles Para un número fijo de iteraciones For variable= valor TO valor final STEP incremento ... NEXT variable For Each variable In colección ... Next Depende de una expresión el número de iteraciones While expresión ... End while Do while/until expresion Loop while/until expresion Generador automático de código  dunbit@hotmail.com  dunbitFormacion.blogspot.com
El Lenguaje Visual basic .Net  C. Estructuras de Datos dunbit@hotmail.com  dunbitFormacion.blogspot.com
Enumeraciones dunbit@hotmail.com  dunbitFormacion.blogspot.com
Lenguaje Visual Basic .NET d. Procedimientos y Funciones Llamar a los procedimientos y Funciones Paso de argumentos ByRef y ByVal Funciones y Procedimentos “Static” Devolver valores desde las funciones  dunbit@hotmail.com  dunbitFormacion.blogspot.com
Definición y llamadas Englobadas dentro de un módulo o clase Organización del código Funciones    devuelven valor Function pruebaFunction(param as tipo) as tipo Procedimientos    No devuelven valor Sub pruebaSub(param as tipo) Llamadas Se tiene que usar o asignar el valor devuelto de una función Call, no es obligatorio Uso obligatorio de paréntesis para los parámetros dunbit@hotmail.com  dunbitFormacion.blogspot.com
Parámetros Valores de entrada y/o salida que se utilizan o modifican en la función o procedimiento ByRef, se pasa la dirección de la variable en memoria, por lo que se puede modificar desde dentro. ByVal, se pasa una copia de la variable. No se modifica la variable externa, aunque se cambie dentro. Valor por defecto Parámetros Opcionales,  se identifica con Optional Obligatorio asignar un valor IsMissing no se puede utilizar dunbit@hotmail.com  dunbitFormacion.blogspot.com
Devolver Valores En procedimientos, mediante parámetros pasados ByRef En Funciones Asignando el valor a devolver a la función Function prueba() as string Prueba=“valor” End Function Uso de Return   sale de la función por lo que tiene que ser la última instrucción Function prueba() as string Return “valor” End Function dunbit@hotmail.com  dunbitFormacion.blogspot.com
2.f Programación Orientada a Objetos Definición de clases Creando y Destruyendo Objetos Herencia Interfaces Trabajar con Clases Herencia con Formularios dunbit@hotmail.com  dunbitFormacion.blogspot.com
Proceso de definición Añadir una clase al proyecto Podemos tener mas de una clase por fichero Asociar un nombre correcto a la clase Crear constructores según se necesite Crear destructores si es necesario Declarar las propiedades Declarar métodos y eventos dunbit@hotmail.com  dunbitFormacion.blogspot.com
Uso de modificadores de acceso Grado de acceso a los distintos elementos de una clase Public,  desde cualquier punto Private, solo desde la clase  Friend, desde la clase y otras clases del mismo ensamblado Protected, desde la clase y sus clases derivadas Protected friend, desde la clase, otras clases del mismo ensamblado y de sus clases derivadas dunbit@hotmail.com  dunbitFormacion.blogspot.com
Declaraciones Declaración de Métodos Public Sub Test(byval x as integer) End sub Public Function Test() as integer End Function Declaración de Propiedades [Default][Readonly][WriteOnly] Property Nombre ([Lista de parametros]) as tipo Get End Get Set End Set End Property dunbit@hotmail.com  dunbitFormacion.blogspot.com
Declaraciones II ReadOnly, solo podemos implementar el apartado Get Public ReadOnly Property MyData() as Integer Get Return intMyData End Get End Property WriteOnly, solo podemos implementar el apartado Set Public WriteOnly Property MyData() as Integer Set (byval value as Integer) intMyData=Value End Set End Property dunbit@hotmail.com  dunbitFormacion.blogspot.com
Sobrecarga de Métodos Métodos con el mismo nombre aceptan distintos parámetros Dependiendo de los parámetros ejecuta una acción distinta Si se sobrescribe un método heredado hay que utilizar la clave Overloads en la definición del método Public Function Display (s as string) as string Msgbox(“texto: “ & s) Return “String” End Function Public Function Display (i as integer) as integer Msgbox(“número: “ & i) Return 1 End Function dunbit@hotmail.com  dunbitFormacion.blogspot.com
Constructores Sub New sustituye a Class_Initialize, ejecuta código cuando el objeto es istanciado Se puede Sobrecargar Public Sub New() Intvalue=-1 End Sub dunbit@hotmail.com  dunbitFormacion.blogspot.com
Destructores Sub Finalize sustituye a Class_Terminate Se utiliza para limpiar recursos Se ejecuta el código cuando es destruido por Garbage collection. Puede no ser inmediatamente. Protected Sub Finalize() Conn.close End Sub dunbit@hotmail.com  dunbitFormacion.blogspot.com
Crear Objetos Definir objetos Definir una variable con el tipo de datos de la clase del objeto Dim c1 as ClasePrueba Definir e instanciar Definir la variable y crear el objeto llamando al constructor de la clase C1= new ClasePrueba Dim c2 as ClasePrueba=new ClasePrueba Dim c3 as new ClasePrueba dunbit@hotmail.com  dunbitFormacion.blogspot.com
Herencia Concepto de herencia, Crear una clase derivándola de una clase existente Propiedades, métodos, estructuras y eventos son heredables. Overriding y Overloading Sobrescribir vs sobrecargar Shadowing Ocultar los metodos seleccionados de la clase base MyBase Hacer referencia a la clase base desde la  clase  heredada dunbit@hotmail.com  dunbitFormacion.blogspot.com
Palabras clave Inherit, sirve para crear una clase derivada Public Class ClaseDerivada Inherit ClaseBase .... End Class NotInheritable, indica que la clase no puede servir como clase base Public NotInheritable Class ClaseBase .... End Class Public Class ClaseDerivada Inherit ClaseBase  ‘Error .... End Class dunbit@hotmail.com  dunbitFormacion.blogspot.com
Palabras Clave II MustInherit, la clase no puede ser instanciada, tiene que derivarse y crear el objeto de la clase derivada Public MustInherit Class ClaseBase .... End Class Dim x as new ClaseBase()  ‘Error Protected, solo se puede acceder por sus clases hijas Public MustInherit Class ClaseBase Public i as Integer  Protected s as string  End Class dunbit@hotmail.com  dunbitFormacion.blogspot.com
Overriding / Overloading Reemplazar el código de un método en una clase derivada Overridable, se puede sobrescribir en una clase derivada Public Overridable Sub Metodo() .... End Class MustOverride, se tiene que implementar en todas las clases derivadas Public MustOverride Sub Metodo() Overrides, Sobrescribe un metodo de la clase base Public Overrides Sub Metodo() .... End Class dunbit@hotmail.com  dunbitFormacion.blogspot.com
Overriding / Overloading NotOverridable, evita que se sobrescriba más allá de la clase derivada Public NotOverridable Overridable Sub Metodo() .... End Class Overloading, sobrecarga de un metodo con distintos parámetros Public Overloads Sub Metodo(byVal i as integer) .... End Class dunbit@hotmail.com  dunbitFormacion.blogspot.com
Shadowing Oculta los miembros de la clase base desde una clase derivada Class aBase Public Sub M1() ...  End Sub Class aShadow Inherits aBase Public shadows Sub M1(Byval i as integer) .... End Class Dim x as New aShadow x.M1 x.M1(29) dunbit@hotmail.com  dunbitFormacion.blogspot.com
MyBase Se refiere a la clase base Se puede acceder solo a los miembros public, protected, friend Public Class ClaseDerivada  inherits ClaseBase Public Sub New() Mybase.New() intValue=1 End Sub .... End Class dunbit@hotmail.com  dunbitFormacion.blogspot.com
Herencia de un Formulario ¿Por qué heredar un formulario? Es una clase Las aplicaciones mantienen un entorno más homogeneo Cambios en la clase base se propagan al resto de formularios Asistentes, formularios de validación dunbit@hotmail.com  dunbitFormacion.blogspot.com
Formulario Base Diseñar el formulario pensando en los formularios heredados Crear el formulario base como un formulario normal Identificar los propiedades de los controles Private, No se pueden modificar las propiedades fuera del formulario base Public, Se puede modificar sin restricciones Protected, Se pueden modificar las propiedades desde los formularios derivados Friend, Se puede modificar desde dentro del proyecto que contiene el formulario base Añadir la clave Overriable a los métodos apropiados Construir la solución del formulario base. dunbit@hotmail.com  dunbitFormacion.blogspot.com
Formulario Heredado Asegurar que el base es lo más completo posible Referenciar al ensamblado del formulario base Crear un nuevo formulario heredado desde el menú agregar Cambiar las propiedades de los controles si es necesario Sobrescribir los métodos necesarios si se han creado con la clave Override dunbit@hotmail.com  dunbitFormacion.blogspot.com

Introducción a la programación

  • 1.
    Conceptos básicos deprogramación en Visual Basic.NET [email_address] dunbit.blogspot.com dunbitFormacion.blogspot.com dunbitTecnico.blogspot.com
  • 2.
    Índice Variables ytipos de datos Sentencias de control Estructuras de Datos Procedimientos y Funciones Programación orientada a Objetos dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 3.
    a. Variables ytipos de datos .NET FrameWork contiene los tipos System.object Mantienen los tipos anteriores Tipos de datos numéricos Enteros Byte (entero de 1 byte sin signo) Short (entero de 2 bytes con signo) Integer (entero de 4 bytes con signo) Long (entero de 8 bytes con signo) Estos tipos se asignan a System.Byte , System.Int16 , System.Int32 , y System.Int64 , respectivamente. El valor predeterminado de un tipo integral es 0 . dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 4.
    Tipos de DatosNuméricos Tipos Decimales Single (punto flotante de 4 bytes) Double (punto flotante de 8 bytes). Estos tipos se asignan a System.Single y System.Double , respectivamente. El valor predeterminado de un tipo de punto flotante equivale al literal 0 . El tipo Decimal (valor decimal de 16 bytes), que corresponde a System.Decimal . El valor predeterminado decimal equivale al literal 0D . Tipos Lógicos El tipo de valor Boolean , que representa un valor de veracidad, es normalmente el resultado de una operación lógica o relacional. El literal es de tipo System.Boolean . El valor predeterminado del tipo Boolean equivale al literal False . dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 5.
    Tipos de DatosTipo para Fechas El tipo de valor Date , que representa una fecha, una hora o ambas y corresponde a System.DateTime . El valor predeterminado del tipo Date equivale al literal # 01/01/0001 12:00:00AM # . Tipos para caracteres El tipo de valor Char , que representa una carácter único unicode y corresponde a System.Char . El valor predeterminado del tipo Char equivale a la expresión constante ChrW( 0 ) . El tipo de referencia String , que representa una secuencia de los caracteres Unicode, se asigna a System.String . El valor predeterminado del tipo String es una referencia Null. dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 6.
    Tipos de DatosSimular string de longitud fija Dim s as string = space(10) Clase System.String, System.Text.StringBuilder  devuelve la misma instancia modificada Dim s as new system.stringBuilder S.append(“Esto”) S.append(“ es”) S.append(“ una”) S.append(“ prueba”) Msgbox s.tostring Métodos: Length, Copy, Replace, Trim, toLower,toUpper dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 7.
    Variaciones de lostipos Integer  Short Long  Integer No existe  Long Variant  no exite, Object Currency  no existe, decimal Date  no se guarda como Double String (longitud fija)  No existe dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 8.
    Conversión de tipode datos Ctype(expresión, tipo) Expresión, variable, resultado de una función, constante Tipo, cualquier expresión Dim as ... Dim x as string, y as integer X=“34” Y=ctype(x, integer) Funciones especificas Cint, Clong, Csng, Cdate... Conversión implícita Y=X dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 9.
    Variables inicialización Sintaxis Palabra reservada DIM Nombre de la variable Palabra reservada AS Tipo de datos Opcional inicialización Múltiples variables Dim I,J,X As Integer  Todas integer Podemos inicializar a la vez que se declara Dim i as integer =21 Dim dHoy as date=today() Dim dblFloat as double =123.1234 Dim dBirthay as date =#1/1/95# Dim calculo as integer = 1*5 dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 10.
    Operadores de AsignaciónAsignación de valores de forma tradición Variable=variable {operador} expresión A=A + 25 Asignación Reducida Variable {Operador} = Expresión A+=25 Operadores *= /= += -= ^= &= Dim M as string=“Primera parte” M &=“ segunda parte” dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 11.
    Vectores Definición eInicialización Cualquier tipo de datos, Empiezan siempre de 0 Dim a() as string ={“Lunes”, “Martes”} Tipos de datos por referencia No contienen el valor sino un puntero Ordenar Vectores A.Sort(A)  equiv  Array.Sort(A) Tamaño de un vector  A.Length Copiar un vector  A.copyto(b,0) Redimensionar  Redim, Preserve Declarando e inicializando Arrays Dim Month(12) as integer Dim aMonth() as integer={1,2,3,4,5,6,7,8,9,10,11,12} Dim x as string Redim x(5) Dim y(2) as string Redim preserve y(5) dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 12.
    Vectores Multidimensionales Vectorescon más de una dimensión Definición e Inicialización Dim a2(,) as integer Dim b2(1,1) as integer Dim c2(,) as integer ={{1,2,3},{4,5,6}} Tamaño C2.length  longitud total C2.GetUpperBound(0)  longitud de la primera dimesión C2.Rank  Nº de dimensiones Redimensionar  cambia el tamaño pero no el numero de dimensiones Redim Preserve (x,z) Copiar con Copy Diferencias No se puede ordenar .Sort ni copiar con .CopyTo dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 13.
    Ámbito de variablesÁmbito de las variables Procedimiento/Función Public Sub.... .... Dim i as integer ... End Sub Bucle Dim i as Integer For i =1 to 10 Dim imax as integer Imax =i Next i Msgbox(“imMax)  Error dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 14.
    Opciones de VisualStudio para las variables Explicit. Obliga a declarar todas las variables Strict. Limita las conversiones implícitas entre tipos de datos. Solo permite cuando el tipo de destino es mayor Dim i as integer, d as double, l as long D=12.2333 I=D ‘ error I=256 L=I ‘no error Compare. Binario  Distingue mayúsculas Text  no distingue Predeterminar los valores desde: Herramientas  Opciones  (Activar la casilla) Mostrar todas las configuraciones  Proyectos y soluciones  Valores predeterminados de VB dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 15.
    El Lenguaje Visualbasic .Net b. Sentencia de Control If – then – Else – End IF Select Case For variable= valor TO valor final STEP incremento For Each variable In colección While expresión Do Loop dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 16.
    Sentencia de ControlIf – then – Else – End IF Operadores AND, OR,NOT Operadores AndAlso, OrElse Select Case Select Case expresion Case valor Case Else End Case dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 17.
    Bucles Para unnúmero fijo de iteraciones For variable= valor TO valor final STEP incremento ... NEXT variable For Each variable In colección ... Next Depende de una expresión el número de iteraciones While expresión ... End while Do while/until expresion Loop while/until expresion Generador automático de código dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 18.
    El Lenguaje Visualbasic .Net C. Estructuras de Datos dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 19.
    Enumeraciones dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 20.
    Lenguaje Visual Basic.NET d. Procedimientos y Funciones Llamar a los procedimientos y Funciones Paso de argumentos ByRef y ByVal Funciones y Procedimentos “Static” Devolver valores desde las funciones dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 21.
    Definición y llamadasEnglobadas dentro de un módulo o clase Organización del código Funciones  devuelven valor Function pruebaFunction(param as tipo) as tipo Procedimientos  No devuelven valor Sub pruebaSub(param as tipo) Llamadas Se tiene que usar o asignar el valor devuelto de una función Call, no es obligatorio Uso obligatorio de paréntesis para los parámetros dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 22.
    Parámetros Valores deentrada y/o salida que se utilizan o modifican en la función o procedimiento ByRef, se pasa la dirección de la variable en memoria, por lo que se puede modificar desde dentro. ByVal, se pasa una copia de la variable. No se modifica la variable externa, aunque se cambie dentro. Valor por defecto Parámetros Opcionales, se identifica con Optional Obligatorio asignar un valor IsMissing no se puede utilizar dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 23.
    Devolver Valores Enprocedimientos, mediante parámetros pasados ByRef En Funciones Asignando el valor a devolver a la función Function prueba() as string Prueba=“valor” End Function Uso de Return  sale de la función por lo que tiene que ser la última instrucción Function prueba() as string Return “valor” End Function dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 24.
    2.f Programación Orientadaa Objetos Definición de clases Creando y Destruyendo Objetos Herencia Interfaces Trabajar con Clases Herencia con Formularios dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 25.
    Proceso de definiciónAñadir una clase al proyecto Podemos tener mas de una clase por fichero Asociar un nombre correcto a la clase Crear constructores según se necesite Crear destructores si es necesario Declarar las propiedades Declarar métodos y eventos dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 26.
    Uso de modificadoresde acceso Grado de acceso a los distintos elementos de una clase Public, desde cualquier punto Private, solo desde la clase Friend, desde la clase y otras clases del mismo ensamblado Protected, desde la clase y sus clases derivadas Protected friend, desde la clase, otras clases del mismo ensamblado y de sus clases derivadas dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 27.
    Declaraciones Declaración deMétodos Public Sub Test(byval x as integer) End sub Public Function Test() as integer End Function Declaración de Propiedades [Default][Readonly][WriteOnly] Property Nombre ([Lista de parametros]) as tipo Get End Get Set End Set End Property dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 28.
    Declaraciones II ReadOnly,solo podemos implementar el apartado Get Public ReadOnly Property MyData() as Integer Get Return intMyData End Get End Property WriteOnly, solo podemos implementar el apartado Set Public WriteOnly Property MyData() as Integer Set (byval value as Integer) intMyData=Value End Set End Property dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 29.
    Sobrecarga de MétodosMétodos con el mismo nombre aceptan distintos parámetros Dependiendo de los parámetros ejecuta una acción distinta Si se sobrescribe un método heredado hay que utilizar la clave Overloads en la definición del método Public Function Display (s as string) as string Msgbox(“texto: “ & s) Return “String” End Function Public Function Display (i as integer) as integer Msgbox(“número: “ & i) Return 1 End Function dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 30.
    Constructores Sub Newsustituye a Class_Initialize, ejecuta código cuando el objeto es istanciado Se puede Sobrecargar Public Sub New() Intvalue=-1 End Sub dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 31.
    Destructores Sub Finalizesustituye a Class_Terminate Se utiliza para limpiar recursos Se ejecuta el código cuando es destruido por Garbage collection. Puede no ser inmediatamente. Protected Sub Finalize() Conn.close End Sub dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 32.
    Crear Objetos Definirobjetos Definir una variable con el tipo de datos de la clase del objeto Dim c1 as ClasePrueba Definir e instanciar Definir la variable y crear el objeto llamando al constructor de la clase C1= new ClasePrueba Dim c2 as ClasePrueba=new ClasePrueba Dim c3 as new ClasePrueba dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 33.
    Herencia Concepto deherencia, Crear una clase derivándola de una clase existente Propiedades, métodos, estructuras y eventos son heredables. Overriding y Overloading Sobrescribir vs sobrecargar Shadowing Ocultar los metodos seleccionados de la clase base MyBase Hacer referencia a la clase base desde la clase heredada dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 34.
    Palabras clave Inherit,sirve para crear una clase derivada Public Class ClaseDerivada Inherit ClaseBase .... End Class NotInheritable, indica que la clase no puede servir como clase base Public NotInheritable Class ClaseBase .... End Class Public Class ClaseDerivada Inherit ClaseBase ‘Error .... End Class dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 35.
    Palabras Clave IIMustInherit, la clase no puede ser instanciada, tiene que derivarse y crear el objeto de la clase derivada Public MustInherit Class ClaseBase .... End Class Dim x as new ClaseBase() ‘Error Protected, solo se puede acceder por sus clases hijas Public MustInherit Class ClaseBase Public i as Integer Protected s as string End Class dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 36.
    Overriding / OverloadingReemplazar el código de un método en una clase derivada Overridable, se puede sobrescribir en una clase derivada Public Overridable Sub Metodo() .... End Class MustOverride, se tiene que implementar en todas las clases derivadas Public MustOverride Sub Metodo() Overrides, Sobrescribe un metodo de la clase base Public Overrides Sub Metodo() .... End Class dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 37.
    Overriding / OverloadingNotOverridable, evita que se sobrescriba más allá de la clase derivada Public NotOverridable Overridable Sub Metodo() .... End Class Overloading, sobrecarga de un metodo con distintos parámetros Public Overloads Sub Metodo(byVal i as integer) .... End Class dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 38.
    Shadowing Oculta losmiembros de la clase base desde una clase derivada Class aBase Public Sub M1() ... End Sub Class aShadow Inherits aBase Public shadows Sub M1(Byval i as integer) .... End Class Dim x as New aShadow x.M1 x.M1(29) dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 39.
    MyBase Se refierea la clase base Se puede acceder solo a los miembros public, protected, friend Public Class ClaseDerivada inherits ClaseBase Public Sub New() Mybase.New() intValue=1 End Sub .... End Class dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 40.
    Herencia de unFormulario ¿Por qué heredar un formulario? Es una clase Las aplicaciones mantienen un entorno más homogeneo Cambios en la clase base se propagan al resto de formularios Asistentes, formularios de validación dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 41.
    Formulario Base Diseñarel formulario pensando en los formularios heredados Crear el formulario base como un formulario normal Identificar los propiedades de los controles Private, No se pueden modificar las propiedades fuera del formulario base Public, Se puede modificar sin restricciones Protected, Se pueden modificar las propiedades desde los formularios derivados Friend, Se puede modificar desde dentro del proyecto que contiene el formulario base Añadir la clave Overriable a los métodos apropiados Construir la solución del formulario base. dunbit@hotmail.com dunbitFormacion.blogspot.com
  • 42.
    Formulario Heredado Asegurarque el base es lo más completo posible Referenciar al ensamblado del formulario base Crear un nuevo formulario heredado desde el menú agregar Cambiar las propiedades de los controles si es necesario Sobrescribir los métodos necesarios si se han creado con la clave Override dunbit@hotmail.com dunbitFormacion.blogspot.com

Notas del editor

  • #4 Tipos de datos: Modos en los que se puede almacenar y operar con información. .NET FrameWork contiene los tipos de datos básicos, por lo que independientemente del lenguaje de programación y la plataforma de destino siempre están los mismos. Por compatibilidad con versiones anteriores podemos utilizar tipos de datos que no aparecen por defecto en el entorno de Visual Studio (por ejemplo DateTime no es un tipo que te muestre el diseñador ya que nos muestra date, pero en cambio si lo escribimos no da error y nos deja operar con el) Los tipos de datos numéricos los utilizamos para trabajar con números. Se diferencian los números enteros (no tienen decimales), de los decimales. De los tipos enteros destacar que el tipo de datos Integer ha pasado de utilizar 16 bits para almacenar la información a 32, por lo que admite desde 0 – 4.294.967.296 en vez del rango 0-65.536 de versiones anteriores Programación ASP .NET Ver 4.0 Sep 09
  • #5 Los tipos de datos decimales tienen una mayor precisión que los enteros al poder almacenar valores decimales. El rango de datos que soporta Double es –1,79769313486231570E+308 a –4,94065645841246544E-324 El rango más grande lo almacena el tipo Decimal, +/-7.9228162514264337593543950335E+28 y el valor más pequeño distinto de cero es +/-0.0000000000000000000000000001 (+/-1E-28). El tipo boolean se utiliza para almacenar verdadero/falso, se utiliza principalmente para guardar información de control y realizar acciones en el programa según el estado de ese valor Programación ASP .NET Ver 4.0 Sep 09
  • #6 A la hora de almacenar fechas y horas podemos almacenarlos tanto en tipos de datos para caracteres, como los específicos de fecha y hora. La diferencia principal viene a la hora de operar con ellos, ya que los tipos de datos para caracteres los tenemos que convertir a fecha para poder comparar fechas, añadir o restar días, meses o años a las fechas La principal diferencia entre el tipo Char y Srtring es el tamaño de la información que contienen, ya que el primero solo sirve para almacenar una letra mientras que el segundo permite guardar cadenas de texto Programación ASP .NET Ver 4.0 Sep 09
  • #7 Desaparece el tipo de datos String de longitud fija (siempre ocupa lo mismo independientemente que tenga valor en toda su longitud). Podemos simularlo creando una variable que sea de tipo de datos string e iniciándola (rellenando inicialmente) del número de espacios en blanco que queramos Una ampliación del tipo de datos String es la clase StringBuilder (constructor de cadenas de texto), dispone de una serie de métodos para construir, concatenar y modificar textos. En el ejemplo se crea una variable de nombre S, a la que se le va añadiendo texto utilizando el método append. El resultado final se escribe en una ventana de mensaje y sería “Esto es una prueba” Programación ASP .NET Ver 4.0 Sep 09
  • #8 Esta tabla representa la variación de los tipos de datos entre las versiones anteriores a .NET y .NET En algunos casos cambio el tamaño de almacenamiento, con la consiguiente ampliación de datos que pueden contener, en otros se crean nuevos tipos o se descartan algunos como el string de longitud fija que ahora no existe Programación ASP .NET Ver 4.0 Sep 09
  • #9 En muchas ocasiones es necesario convertir variables definidas de un tipo de datos a otro para poder operar con ellas de forma correcta. .NET contiene una herramienta para convertir una expresión ( una variable, un objeto, un valor) en un tipo distinto. Heredado de las versiones anteriores podemos utilizar funciones especificas para convertir una variable en un tipo en concreto. En el ejemplo la variable X se define del tipo string, se le asigna el valor “34” (al ir entre comillas dobles se considera un texto) y posteriormente se convierte al tipo de datos numérico Integer, almacenando el resultado en la variable Y. Existe la conversión implícita entre tipos de datos, de tal manera que podemos convertir una variable de un tipo a otro sin necesidad de utilizar ninguna función de conversión. Programación ASP .NET Ver 4.0 Sep 09
  • #10 Al definir una variable estamos creando un espacio donde albergar información. Según el tipo de datos que hayamos utilizado a la hora de crear esa variable, esa zona de memoria podrá contener una información u otra. Por defecto, Visual Studio está configurado para que tengamos que definir todas las variables antes de poder usarlas Podemos hacer en un solo paso, definir la variable y asignarle un valor inicial. Si no le asignamos ningún valor manualmente, la variable contiene el valor por defecto del tipo de datos con el que lo hayamos definido A la hora de definir variables del mismo tipo, no es necesario utilizar una línea para cada una, podemos agruparlas detrás del mismo DIM. Todas las variables se definen a la vez. Este sistema no permite inicializarlas a la vez que las definimos Programación ASP .NET Ver 4.0 Sep 09
  • #11 Asignar valores a una variable consiste en rellenarlas con algún dato Esta asignación se puede hacer en el momento de la definición o posteriormente en el programa A una variable le podemos asignar directamente un valor, otra variable o el resultado de una función Cuando le asignamos un valor, si es tipo texto tiene que ir entre comillas “” y cuando es una fecha entre almohadillas # Cuando le asignamos otra variable, toma el valor de la nueva variable, teniendo ahora dos variables con el mismo valor Cuando le asignamos el resultado de una función tenemos que asegurarnos que el tipo de datos devuelto por la función y el de la variables son iguales o que .NET intentará hacer una conversión. Ejemplo: Dim d as string= today().date. La función Today() devuelve la fecha actual y al almacenar esa fecha en una variable tipo string .NET transforma la fecha en texto Programación ASP .NET Ver 4.0 Sep 09
  • #12 Un vector es una lista de variables del mismo tipo, donde cada una tiene un índice que la distingue del resto. A la hora de definir un vector podemos indicarle el tamaño y el tipo de las variables que contiene o indicarse solo el tipo e inicializarlo con un conjunto de valores. NO podemos indicarle un tamaño e inicializarlo a la vez, son formas excluyentes de crear un vector, o indicas el tamaño o lo inicializas con valores El método Sort de un vector permite ordenar de forma automática los valores. Podemos escribirlo de dos maneras, con el nombre de la variable o con el tipo genérico ARRAY Al ser variables más complejas tenemos métodos definidos para realizar tareas como copiar el contenido de uno a otro o calcular la longitud Si tenemos que cambiar la longitud del vector (el número de valores que puede contener) tenemos la función REDIM ( redimensionar), pero es importante entender que se perderá toda la información, ya que lo vuelve a crear, salvo que utilicemos REDIM PRESERVE (redimensionar conservando los datos) Programación ASP .NET Ver 4.0 Sep 09
  • #13 Los vectores multimensionales son una ampliación de los vectores normales y se utilizan normalmente para crear tablas en memoria Además de indicar el tipo, tenemos que indicar la longitud de cada uno de sus “lados”. Podemos hacer igual que en los anteriores indicar la longitud inicializándolo con una lista de valores En cuanto a operar con vectores multidimensionales es muy similar a los unidimensionales, aunque por la complejidad algunas funcionalidades como la ordenación con el método Sort no se pueden utilizar Programación ASP .NET Ver 4.0 Sep 09
  • #14 El concepto de ámbito, es la zona del programa donde podemos utilizar esa variable. Normalmente el ámbito está reducido al procedimiento o la función y dentro de esa estructura a bucles o sentencias de control En el ejemplo del Bucle, la variable imax está definida dentro del bucle For...Next, por lo que solo estará disponible ahí dentro. Fuera de ese punto no podemos utilizarla Programación ASP .NET Ver 4.0 Sep 09
  • #15 Podemos configurar Visual Studio para que tenga un comportamiento determinado a la hora de definir, inicializar y comparar las variables Explicit, si está activo tenemos que declarar todas las variables antes de asignarles cualquier valor. Es muy recomendable para evitar errores de sintaxis, aunque hay que añadir más código con la definición. El valor por defecto de esta opción es Activo Strict, si está activo no permite conversiones implícitas entre variables de distintos tipos. Tendremos que utilizar funciones de conversión para poder asignar valores de tipos distintos. El valor por defecto de esta opción es Desactivado Compare, podemos definir si queremos que distinga entre mayúsculas y minúsculas. El valor por defecto de esta opción es Text Programación ASP .NET Ver 4.0 Sep 09
  • #16 Por sentencias de control, se entiende al código necesario para que el programa tenga un comportamiento distinto según unos parámetros (valores de controles, valor de variables,…) Tenemos dos familias de sentencias de control Selectivas. Dependiendo de la evaluación de una condición ejecuta una acción u otra. Dentro de esta categoría tenemos la estructura IF y la estructura SELECT Bucles. Repiten una acción un número determinado de veces o hasta que se cumpla una condición o mientras que se cumpla esa condición. Programación ASP .NET Ver 4.0 Sep 09
  • #17 IF evalúa una condición y permite bifurcar el código en dos direcciones, por un lado en el caso de que la condición sea cierta o que la condición sea falsa La condición puede ser simple o compleja. En el caso de que sea simple, evalúa un solo elemento y el complejo podemos añadir varias condiciones unidas por los operadores lógicos AND y OR. Un caso especial de operador lógicos son ANDAlso y ORelse. Con estos operadores, solo evalúa la segunda condición si la primera es cierta o falsa respectivamente. Select Case es una ampliación del caso anterior. Podemos querer que el programa se comporte de varias formas en función del valor de una expresión. Si podemos tener más de dos opciones podemos solucionarlo fácilmente con Select Case. El funcionamiento cambia un poco respecto a IF. En este caso tenemos una expresión (variable, función…) que va a poder tomar varios valores. Podemos especificar qué hacer para cada uno de esos valores (en cada case) y un último caso (Else) que determina el comportamiento para todos los casos no especificados anteriormente Programación ASP .NET Ver 4.0 Sep 09
  • #18 For … Next. Las instrucciones de código que están entre estas dos etiquetas se van a repetir un número fijo de veces o iteraciones. Este número viene determinado por un valor inicial hasta un valor final. Si no se especifica nada, el contador va aumentando de uno en uno, aunque se puede modificar utilizando el modificador STEP. Este modificador permite determinar en qué número que tiene que incrementarse o decrementarse el contador. For Each … Next . Se utiliza para recorrer listas. No se basa en un contador, sino que ejecuta las instrucciones entre las etiquetas, tantas veces como elementos haya en la lista. While expresión… end while . Se ejecutan las instrucciones entre estas etiquetas mientras que la expresión sea cierta. No tiene que ver con un número fijo de veces ni con una lista, sino solo con una condión. Esta condición sule basarse en el valor de una variable que se actualiza dentro del bucle. Podemos hacer que tenga el mismo comportamiento que un bucle for utilizando una variable contador Do ….while expresión/do until expresión, Loop ….while expresión. Son similares que el caso anterior. En el primer caso se entra dentro del bucle si la expresión se cumple y en el segundo si no se cumple Para todos estas estructuras podemos utilizar el generador automático de código que viene con el visual studio. Facilita la codificación ya que genera automáticamente el código para la estructura, teniendo nosostros que rellenar las expresiones y el código a ejecutar. Programación ASP .NET Ver 4.0 Sep 09
  • #19 Las estructuras permiten definir a los usuarios elementos para almacenar información formados por variables de diferentes tipos. No llega a la complejidad de un objeto, ya que no podemos programar el comportamiento, solo permite contener información que nosotros podemos asignar o leer. En el ejemplo se crea una estructura de nombre Cliente que esta formado por tres valores. El primero es un identificador de tipo texto, el segundo el teléfono de tipo texto y el tercero el teléfono de noches también de tipo texto. Una vez definida la estructura podemos empezar a utilizarla creando variables que tengan como tipo la estructura creada. Estas variables pueden ser simples o compuestas como los vectores Tanto para asignar un valor a un elemento o para leer el valor de un elemento de la estructura tenemos que utilizar la sintaxis “nombrevariable” . ”nombreelemento” , no podemos indicar únicamente el nombre de la variable ya que al tener varios campos no sabe a cual queremos asignar un valor o leer. Para simplificar el acceso a estos campos internos, utilizamos la sentencia With. Cuando le indicamos al With con qué variable queremos trabajar ya podemos acceder a cada uno de los campos directamente sin necesidad de volver a indicar el nombre de la variable. Este acceso lo podemos hacer así entre las etiquetas With y End With Programación ASP .NET Ver 4.0 Sep 09
  • #20 Las enumeraciones se utilizan para facilitar la programación asignando valores numéricos a textos, de tal manera que no tenemos que utilizar los códigos sino los nombres. Otra ventaja de las enumeraciones es que evita el cometer errores a la hora de asignar valores, ya que conforme estamos programando nos permite utilizar solo los valores asignados para esa numeración La forma de trabajar con las enumeraciones es similar a las estructuras, primero definimos la enumeración y después podemos utilizarla en variables definidas de ese tipo o de tipo numérico Dispone de una serie de métodos para obtener automáticamente todos los valores o nombres de la enumeración o de uno solo en concreto Programación ASP .NET Ver 4.0 Sep 09
  • #21 Las funciones y los procedimientos ayudan a estructurar y reutilizar el código, ganando tiempo y evitando errores de programación La base del código estructurado es encapsular funcionalidad dentro de una función o procedimiento de tal manera que lo podamos llamar desde cualquier parte del código sin necesidad de saber cual es su comportamiento interno Programación ASP .NET Ver 4.0 Sep 09
  • #22 Las funciones y los métodos están siempre dentro de una clase. Podemos utilizarlos tanto en ficheros de código asociados a formularios o páginas web como en librerías de clases La principal diferencia entre las funciones y los procedimientos es que las primeras siempre tienen que devolver un valor del tipo que consta en su definición y los segundos solo pueden devolver datos modificando los variables de entrada o parámetros Para utilizar una función o un parámetro desde el programa, solo es necesario indicar el nombre y especificar los parámetros necesarios, según se hayan definido Programación ASP .NET Ver 4.0 Sep 09
  • #23 Cuando definimos una función, podemos utilizar valores que vengan desde el exterior, para realizar las operaciones dentro. Estos valores que se pasan desde el exterior se llaman parámetros. En el proceso de definición podemos determinar si queremos que esos valores del exterior puedan modificarse dentro pero que no se modifiquen en el exterior (Byval) o que si se modifican dentro, también cambien en el exterior(Byref) Podemos tener una serie de valores predeterminados para los parámetros de tal manera que si cuando se llama desde el código a la función, no se especifican, se utilicen los valores por defecto previamente definidos. Para que este caso funcionen, se tienen que definir los parámetros como Optional Programación ASP .NET Ver 4.0 Sep 09
  • #24 Los procedimientos solo pueden devolver valores (sacar fuera del procedimiento un valor) modificando los parámetros que estén definidos como ByRef Las funciones, obligatoriamente tienen que devolver un valor del tipo especificado en la definición (En el ejemplo As string) La forma de devolver un valor de una función es asignándoselo al nombre de la función o utilizando la palabra reservada Return Programación ASP .NET Ver 4.0 Sep 09
  • #25 La programación orientada a objetos se basa en un análisis del problema que queremos solucionar, enfocándolo a los elementos que participan en cada tarea. Vamos a programar tanto las características que tienen como las funcionalidades en las Clases para crear posteriormente los objetos
  • #26 Las clases son el elemento donde vamos a definir todas las características y funcionalidades de los objetos. Estas clases las escribimos en los archivos con extensión .vb o .cs según el lenguaje que utilicemos para programar. El fichero que contiene la clase no tiene porqué tener el mismo nombre, aunque es recomendable para facilitarnos el trabajo en proyectos pequeños. Un mismo fichero puede contener varias clases que tienen cada una un nombre distinto. En una clase puede contener cuatro tipos distintos de código Constructores, son funciones donde se define como se van a crear los objetos. Una clase puede tener varios constructores, por ejemplo uno para crear un objeto vacio y otro para crear un objeto con unos valores predeterminados. Destructores, son funciones donde definimos que hacer al eliminar un objeto. Si no tiene que realizar ninguna tarea especial, normalmente no se programa. Propiedades, definimos las características del objeto. Van a contener la información del objeto. Métodos, programamos el comportamiento del objeto, respondemos a la pregunta ¿qué podemos hacer?
  • #27 Un concepto que utilizamos cuando definimos un método, propiedad o función dentro de una clase es desde donde se puede acceder a ese elemento. Los modificadores de acceso más usuales son Public y Private. Public lo utilizamos cuando queremos que se pueda acceder desde cualquier parte del código, por ejemplo otra clase, otro proyecto que este relacionado Private es lo contrario, solo queremos que se pueda acceder desde dentro de la clase que estamos programando. Esto se utiliza para variables internas o procesos internos que no tienen relevancia para utilizar el objeto desde otras partes del código
  • #28 Métodos Un método contiene el código necesario para que el objeto realice una función. Por ejemplo si tenemos el objeto carrito de la compra, un método sería añadir nueva compra A la hora de definirlo podemos utilizar tanto funciones como procedimientos, utilizando tantos parámetros como sean necesarios Propiedades Definimos las propiedades para contener valores, siguiendo con el ejemplo de antes, el objeto carrito de la compra una propiedad sería el número de artículos Las propiedades tienen dos apartados distintos, en uno programamos que hacer cuando desde el código se quiere leer la propiedad y en el otro que hacer cuando se quiere escribir un valor en la propiedad. Estos dos pasos se establecen en Get y Set
  • #29 Podemos indicar cuando definimos las propiedades si son sólo de lectura o sólo de escritura. Si son solo de lectura (ReadOnly), el valor se asigna en el momento de creación del objeto y a partir de ese momento solo se puede leer Si son solo de escritura (WriteOnly), podemos asignar un valor pero no lo podemos leer.
  • #30 Se utilizan normalmente para poder utilizar el mismo nombre de función pero con parámetros distintos. Facilita el uso de estos objetos, ya que no necesitamos utilizar una función con distinto nombre que haga lo mismo que otra si sólo cambia el tipo o el número de los parámetros En el ejemplo se crean dos funciones que muestran un texto distinto y devuelven un texto o un número en función de que se utilice con números enteros o con letras
  • #31 Los constructores son un tipo especial de función, que se utiliza para crear los objetos. El nombre NEW es el que se utiliza para los constructores. Cada objeto puede tener varios constructores, pero tal como hemos visto anteriormente, el tipo o el número de parámetros tiene que ser distinto. Por ejemplo, podemos tener un constructor sin parámetros que devuelve un objeto empresa vacio, y otro que se le pasa por parámetro el código de empresa y devuelve un objeto empresa con sus datos cargados
  • #32 Podemos crear un método Finalice() que se ejecutará cuando el objeto se destruya, bien por que lo hemos hecho manualmente o bien por que ha sido destruido por Garbage colection. La ejecución de este código no suele ser inmediata a la destrucción del objeto en este último caso, ya que el servidor lo ejecuta cuando le llega el turno de ejecución en la pila de procesos
  • #33 Una vez definido el objeto en la clase con sus propiedades, métodos, constructores y destructores es cuando lo podemos utilizar en el resto del código. El proceso de definir un objeto es similar al de la variables. Utilizamos la palabra clave DIM, el nombre del objeto y el tipo de objeto que vamos a utilizar Una vez definido tenemos que crearlo o instanciarlo utilizando el constructor New Podemos realizar el proceso de definición e instanciación en la misma sentencia, reduciendo el código de la aplicación
  • #34 La verdadera potencia de los objetos es la herencia. Entendemos como herencia la creación de clases que basándose en una ya existente, amplia su funcionalidad. En una clase derivada podemos utilizar las prop