Documentos de Académico
Documentos de Profesional
Documentos de Cultura
NET - I
SEMANA 6
Programación orientada
a objetos en .NET
Todos los derechos de autor son de la exclusiva propiedad de IACC o de los otorgantes de sus licencias. No está
permitido copiar, reproducir, reeditar, descargar, publicar, emitir, difundir, poner a disposición del público ni 1
ESTE
utilizarDOCUMENTO
los contenidos paraCONTIENE LAdeSEMANA
fines comerciales 6
ninguna clase.
2
ESTE DOCUMENTO CONTIENE LA SEMANA 6
ÍNDICE
3
ESTE DOCUMENTO CONTIENE LA SEMANA 6
PROGRAMACIÓN ORIENTADA A OBJETOS EN .NET
OBJETIVOS ESPECÍFICOS
Utilizar los mecanismos de herencia y encapsulamiento de la programación orientada a
objetos en Visual Basic .NET.
Reconocer las librerías de clases en Microsoft. NET.
Analizar el uso y funcionamiento de los constructores y destructores en Microsoft. NET.
INTRODUCCIÓN
Esta semana se estudiará el paradigma de la programación orientada a objetos, sus conceptos,
funcionamiento y uso principal. Entre los términos básicos incluidos están objeto, clase, herencia,
polimorfismo y abstracción; todo framework en la actualidad que permite este tipo de desarrollo
maneja estos términos y características, donde por medio de la herencia se pueden ahorrar
recursos tanto en el momento del desarrollo como cuando el sistema está en marcha.
Profundizando más en el ámbito de .NET Framework, se hablará de sus librerías de clases, el ciclo
de vida de un objeto y cuáles son los métodos que son utilizados en cada una de sus etapas, como
también se analizará la presencia de constructores y destructores dentro del .NET Framework, sus
usos y funciones principales en el desarrollo de aplicaciones.
4
ESTE DOCUMENTO CONTIENE LA SEMANA 6
1. PROGRAMACIÓN ORIENTADA A OBJETOS
Es un paradigma que permite desarrollar aplicaciones haciendo uso de componentes de software,
también llamados objetos de software. Se fundamenta en el modelo de objeto, siendo un objeto
la instancia de una clase. En otras palabras, esta última posee los atributos y métodos que
caracterizan al objeto que realiza su llamado. Una de las características principales de la
programación orientada a objetos (en adelante, POO) es que permite la reutilización de código
para varias implementaciones y/o desarrollos. Los principales términos manejados en POO son los
siguientes:
Una clase tiene todas las características de un objeto, es decir, sus propiedades y
comportamiento. Cuando se instancia una clase, se leen todas las definiciones y se crea un objeto
a través de esta.
Un atributo permite definir la estructura del objeto, ayuda a diferenciarlo de otros objetos. La
manera como se define es a través de un identificador y un tipo, indicando los valores que puede
almacenar. Estos valores definen el estado del objeto.
1.1. HERENCIA
Es una propiedad que tienen los objetos que permite que sean construidos a partir de otros o
recibiendo de un módulo superior los atributos o funciones. Permite expandir la funcionalidad de
las clases que existen para el cumplimiento de sus necesidades y la sustitucion de métodos que no
las cumplan. Las clases definen parámetros y métodos para los objetos que se basan en ellas.
Cuando una clase es heredada se llama clase base y la que hereda de ella se llama clase derivada.
A su vez, todas las clases heredan de manera implícita de la clase Object, lo que permite la
jerarquía de clases .NET.
Un ejemplo simple de herencia sería: un triángulo y un cuadrado son figuras; por lo cual se puede
decir que estos heredan de la clase Figura. Con la palabra clave Inherits genera la herencia de los
miembros públicos de la clase referenciada en Visual Basic .NET.
5
ESTE DOCUMENTO CONTIENE LA SEMANA 6
Se muestra aquí un ejemplo de declaración de dos clases, una clase base y la otra derivada.
Class ClaseBase
Sub Metodo1()
MsgBox("El primer método de la base base.")
End Sub
Overridable Sub Metodo2()
MsgBox("El segundo método de la base base.")
End Sub
End Class
Class Clase2
Inherits Clase1 ' aquí se hace la referencia a la clase base
Overrides Sub Metodo2()
MsgBox("El método derivado.")
End Sub
End Class
Otro ejemplo: se crea la clase Administrador que herede de la clase Trabajador; se crea una
propiedad que se llama Sueldo.
Inherits Trabajador
Get
Sueldo = varSueldo
End Get
varSueldo = Value
End Set
End Property
6
ESTE DOCUMENTO CONTIENE LA SEMANA 6
End Class
MustInherit: crea una clase que solo sirva para la implementación de herencia. Su sintaxis es:
End Class
NotInheritable: con esta instrucción solo se pueden crear clases que creen objetos, pero no
heredar. La sintaxis:
End Class
Overridable: crea un método o propiedad que pueda ser sobrescrita en una clase derivada.
Overrides: permite sobrescribir un método o propiedad que anteriormente fue definido como
Overridable.
1.2. POLIMORFISMO
Es la propiedad que permite a un elemento tomar diferentes formas. Dicho de otro modo, es el
uso de distintos tipos en una misma función o componente. Brinda la posibilidad de declarar
múltiples clases para que realicen diferentes funciones, con métodos o propiedades y
asignándoles nombres similares; lo anterior es de gran utilidad, pues permite distinguir elementos
que poseen nombres iguales. Visual Basic .NET usa la herencia para lograr el polimorfismo
mediante la definición de métodos en una clase base y luego reemplazándolos con nuevas
implementaciones en clases derivadas. La posibilidad que ofrece el polimorfismo es el uso de
elementos con el mismo nombre, sin importar el tipo de objeto que esté utilizando.
7
ESTE DOCUMENTO CONTIENE LA SEMANA 6
Ejemplo:
Se crea la clase CrearTrabajador, donde suponemos que de igual manera hereda de la clase base
Trabajador creada con Overridable, y se sobrescribe en la clase Administrador para calcular el
sueldo con horas extras:
End Class
El resultado será:
1.3. ENCAPSULAMIENTO
Es el ocultamiento de los datos miembros de un objeto. De esta forma, solo puede cambiar a
través de operaciones previamente definidas. Permite que los métodos y los atributos estén
8
ESTE DOCUMENTO CONTIENE LA SEMANA 6
dentro del mismo código de la clase y, además, que sea controlado el acceso a un grupo de
elementos asociados. La forma común de encapsulamiento de elementos es a través de las clases.
El encapsulamiento agiliza también el cambio de implementación posterior, permitiendo el
ocultamiento de los detalles de implementación de los objetos.
1.4. ABSTRACCIÓN
Define las principales características de un objeto. Cada objeto funciona como un modelo
abstracto que realiza el trabajo, informando y modificando el estado, además de comunicarse con
otros objetos sin divulgar cómo se implementan dichas características. Las clases abstractas se
caracterizan porque de ellas no es posible crear instancias. Una clase derivada de una abstracta
puede implementar interfaces. Son de utilidad para la creación de componentes, debido a que
permiten definir un nivel no variable de funcionalidad para algunos métodos y no realizar la
implementación de otros hasta que sea requerida una implementación de la clase.
Las clases abstractas se definen con la instrucción MustInherit, para los métodos que no sean
variables pueden codificarse en una clase base, para el caso de los que se necesiten implementar
se debe usar el modificador MustOverride.
En ese ejemplo, se declaró una clase abstracta con la implementación de un método y tres no
implementados.
9
ESTE DOCUMENTO CONTIENE LA SEMANA 6
Como ya se ha estudiado anteriormente, las clases determinan todos los métodos, eventos o
propiedades; definen el valor que es guardado en el estado del objeto. Entre las características
que posee .NET framework en tiempo de ejecución les proporciona a las clases:
Característica Descripción
Abstract Esta propiedad indica que no es permitido crear
una instancia de la clase definida. Para poder
utilizarla, de ella debe derivar otra clase.
Inherits Determina que las instancias de la clase son
aptas para su utilización donde se especifique la
clase base. Las clases derivadas pueden
implementar todos los métodos que le ofrece
su clase base.
Implements Permite conocer las interfaces que utiliza la
clase, brindando las implementaciones de
miembros de la interfaz.
Sealed Indica que no se puede derivar otra clase de
este tipo.
Exported o not exported Permite conocer si la clase se encuentra o no
visible fuera del ensamblado donde fue
definida.
System.Collections: permite definir colecciones de objetos (matrices, listas, colas, tablas hash).
System.Data: contiene clases de la infraestructura ADO.NET, con las que se crean componentes
para la administración de los datos de diversos orígenes.
System.Data.Common: describe colecciones de clases que son usadas para tener acceso al origen
de datos.
10
ESTE DOCUMENTO CONTIENE LA SEMANA 6
System.Data.OleDb: permite la conexión a orígenes de datos OLE DB.
https://goo.gl/m4HRRi
11
ESTE DOCUMENTO CONTIENE LA SEMANA 6
2.3. ORGANIZACIÓN LÓGICA
Los espacios de nombres son la organización lógica de las bibliotecas de clases y son generados de
manera independiente de la organización de los ensamblados. Los espacios de nombres se
extienden de diferentes ensamblados. Con respecto a la elección del nombre para los espacios de
nombres en .NET, estos deben indicar la función que suministran los tipos que se encuentran
incluidos en el espacio de nombre al que pertenecen. El formato del nombre para los espacios de
nombres es el siguiente:
<compañía>.(<Producto>|<Tecnologia>)[.<característica>][.<espacionombre>]
El Sub New inicializa el objeto definido, el que es usado solo al momento de crear la clase.
El Sub Finalize es el procedimiento que destruye o libera los recursos del sistema y solo es usado
en casos específicos, cuando los objetos no se liberan de manera implícita. Permite ser llamado
solo desde la clase a la cual pertenece. Para la ejecución explicita de liberación de recursos
también es usada la interfaz Disposable, ayudando así al Garbage Collector de .NET o colector de
elementos.
4. MÉTODOS Y PROPIEDADES
La realización de acciones que ejecuta el objeto está controlada por los métodos. Por otro lado, las
propiedades permiten controlar la manera como los valores son establecidos y devueltos.
4.1. USO
Métodos
Son bloques de código que poseen un conjunto de instrucciones. Cuando una aplicación está
corriendo permiten que sean ejecutadas esas instrucciones al llamar al método. El punto de inicio
para cada aplicación en .NET es el método Main, el que es llamado a través del Common Language
Runtime (CLR). En Visual Basic .NET existen dos maneras de declarar los métodos; una es a través
12
ESTE DOCUMENTO CONTIENE LA SEMANA 6
de Sub, donde esta instrucción no devuelve un valor, y otra mediante la instrucción Function, que
sí devuelve un valor.
End Sub
En este caso, el método es público, es decir, puede llamarse en cualquier parte de la aplicación.
Se produce una sobrecarga de métodos cuando una clase tiene dos o más métodos, llamados de la
misma manera y con firmas distintas. La sobrecarga es usada cuando un objeto tiene nombres de
procedimientos iguales pero con distintos tipos de datos.
Ejemplo de sobrecarga:
Propiedades
Las propiedades son los atributos o características del objeto. Para definir las propiedades de una
clase se debe agregar las palabras claves Get y Set respectivamente, como se muestra en el
siguiente ejemplo:
Get retorna la Estatura y Set usa el parámetro Valor para establecer la estatura.
4.2. FUNCIÓN
Método
Los métodos son las acciones que realiza o puede realizar el objeto, es decir, son un conjunto de
instrucciones que serán puestas en funcionamiento en el momento en que la aplicación se
encuentre en tiempo de ejecución. Por ejemplo:
13
ESTE DOCUMENTO CONTIENE LA SEMANA 6
Function Mayor(ByVal x As Integer, ByVal y As Integer)As Integer
If x > y Then
Return x
Else
Return y
End Function
Se define un método Function, el cual retornará el valor X o Y, dependiendo de cuál de los dos sea
el mayor.
Propiedades
Poseen procedimientos Get y Set, que permiten un mejor control en la manera como se
establecen o devuelven los datos. Las propiedades no especifican la dirección de memoria donde
se almacenan los objetos. Contienen descriptores de acceso, los que detallan las instrucciones que
serán procesadas al momento de lectura y escritura de los valores.
End Get
Set(ByVal Valor As String)
Dim espacio As Integer = Valor.IndexOf(" ")
If espacio < 0 Then
Rut = espacio
NombreApellido = ""
Else
Rut = Valor.Substring(0, espacio)
NombreApellido = Valor.Substring(espacio + 1)
End If
End Set
End Property
El procedimiento Get realiza la unión de ambos datos y retorna la propiedad Datos, la que
contiene tanto el Rut como NombreApellido;
5. CONSTRUCTORES Y DESTRUCTORES
Como sus nombres lo indican, se encargan del control de la construcción y destrucción de los
objetos.
14
ESTE DOCUMENTO CONTIENE LA SEMANA 6
5.1. USO
Constructor
En Visual Basic .NET se usa la instrucción Sub New para la definición de los constructores.
En su declaración no se especifica el tipo, debido a que el constructor crea un tipo.
Los constructores se encargan de la inicialización de un objeto en una clase; dicho de otro modo,
es la manera en que un objeto toma sus valores iniciales al realizar la instanciación de la clase. Son
utilizados en la creación de tablas de clases y en la implementación de polimorfismo.
Destructor
5.2. FUNCIONAMIENTO
Constructor
Cuando es usado un constructor el compilador puede determinar qué objeto responde a ciertos
eventos. Al definir una clase derivada, en la primera línea se debe realizar una llamada al
constructor perteneciente a la clase base, siempre y cuando el constructor necesite parámetros.
La sentencia Sub New para crear el constructor y entre paréntesis la o las variables que se
necesitarán.
La instrucción Sub New acepta argumentos cuando se llama a un constructor que incluye
parámetros, y su sintaxis es la siguiente:
ValorExterno = Valor
EndIf
End Sub
15
ESTE DOCUMENTO CONTIENE LA SEMANA 6
La sobrecarga de constructores se da cuando tiene más de un parámetro, y su sintaxis es la
siguiente:
Else
End Sub
En dicho constructor con sobrecarga se evaluaron los valores de cada uno de los constructores
definidos.
Destructores
Sus funciones principales son la liberación de memoria y/o recursos de la plataforma que el objeto
haya utilizado durante la ejecución, al igual que la remoción de las relaciones con otros objetos
durante el tiempo de ejecución. El Garbage Collector de .NET es el encargado de realizar la
liberación de espacios utilizados por los objetos; a pesar de que la manera como es realizada la
liberación es de gran ayuda para el desarrollador, existen casos (cuando se realizan referencias a
objetos nativos, por ejemplo: conexión a bases de datos) donde este debe especificar qué se debe
ejecutar en la liberación.
Un ejemplo de un destructor es el uso del método Close(), al haber realizado la llamada de la clase
SqlConnection. El CLR realiza el llamado del método Finalize y, de este modo, permite liberar la
memoria. Este método se encarga de limpiar y guardar información referente al estado, cierre de
archivos y las conexiones a base de datos. Se muestra aquí un ejemplo de la declaración de una
clase base del destructor Finalize:
Sub Finalize()
MyBase.Finalize()
End Sub
16
ESTE DOCUMENTO CONTIENE LA SEMANA 6
COMENTARIO FINAL
El desarrollo de aplicaciones haciendo uso del paradigma de programación orientada a objetos
(POO) es una de las bondades de mayor relevancia en Visual Basic .NET Framework, pues permite
desarrollar de una manera mucho más ordenada y comprensible al momento de necesitar leer el
código fuente, hacer uso eficiente de los recursos y/o infraestructura, y reutilizar el código que es
la base en este paradigma de programación. La herencia es la base fundamental de la POO, debido
a que de ella se deriva todo lo que un objeto podrá hacer o no. En este sentido, .NET pone a
disposición una gran cantidad de clases distribuidas en los diferentes espacios de nombres que se
encuentran en la biblioteca de clases del framework.
Los espacios de nombres permiten hacer uso de las virtudes del framework debido a que muchas
de las funcionalidades necesarias para el desarrollo de aplicaciones se encuentran ya
contempladas, desde la construcción de un formulario para el ingreso de datos hasta el control y/o
seguridad de red y acceso a los sistemas que se desarrollan en este. El manejo de constructores y
destructores de objetos permite que el desarrollador solo se preocupe del control de otros
aspectos en el ciclo de vida del sistema.
17
ESTE DOCUMENTO CONTIENE LA SEMANA 6
REFERENCIAS
Microsoft Developer Network (2007). Programación orientada a objetos en Visual Basic.
18
ESTE DOCUMENTO CONTIENE LA SEMANA 6
PARA REFERENCIAR ESTE DOCUMENTO, CONSIDERE:
19
ESTE DOCUMENTO CONTIENE LA SEMANA 6
20
ESTE DOCUMENTO CONTIENE LA SEMANA 6