Programación orientada a objetos en Visual Basic .NET
¿Qué es una clase?
Una clase representa un objeto y define atributos y operaciones para el mismo.
Las propiedades o atributos son las características de los objetos.
Las operaciones o métodos son las funcionalidades asociadas a los objetos.
Lo que ve el usuario:
Lo que está encapsulado:
Un TV
Como funciona por dentro //verify language //authenticate PIN //validate account bal //adjust account bal
¿Qué es un objeto?
Un objeto es una instancia de una clase
Los objetos tienen las siguientes cualidades: z
Identidad: los objetos se distinguen uno de otro
z
Comportamiento: los objetos pueden realizar tareas
z
Estado: los objetos almacenan información que puede cambiar con el tiempo Clase Clase
Objeto Objeto Objeto Objeto
12
123
245
245
Cómo crear una nueva clase
Crear una nueva clase utilizando el comando Agregar clase del menú Proyecto
Ejemplo de una nueva clase denominada Cuenta:
Public Cuenta Public Class Class Class1 Cuenta Class1 End End Class Class
Cómo agregar miembros de datos de una instancia
Agregar un miembro de datos denominado saldo
Public Public Class Class Cuenta Cuenta Private Private saldo saldo As As Integer Integer End End Class Class
Palabra Palabra clave clave
Definici ón Definición
Public Public
Accesible Accesibleen entodas todaspartes partes
Private Private
Accesible Accesiblesólo sóloen enelelpropio propiotipo tipo Accesible Accesiblesólo sólopor porclases clasesque queheredan heredande delala clase clase
Protected Protected
Cómo agregar métodos
Agregar un método denominado Consignar
Public Public Class Class Cuenta Cuenta Private Private saldo saldo As As Integer Integer Public Public Sub Sub Consignar(ByVal Consignar(ByVal cantidad cantidad As As Integer) Integer) saldo saldo == saldo saldo ++ cantidad cantidad End End Sub Sub
End End Class Class
Métodos sobrecargados: dos o más métodos con el mismo nombre pero diferentes firmas
Cómo agregar propiedades
Agregar una propiedad:
Public Public Class Class Cuenta Cuenta Private Private nombreCliente nombreCliente As As String String Public Public Property Property Nombre( Nombre( )) As As String String Get Get Return Return nombreCliente nombreCliente End End Get Get Set(ByVal Set(ByVal Value Value As As String) String) nombreCliente nombreCliente == Value Value End End Set Set End End Property Property End End Class Class
Cómo crear una instancia de una clase
Uso de la palabra clave New para crear una instancia de la clase Cuenta:
Module Module Bank Bank Sub Sub Main Main Dim Dim varCuenta varCuenta As As New New Cuenta( Cuenta( )) varCuenta.Consignar(500) varCuenta.Consignar(500) End End Sub Sub End End Module Module
Cómo utilizar los constructores
Ejecutan código cuando el objeto está instanciado
Public Public Sub Sub New( New( )) '' Hacer Hacer algo algo si si es es necesario necesario valor valor == 11 End End Sub Sub
Pueden sobrecargarse, pero no utilizan la palabra clave Overloads
Public Public Sub Sub New(ByVal New(ByVal ii As As Integer) Integer) '' Utilizar Utilizar el el valor valor del del parámetro parámetro valor valor == ii End End Sub Sub
Cómo utilizar los destructores
Se utilizan para eliminar recursos
Se invocan por el entorno de ejecución antes de destruir el objeto z
Importante: es posible que la destrucción no se produzca de modo inmediato
Protected Protected Overrides Overrides Sub Sub Finalize( Finalize( )) '' Cerrar Cerrar una una conexión conexión por por ejemplo ejemplo conn.Close conn.Close End End Sub Sub
¿Qué es la herencia?
La herencia especifica una relación “es un tipo de”
Múltiples clases comparten los mismos atributos y operaciones, permitiendo una eficaz reutilización del código
Ejemplos:
Clase base
z
Un cliente “es un tipo de” persona
z
Un empleado “es un tipo de” persona
Clases derivadas
Cliente
Persona
Empleado
Cómo heredar de una clase
Una clase derivada hereda de una clase base
Pueden heredarse propiedades, métodos, miembros de datos, eventos y controladores de eventos (dependiendo del ámbito)
Palabras clave z
Inherits: hereda de una clase base
z
NotInheritable: no es heredable
z
MustInherit: no pueden crearse instancias de la clase; debe ser heredada como una clase base
¿Qué es el polimorfismo?
El nombre del método reside en la clase base
Las implementaciones del método residen en las clases derivadas Pais Pais Poblacion( Poblacion( ))
Colombia Colombia
Ecuador Ecuador
Poblacion( Poblacion( ))
Poblacion( Poblacion( ))
Cómo organizar clases en espacios de nombres
Los espacios de nombres son un sistema organizativo
Los espacios de nombres proporcionan nombres cualificados para las clases z
Ejemplo: System.Windows.Forms.Button
Para importar un espacio de nombres: z
z
A nivel de proyecto, agregar una referencia a la DLL que contiene el espacio de nombres Utilizar la palabra clave Imports