Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programacion Orientada A Objetos en Visual Basic PDF
Programacion Orientada A Objetos en Visual Basic PDF
ndice
Introduccin 1
Leccin: Entender el concepto de clase 2
Leccin: Trabajar con clases 8
Leccin: Uso de miembros compartidos 22
Leccin: herencia, polimorfismo y espacios de nombres 28
Programacin orientada a objetos en Visual Basic .NET 1
Introduccin
Escribir
Entender las clases
Crear
Debug
Interfaz Cdigo
and Deploy
Trabajar con clases
Uso de Visual
Studio .NET
Uso de miembros
compartidos
Acceso Herencia, Polimorfismo
a datos Depurar e
implantar
y Espacios de nombres
*************************************************************************************
Introduccin Este mdulo explica cmo crear y utilizar clases. El mdulo describe los
conceptos de abstraccin, encapsulacin, instanciacin, inicializacin,
constructores y destructores. Este mdulo tambin define la herencia, el
polimorfismo y los espacios de nombres.
Los objetos son fundamentales para la programacin en Visual Basic .NET.
Los formularios, controles y bases de datos son objetos. En este mdulo,
aprenderemos cmo crear nuestros propios objetos desde clases definidas por
nosotros y cmo podemos utilizar objetos para simplificar la programacin e
incrementar la reutilizacin de cdigo.
Objetivos En este mdulo, aprenderemos a:
Entender los conceptos de programacin orientada a objetos, incluyendo
clase, abstraccin, encapsulacin y objeto.
Utilizar el Examinador de objetos para examinar los elementos de
programacin disponibles, incluyendo clases y objetos.
Crear una nueva clase, incluyendo sus mtodos, propiedades y miembros de
datos.
Crear y utilizar la instancia de una clase, incluyendo miembros de instancia
y de datos compartidos, y mtodos compartidos y no compartidos.
Explicar cmo funcionan los constructores y los destructores.
Explicar la herencia, el polimorfismo y los espacios de nombres.
2 Programacin orientada a objetos en Visual Basic .NET
r a cc i n
abst
clase ac i n
ps u l
enca
o
objet
*************************************************************************************
Introduccin Esta leccin describe los conceptos de programacin orientada a objetos
bsicos, incluyendo clases, abstraccin y encapsulacin, y objetos. Entender
estos conceptos nos permite utilizar las potentes caractersticas orientadas a
objetos de Visual Basic .NET. Adems, esta leccin describe cmo utilizar el
Examinador de objetos para examinar clases, objetos y otros elementos de
programacin.
Estructura de la leccin Esta leccin incluye los siguientes temas:
Qu es una clase?
Qu es un objeto?
Cmo utilizar el Examinador de objetos
Qu es una clase?
*************************************************************************************
Introduccin En la programacin orientada a objetos, utilizamos la abstraccin y la
encapsulacin para crear clases bien diseadas.
Definicin Una clase es una plantilla o una estructura preliminar de un objeto. Esta
estructura preliminar define atributos para almacenar datos y define operaciones
para manipular esos datos. Una clase tambin define un conjunto de
restricciones para permitir o denegar el acceso a sus atributos y operaciones.
Uso de la abstraccin Para crear una clase bien diseada, utilizaremos la abstraccin. Al implementar
la abstraccin, definiremos un concepto utilizando un mnimo conjunto de
funcionalidades pensadas cuidadosamente que proporcione el comportamiento
fundamental de la clase de un modo fcil de utilizar. Por desgracia, no es fcil
crear buenas abstracciones de software. Normalmente, encontrar buenas
abstracciones requiere un profundo conocimiento del problema que ha de
resolver la clase y su contexto, una gran claridad de ideas y mucha experiencia.
Ejemplo de abstraccin El formulario Visual Basic .NET con el que hemos estado trabajando es un
buen ejemplo de abstraccin. Las propiedades esenciales de un formulario,
como el ttulo y color de fondo, se han abstrado en la clase Form. Algunas
operaciones esenciales que se han abstrado son abrir, cerrar y minimizar.
4 Programacin orientada a objetos en Visual Basic .NET
Qu es un objeto?
123
245
245
*************************************************************************************
Introduccin En general, para ejecutar los mtodos y utilizar las propiedades de una clase,
necesitamos crear una instancia de la clase. La instancia de una clase se
denomina objeto. Las palabras clase y objeto se utilizan con tanta frecuencia en
la programacin orientada a objetos que es fcil confundir los trminos. Piense
en una clase como una representacin abstracta de algo y en un objeto como en
un ejemplo utilizable de lo que representa la clase.
Definicin Un objeto es una unidad de software que contiene una coleccin de mtodos y
datos relacionados. Un objeto es una instancia especfica de una clase, e incluye
las caractersticas de esa clase.
Ejemplo de objeto La palabra coche tiene diferentes significados en contextos distintos. En
ocasiones, hace referencia al concepto general de coche o al conjunto de todos
los coches. El uso de la palabra de este modo es parecido al uso de la palabra
clase. En ocasiones, la palabra coche se refiere a un coche especfico. El uso de
la palabra de este modo es parecido al uso de la palabra objeto.
Identidad Los objetos tienen identidad. La identidad es la caracterstica que distingue un
objeto del resto.
Comportamiento Los objetos proporcionan comportamiento. El comportamiento es la
caracterstica que hace tiles los objetos. Los objetos existen para proporcionar
comportamiento. Por ejemplo, la mayor parte del tiempo podemos ignorar el
funcionamiento interno de un coche y pensar en su comportamiento. Los coches
son tiles porque podemos conducirlos. El funcionamiento interno existe, pero
normalmente es inaccesible. Lo que es accesible es el comportamiento de un
objeto. Los objetos de la misma clase comparten el mismo comportamiento. Un
coche es un coche porque podemos conducirlo.
Estado Los objetos tienen estado. El estado es la caracterstica que hace referencia al
funcionamiento interno de un objeto y que le permite proporcionar el
comportamiento que le define. Un objeto bien diseado mantiene su estado
inaccesible. El estado est estrechamente relacionado con la abstraccin y la
encapsulacin. No nos preocupa cmo realiza un objeto sus acciones, pero s
6 Programacin orientada a objetos en Visual Basic .NET
que las realice. Dos objetos podran contener casualmente el mismo estado,
pero seguiran siendo dos objetos distintos.
Programacin orientada a objetos en Visual Basic .NET 7
Panel Panel
Panel
Panel
Objetos
Objetos Miembros
Miembros
Panel
Panel
Descripcin
Descripcin
*************************************************************************************
Introduccin Podemos utilizar el Examinador de objetos para examinar los elementos de
programacin de un componente (espacios de nombres, clases, mdulos,
estructuras, etc.) y los miembros de esos elementos (propiedades, mtodos,
eventos, variables, etc.). Los componentes que examinemos pueden ser
proyectos de nuestra solucin, componentes referenciados en esos proyectos o
componentes externos.
Uso del Examinador de Para abrir el Examinador de objetos, pulse F2 o, en el men Ver, seleccione
objetos Examinador de objetos.
El Examinador de objetos est formado por tres paneles:
El panel Objetos muestra todos los objetos contenedores del mbito de
bsqueda en una vista en rbol. Cuando expandimos un elemento haciendo
doble clic en l o haciendo clic en el signo ms (+) junto a su nombre,
aparecen los elementos definidos en l.
El panel Miembros muestra los miembros de un elemento cuando
seleccionamos el elemento en el panel Objetos.
El panel Descripcin muestra informacin detallada sobre el elemento o
miembro actualmente seleccionado.
Clase Estructura
8 Programacin orientada a objetos en Visual Basic .NET
*************************************************************************************
Introduccin La plataforma Microsoft .NET proporciona la biblioteca de clases del .NET
Framework, pero tambin nosotros podemos crear nuestras propias clases. Esta
leccin describe cmo crear una nueva clase, agregar miembros de datos,
mtodos y propiedades a la clase, y establecer modificadores de acceso pblicos
y privados. Esta leccin tambin describe cmo crear una instancia de una clase
y cmo inicializar y desinicializar objetos.
Estructura de la leccin Esta leccin incluye los siguientes temas y actividades:
Cmo crear una nueva clase
Cmo agregar miembros de datos de una instancia
Cmo agregar mtodos
Cmo agregar propiedades
Cmo crear una instancia de una clase
Prctica: creacin de una clase
Cmo utilizar los constructores
Cmo utilizar los destructores
End
End Class
Class
*************************************************************************************
Introduccin Una vez finalizado el proceso de abstraccin para determinar las entidades
relevantes de un problema de negocio determinado, estaremos preparados para
crear clases que reflejen las entidades en la abstraccin.
Crear una nueva clase
Crear una nueva clase
1. Abrir un proyecto en Visual Studio .NET (si no hay ninguno abierto).
2. En el men Proyecto, hacer clic en Agregar clase.
3. En el cuadro Agregar nuevo elemento, escribir el nombre de la nueva clase
y hacer clic en Abrir.
El Editor de cdigo proporciona instrucciones de programacin que marcan
las instrucciones de inicio y final de la clase, como sigue:
Public Class ClassName
End Class
10 Programacin orientada a objetos en Visual Basic .NET
End
End Class
Class
Palabra
Palabra Definici
Definicin
Definicin
clave
clave
Public
Public Accesible
Accesibleen
entodas
todaspartes
partes
Private
Private Accesible
Accesibleslo
sloen
enelelpropio
propiotipo
tipo
Accesible
Accesibleslo
slopor
porclases
clasesque
queheredan
heredande
delala
Protected
Protected clase
clase
*************************************************************************************
Introduccin Tras agregar una nueva clase a nuestro proyecto, podemos agregar miembros de
datos a la clase. Un miembro de datos especfico para una instancia de la clase
se denomina miembro de datos de una instancia. Cuando agregamos miembros
de datos de una instancia a una clase, especificamos el nivel de acceso
estableciendo los modificadores de acceso.
Miembros de datos de Los miembros de datos de una instancia incluyen variables y constantes
una instancia miembro. Las variables miembro tambin se denominan campos.
Ejemplo En el siguiente ejemplo, se agrega a la clase un miembro de datos de tipo
Double denominado balance (saldo):
Private balance As Double
Palabra clave Me Tambin podemos hacer referencia al miembro de datos balance utilizando la
palabra clave Me, como se muestra en el siguiente ejemplo:
Me.balance
Private
Private balance
balance As
As Double
Double
Public
Public Sub
Sub Deposit(ByVal
Deposit(ByVal amount
amount As
As Double)
Double)
balance += amount
balance += amount
End
End Sub
Sub
End
End Class
Class
*************************************************************************************
Introduccin Podemos agregar mtodos a una clase. Cuando agregamos mtodos,
especificamos el nivel de acceso estableciendo el modificador de acceso. Los
mtodos incluyen funciones y procedimientos Sub.
Ejemplo En el siguiente ejemplo, se agrega a la clase un mtodo denominado Deposit:
Public Sub Deposit(ByVal amount As Double)
Balance +=amount
End Sub
En este ejemplo, el mtodo Deposit es pblico, por tanto los usuarios de esta
clase pueden depositar dinero en una cuenta utilizando el mtodo Deposit.
Sobrecarga de mtodos La sobrecarga de mtodos se produce cuando una clase contiene dos o ms
mtodos con el mismo nombre pero distintas firmas. Un ejemplo de mtodo
sobrecargado es el mtodo MessageBox.Show. El mtodo Show proporciona
doce sobrecargas. Estas sobrecargas hacen que el mtodo sea ms flexible para
los usuarios del mtodo.
Para sobrecargar un mtodo, utilice la palabra clave Overloads. La palabra
clave Overloads declara una propiedad o mtodo con el mismo nombre que un
miembro existente, pero con una lista de parmetros distinta del miembro
original.
El siguiente ejemplo muestra un mtodo sobrecargado denominado Execute. El
primer mtodo Execute no toma ningn parmetro. El segundo, nicamente
toma como parmetro una cadena.
Public Overloads Sub Execute( )
...
End Sub
Public Overloads Sub Execute(ByVal connection As String)
...
End Sub
Programacin orientada a objetos en Visual Basic .NET 13
Public
Public Property
Property Name(
Name( )) As
As String
String
Get
Get
Return
Return customerName
customerName
End Get
End Get
Set(ByVal
Set(ByVal Value
Value As
As String)
String)
customerName
customerName == Value
Value
End
End Set
Set
End
End Property
Property
End
End Class
Class
*************************************************************************************
Introduccin Podemos agregar propiedades a una nueva clase en nuestro proyecto. Podemos
asignar la propiedad, y podemos recuperar el valor de la propiedad desde la
clase.
Agregar propiedades Para agregar miembros de propiedades a una clase, normalmente definimos un
miembro de datos privado y procedimientos de propiedades pblicos. Podemos
realizar dos tipos de procedimientos en propiedades en Visual Basic .NET: Get
y Set.
El procedimiento Get recupera el valor de la propiedad desde la clase. No
debera modificar el valor.
El procedimiento Set asigna la propiedad.
End Class
Module
Module Bank
Bank
Sub
Sub Main
Main
Dim
Dim account
account As
As New
New BankAccount(
BankAccount( ))
account.Deposit(500.00)
account.Deposit(500.00)
End
End Sub
Sub
End
End Module
Module
*************************************************************************************
Introduccin Para ejecutar los mtodos y utilizar las propiedades de una clase, debemos crear
una instancia de la clase. La instancia de una clase se denomina objeto.
Sintaxis Para crear una instancia de una clase, declaramos una variable del tipo de la
clase y utilizamos la palabra clave New, como se muestra en la siguiente lnea
de cdigo:
Dim nombre_objeto As New tipo_objeto( )
*************************************************************************************
En esta prctica, crearemos una clase BankAccount con mtodos y
propiedades.
End Property
3. Dentro del Sub Main, crear una instancia de la clase BankAccount, como
sigue:
Dim account As New BankAccount( )
account.Name = "Joe"
account.Deposit(500)
End Sub
End Module
Public
Public Sub
Sub New(
New( ))
''Perform
Perform simple
simple initialization
initialization
value = 1
value = 1
End
End Sub
Sub
*************************************************************************************
Introduccin En Visual Basic .NET, la inicializacin de nuevos objetos se controla utilizando
constructores. Para crear un constructor para una clase, se crea un
procedimiento denominado Sub New en cualquier lugar de la definicin de la
clase.
Caractersticas de Sub El constructor Sub New tiene las siguientes caractersticas:
New
El cdigo del bloque Sub New siempre se ejecutar antes de cualquier otro
cdigo de una clase.
El constructor Sub New solo se ejecutar una vez, cuando se cree un objeto.
Ejemplo de Sub New El siguiente ejemplo muestra cmo utilizar el constructor Sub New:
Public Sub New( )
' Perform simple inicializacin
intValue = 1
End Sub
Sub New( )
' Initialize balance
balance = 0.0
End Sub
Protected
Protected Overrides
Overrides Sub
Sub Finalize(
Finalize( ))
'' Can
Can close
close connections
connections or
or other
other resources
resources
conn.Close
conn.Close
End Sub
End Sub
*************************************************************************************
Introduccin En Visual Basic .NET, podemos controlar qu ocurre durante la destruccin de
objetos utilizando procedimientos denominados destructores.
Finalize y Dispose El sistema invoca al destructor Finalize antes de liberar el objeto. Puede
utilizarse para limpiar recursos abiertos, como conexiones a bases de datos, o
para liberar otros recursos. Sin embargo, existe una demora entre el momento
en que un objeto pierde su alcance y el momento en que se invoca al destructor
Finalize.
La ejecucin de Sub Finalize provoca una ligera prdida en el rendimiento, por
ello nicamente debera definirse un mtodo Sub Finalize cuando sea necesario
liberar objetos explcitamente.
Ejemplo de Sub Finalize El siguiente ejemplo muestra cmo utilizar el destructor Finalize:
Protected Overrides Sub Finalize( )
' Can close connections or other resources
conn.Close
End Sub
*************************************************************************************
Introduccin Esta leccin describe cmo utilizar miembros de datos compartidos y mtodos
compartidos. Los miembros compartidos pueden utilizarse para contadores o
para cualquier dato comn o mtodos habituales requeridos por todas las
instancias de una clase.
Estructura de la leccin Esta leccin incluye los siguientes tpicos y actividades:
Cmo utilizar los miembros de datos compartidos
Cmo utilizar los mtodos compartidos
Prctica: creacin de mtodos compartidos
End
End Class
Class
SavingsAccount.InterestRate
SavingsAccount.InterestRate == 0.03
0.03
*************************************************************************************
Introduccin En Visual Basic .NET, los miembros de datos compartidos pueden utilizarse
para permitir que mltiples instancias de una clase hagan referencia a una nica
variable a nivel de clase.
Sintaxis Utilizaremos la siguiente sintaxis para declarar miembros de datos compartidos:
NiveldeAcceso Shared MiembrodeDatos As TipodeDatos
Niveles de acceso Los miembros de datos compartidos estn directamente enlazados a la clase, y
podemos declararlos como pblicos o privados. Si declaramos los miembros de
datos como pblicos, estarn accesibles para cualquier cdigo que pueda
acceder a la clase. Si declaramos los miembros de datos como privados,
proporcionaremos propiedades compartidas pblicas para acceder a la
propiedad compartida privada.
Ejemplo El siguiente ejemplo muestra cmo crear una clase de cuenta de ahorro
(SavingsAccount) que utilice un miembro de datos compartido pblico para
mantener los tipos de inters para una cuenta de ahorro:
Class SavingsAccount
Public Shared InterestRate As Double
Invocar miembros de Despus de crear una clase que utilice miembros de datos compartidos pblicos,
datos compartidos podemos invocar los miembros de datos de esa clase desde una aplicacin
desde un cliente cliente. El siguiente cdigo muestra cmo invocar la clase SavingsAccount y
sus miembros de datos desde una aplicacin cliente:
Sub Test( )
SavingsAccount.InterestRate = 0.03
MessageBox.Show(myAccount.CalculateInterest( ))
MessageBox.Show(yourAccount.CalculateInterest( ))
End Sub
Invocar propiedades Una vez declarada la propiedad compartida Rate, puede utilizarse en una
compartidas desde un aplicacin cliente en lugar de acceder directamente al miembro de datos
cliente compartido interestRate. Podemos invocar una propiedad compartida
cualificndola con el nombre de clase o con el nombre de variable de una
instancia especfica de la clase.
El siguiente cdigo muestra cmo invocar una propiedad compartida
cualificndola con el nombre de la clase:
SavingsAccount.Rate = 0.03
'' Client
Client code
code
MessageBox.Show(TestClass.GetComputerName(
MessageBox.Show(TestClass.GetComputerName( ))
))
*************************************************************************************
Introduccin Podemos utilizar los miembros de procedimiento compartidos para disear
funciones que pueden ser invocadas sin crear una instancia de la clase. Los
procedimientos compartidos son mtodos de una clase que no estn asociados a
una instancia especfica de una clase. Los miembros de procedimiento
compartidos nicamente pueden acceder a datos marcados con la palabra clave
Shared. Por ejemplo, un mtodo compartido no puede hacer referencia a un
miembro de la instancia de una clase.
Ejemplo del uso de un El siguiente ejemplo muestra cmo una funcin utilizada habitualmente, como
miembro de GetComputerName, puede crearse como un miembro de procedimiento
procedimiento compartido de forma que una aplicacin cliente puede utilizarla fcilmente. El
compartido cliente nicamente necesita hacer referencia al mtodo prefijado por el nombre
de la clase, ya que no se requiere ninguna instancia de la clase.
' TestClass code
Public Shared Function GetComputerName( ) As String
...
End Function
En esta prctica,
z Crearemos una clase
z Agregaremos mtodos compartidos
z Utilizaremos mtodos compartidos
*************************************************************************************
En esta prctica, crearemos y utilizaremos una clase que tiene un mtodo
compartido para convertir grados Fahrenheit en grados Celsius.
End Function
End Function
Programacin orientada a objetos en Visual Basic .NET 27
r en cia
He
r f ismo
Polim
o
cla ses
c t u ras y
Estru o m bres
io s de n
c
Espa
*************************************************************************************
Introduccin Podemos agregar funcionalidades a las clases en el.NET Framework o a
nuestras propias clases utilizando herencia y polimorfismo. Esta leccin
describe la herencia y el polimorfismo. Tambin compara clases y estructuras.
Estructura de la leccin Esta leccin incluye los siguientes tpicos y actividades:
Qu es la herencia?
Cmo heredar de una clase
Qu es el polimorfismo?
Comparacin de clases y estructuras
Cmo organizar clases en espacios de nombres
Qu es la herencia?
*************************************************************************************
Introduccin En la programacin orientada a objetos, podemos compartir las caractersticas
de una clase base en otras clases derivadas de la clase base. Esto se denomina
herencia.
Definicin Herencia es el concepto de reutilizar atributos y operaciones comunes de una
clase base en una clase derivada.
Ejemplo de herencia Imaginemos tres clases: Cliente, Empleado y Persona. Los atributos y
operaciones de la clase base Persona tambin pueden aplicarse a Cliente o
Empleado. La reutilizacin de estos atributos y operaciones es una tcnica
eficaz.
Visual Basic .NET soporta herencia simple a nivel de clase. Es decir, una clase
nicamente puede heredar de una sola clase base. Esto se muestra en el ejemplo
de la ilustracin anterior. Otros lenguajes, como C++, permiten que una clase
herede de mltiples clases.
30 Programacin orientada a objetos en Visual Basic .NET
*************************************************************************************
Introduccin En Visual Basic .NET, la herencia puede utilizarse para derivar una clase de
una clase existente. La clase derivada puede heredar todas las propiedades,
mtodos, miembros de datos, eventos y controladores de eventos de la clase
base, facilitando la reutilizacin de la clase base por toda la aplicacin.
La palabra clave Inherits La palabra clave Inherits se utiliza para definir una clase derivada que heredar
de una clase base existente.
Ejemplo El siguiente ejemplo muestra cmo utilizar la palabra clave Inherits:
Public Class CheckingAccount
Inherits BankAccount
Private Sub ProcessCheck( )
' Add code to process a check drawn on this account
End Sub
End Class
Nota Podemos utilizar la palabra clave MyBase para invocar mtodos en una
clase base cuando invalidan mtodos en una clase derivada. Tambin podemos
utilizar la palabra clave MyBase para invocar el constructor y el destructor de
la clase base en nuestra clase derivada.
Programacin orientada a objetos en Visual Basic .NET 31
La palabra clave La palabra clave NotInheritable se utiliza para definir una clase que no puede
NotInheritable utilizarse como clase base para herencia. Si otra clase intenta heredar de esta
clase, se generar un error de compilacin.
Ejemplo El siguiente ejemplo muestra cmo utilizar la palabra clave NotInheritable:
Public NotInheritable Class TestClass
...
End Class
Public Class DerivedClass
' The following line generates a compiler error
Inherits TestClass
...
End Class
La palabra clave La palabra clave MustInherit se utiliza para definir clases que no estn
MustInherit pensados para ser utilizados directamente como objetos instanciados. La clase
resultante debe ser heredada como una clase base para utilizarla en el objeto de
una clase derivada instanciada.
Ejemplo El siguiente ejemplo muestra cmo utilizar la palabra clave MustInherit:
Public MustInherit Class BaseClass
...
End Class
...
Si el cdigo cliente intenta crear una instancia de este tipo de clase, se generar
un error de compilacin, como se muestra en el siguiente ejemplo:
' Client code
' The following line generates a compiler error
Dim x As New BaseClass( )
La palabra clave Utilizamos el acceso Protected para limitar el mbito de una propiedad,
Protected mtodo, miembro de datos, evento o controlador de eventos a la clase que los
define y cualquier clase derivada basada en esa clase base.
Ejemplo El siguiente ejemplo muestra cmo utilizar la palabra clave Protected:
Public Class BaseClass
' Accessible anywhere
Public counter As Integer
Qu es el polimorfismo?
BaseTax
BaseTax
CalculateTax(
CalculateTax( ))
CountyTax
CountyTax CityTax
CityTax
CalculateTax(
CalculateTax( )) CalculateTax(
CalculateTax( ))
*************************************************************************************
Introduccin La mayora de sistemas de programacin orientada a objetos proporcionan
polimorfismo mediante herencia. El polimorfismo basado en herencia implica
la definicin de mtodos en una clase base y sobrecargarlos con nuevas
implementaciones en clases derivadas.
Definicin Polimorfismo hace referencia a la capacidad de definir mltiples clases con
diferentes funcionalidades pero con mtodos o propiedades de nombres
idnticos que pueden utilizarse de forma intercambiable por el cdigo cliente en
tiempo de ejecucin. El nombre del mtodo reside en la clase base. Las
implementaciones de mtodos residen en las clases derivadas. Para gestionar
esto, nicamente puede declararse en la clase base el nombre del mtodo (no el
cdigo que proporciona la funcionalidad del mtodo).
Ejemplo de Supongamos que definimos una clase denominada BaseTax que proporciona
polimorfismo funcionalidad bsica para calcular el impuesto sobre las ventas de un estado.
Las clases derivadas de BaseTax, como CountyTax o CityTax, podran
implementar mtodos como CalculateTax.
Polimorfismo hace referencia al hecho de que la implementacin del mtodo
CalculateTax podra ser distinta en cada una de las clases derivadas. Por
ejemplo, el tipo impositivo de un condado (county tax rate) podra ser distinto
del tipo impositivo de una ciudad (city tax rate). Las clases que hereden de
BaseTax tendrn un mtodo CalculateTax, pero el modo como se calcule
realmente el impuesto podra variar en cada una de las clases derivadas.
Programacin orientada a objetos en Visual Basic .NET 33
Clases
Clases Estructuras
Estructuras
Pueden
Puedendefinir
definirmiembros
miembrosdededatos,
datos, Pueden
Puedendefinir
definirmiembros
miembros de
dedatos,
datos,
propiedades
propiedadesyymtodos
mtodos propiedades
propiedades yy mtodos
mtodos
Soportan
Soportanconstructores
constructoresee No
Noconstructor
constructorpredeterminado
predeterminadonini
inicializacin
inicializacinde
demiembros
miembros inicializacin
inicializacinde
demiembros
miembros
Soportan
Soportanelelmtodo
mtodoFinalize
Finalize No
Nosoportan
soportanelel mtodo
mtodoFinalize
Finalize
Extensibles
Extensiblespor
porherencia
herencia No
Nosoportan
soportanherencia
herencia
Tipo
TipoReference
Reference Tipo
TipoValue
Value
*************************************************************************************
Introduccin Clases y estructuras son similares en varios aspectos: ambas pueden definir
miembros de datos, propiedades y mtodos. Sin embargo, las clases
proporcionan algunas caractersticas avanzadas que podemos utilizar.
La siguiente tabla compara clases y estructuras:
Clases Estructuras
*************************************************************************************
Introduccin Los espacios de nombres se utilizan como sistemas organizativos (una forma de
presentar componentes del programa relacionados lgicamente que estn
disponibles para otros programas y aplicaciones). Un espacio de nombres puede
contener otros espacios de nombres y tipos.
Ejemplo de un espacio System.Windows.Forms es un ejemplo de espacio de nombres. Este espacio
de nombres de nombres proporciona las clases relevantes para crear formularios. El espacio
de nombres Forms est contenido en el espacio de nombres Windows, el cual
est contenido en el espacio de nombres System.
Nombres cualificados Para hacer referencia a una clase utilizando su nombre cualificado, prefijamos
el nombre de la clase con el espacio de nombres que contiene la clase. Por
ejemplo, el nombre cualificado de la clase Button es
System.Windows.Forms.Button. Con el uso de nombres cualificados,
podemos declarar dos clases con el mismo nombre en distintos espacios de
nombres sin conflicto. De forma predeterminada, cada archivos ejecutable que
creemos con Visual Basic .NET contiene un espacio de nombres con el mismo
nombre que el proyecto.
Accesibilidad Los espacios de nombres son siempre Public, por tanto, no podemos declarar
un espacio de nombres con un modificador de acceso. Sin embargo, los
componentes en el espacio de nombres pueden tener acceso Public o Friend. Si
el modificador de acceso no se ha declarado, el tipo de acceso predeterminado
es Friend.
Definir un espacio de En Visual Basic .NET, utilizamos la instruccin Namespace para definir un
nombres nuevo espacio de nombres, el cual encapsula las clases que creamos, como
muestra el siguiente ejemplo:
Programacin orientada a objetos en Visual Basic .NET 35
Namespace CompVB
Public Class StringComponent
...
End Class
End Namespace
Uso de un espacio de A nivel de proyecto, debemos incluir una referencia a la librera de enlace
nombres dinmico (DLL) que contiene el espacio de nombres. En Visual Basic .NET,
utilizamos la instruccin Imports para importar los tipos contenidos en el
espacio de nombres para que puedan se referenciados directamente. El siguiente
cdigo muestra el uso de la instruccin Imports:
Imports System.Windows.Forms