Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Se designa como objeto cualquier elemento, por ejemplo, un formulario, una imagen, un
control, tal como una caja de texto; a su vez, los objetos tienen propiedades, que en el caso
de la caja de texto una es la propiedad "text" que se encarga de contener el texto que
aparecerá en la caja. A los objetos se les puede asociar eventos. Un evento es la ocurrencia
de un suceso, comúnmente la acción que realiza el usuario sobre el objeto, que como
resultado puede, por ejemplo, provocar un cambio en alguna propiedad de un objeto. Por
ejemplo: Visual Basic tiene un evento llamado KeyPress, que ocurre cuando el usuario
presiona una tecla; ese evento se puede asociar a la caja de texto, y en él definirá (por
programación) qué acción se tomará cuando se oprima una tecla.
Imagínese un auto como un objeto; el auto tiene diversas propiedades como color, modelo,
etc. Algunas con sólo 2 posibles valores, como encendido y apagado, incluso otras que a
simple vista no se ven, como podría ser la cantidad de gasolina. Para definir el color de este
objeto Auto, según Visual Basic, se haría de la siguiente manera:
Auto.color = rojo
Ejemplo de código
El siguiente fragmento de código muestra un cuadro de mensaje, en una ventana, que dice
"¡Hola, mundo!":
Otras versiones
Un objeto es una combinación de código y datos que puede tratarse como una unidad. Un
objeto puede ser una porción de una aplicación, como un control o un formulario. Una
aplicación entera también puede ser un objeto.
Cuando se crea una aplicación en Visual Basic, se trabaja constantemente con objetos. Se
pueden usar los objetos proporcionados por Visual Basic, como controles, formularios y
objetos de acceso a datos. También se pueden usar los objetos de otras aplicaciones en la
aplicación de Visual Basic. Incluso pueden crearse objetos propios y agregarles
propiedades y métodos adicionales. Los objetos actúan como bloques de creación
prefabricados para programas: permiten escribir una porción de código y utilizarla una y
otra vez.
Para comprender la relación entre un objeto y su clase, piense en los moldes de hacer
galletas y en las galletas. El molde es la clase. Define las características de cada galleta, por
ejemplo, el tamaño y la forma. La clase se utiliza para crear objetos. Los objetos son las
galletas.
Siempre que sea posible, debe declarar la variable para que sea del tipo de clase que piensa
asignarle. Esto se llama enlace en tiempo de compilación. Si no conoce el tipo de clase en
el tiempo de compilación, puede invocar el enlace en tiempo de ejecución declarando la
variable para que sea Object (Tipo de datos). Sin embargo, el enlace en tiempo de ejecución
puede ralentizar el rendimiento y limitar el acceso a los miembros del objeto en tiempo de
ejecución. Para obtener más información, vea Declaración de variables de objeto (Visual
Basic).
Varias instancias
Los objetos recientemente creados a partir de una clase son a menudo idénticos. Una vez
que existen como objetos individuales no obstante, sus variables y propiedades se pueden
cambiar independientemente de las demás instancias. Por ejemplo, si agrega tres casillas a
un formulario, cada objeto de botón de casilla es una instancia de la clase CheckBox. Los
objetos CheckBox individuales comparten un conjunto de características y funciones
comunes (propiedades, variables, procedimientos y eventos) definidos por la clase. No
obstante, cada uno tiene su propio nombre, puede habilitarse y deshabilitarse por separado,
y puede colocarse en una ubicación diferente en el formulario.
Miembros de objetos
Un objeto es un elemento de una aplicación, que representa una instancia de una clase.
Campos, propiedades, métodos y eventos son los bloques de creación básicos de los objetos
y constituyen sus miembros.
Acceso a miembros
IntelliSense lista los miembros de una clase cuando invoca su opción Lista de miembros,
por ejemplo, cuando escribe un punto (.) como un operador de acceso a miembros. Si
escribe el punto después del nombre de una variable declarada como una instancia de esa
clase, IntelliSense muestra todos los miembros de instancias y ninguno de los miembros
compartidos. Si escribe el punto después del nombre de clase, IntelliSense lista todos los
miembros compartidos y ninguno de los miembros de instancias. Para obtener más
información, vea Utilizar IntelliSense.
Campos y propiedades
Métodos
Un método es una acción que puede realizar un objeto. Por ejemplo, Add es un método del
objeto ComboBox que agrega una nueva entrada a un cuadro combinado.
Eventos
Un evento es una acción que un objeto reconoce, como hacer clic con el mouse o presionar
una tecla, y para el que puede escribir código para responder. Los eventos se producen
como consecuencia de una acción del usuario o de código de programa, o bien pueden ser
generados por el sistema. Se dice que el código que señala un evento provoca el evento y
que el código que responde a él lo controla.
También puede desarrollar eventos personalizados propios para que los generen sus objetos
y los controlen otros objetos. Para obtener más información, vea Eventos (Visual Basic).
Cuando crea un objeto a partir de una clase, el resultado es una instancia de esa clase. Los
miembros que no están declarados con la palabra clave Shared (Visual Basic) son
miembros de instancias que pertenecen estrictamente a esta instancia en particular. Un
miembro de instancia en una instancia es independiente del mismo miembro en otra
instancia de la misma clase. Por ejemplo, una variable miembro de la instancia puede tener
valores diferentes en instancias diferentes.
Los miembros declarados con la palabra clave Shared son miembros compartidos que
pertenecen a la clase en su conjunto y no a una instancia determinada. Un miembro
compartido sólo existe una vez, independientemente de las instancias de su clase que pueda
crear o incluso si no crea ninguna. Por ejemplo, una variable miembro compartida tiene
sólo un valor que está disponible para todo el código que pueda tener acceso a la clase.
La diferencia principal entre clases y módulos consiste en que pueden crearse instancias de
clases como objetos pero no de módulos. Como sólo existe una copia de los datos de un
módulo estándar, cuando una parte del programa cambia una variable pública en un módulo
estándar, cualquier otra parte del programa obtendrá el mismo valor si lee luego esa
variable. En comparación, los datos de objeto existen individualmente para cada objeto con
instancias. Otra distinción es que, a diferencia de los módulos estándar, las clases pueden
implementar interfaces.
Nota
Cuando el modificador Shared se aplica a un miembro de clase, está asociado con la propia
clase en lugar de con una instancia determinada de la clase. Se tiene acceso directo al
miembro mediante el nombre de clase, de la misma manera que se tiene acceso a los
miembros de módulos.
Las clases y los módulos también emplean ámbitos diferentes para sus miembros. Los
miembros definidos dentro de una clase tienen el ámbito de una instancia específica de la
clase y sólo existen mientras dure el objeto. Para tener acceso a los miembros de clases
desde el exterior de una clase, debe utilizar los nombres completos con el formato
Objeto.Miembro.
Por otro lado, los miembros declarados dentro de un módulo son de manera predeterminada
accesibles públicamente y se puede obtener acceso a ellos mediante cualquier código que
tenga acceso al módulo. Esto significa que las variables en un módulo estándar son de
hecho variables globales porque son visibles desde cualquier parte del proyecto y existen
durante toda la vida útil del programa.
En el ejemplo anterior, la primera Instrucción Dim (Visual Basic) declara una variable de
objeto de tipo TimeZone y le asigna un objeto TimeZone devuelto por la propiedad
CurrentTimeZone.
Cuando las clases se derivan de las clases más fundamentales, se dice que tienen una
relación jerárquica. Las jerarquías de clases son útiles cuando se describen elementos que
constituyen un subtipo de una clase más general.
En el ejemplo siguiente, suponga que desea definir un tipo especial de Button que se
comporta como una clase Button normal pero también expone un método que invierte los
colores de primer plano y de fondo.
1. Utilice Instrucción Class (Visual Basic) para definir una clase a partir de la cual crea
el objeto que necesita.
Asegúrese de que sigue una instrucción End Class después de la última línea de
código de la clase. De manera predeterminada, el entorno de desarrollo integrado
(IDE) genera automáticamente End Class cuando escribe una instrucción Class.
Inherits System.Windows.Forms.Button
Su nueva clase hereda todos los miembros definidos por la clase base.
3. Agregue el código para los miembros adicionales que expone la clase derivada. Por
ejemplo, puede agregar un método reverseColors y su clase derivada podría
aparecer del modo siguiente:
4. Public Class reversibleButton
5. Inherits System.Windows.Forms.Button
6. Public Sub reverseColors()
7. Dim saveColor As System.Drawing.Color = Me.BackColor
8. Me.BackColor = Me.ForeColor
9. Me.ForeColor = saveColor
10. End Sub
11. End Class
Si crea un objeto a partir de la clase reversibleButton, puede tener acceso a todos los
miembros de la clase Button, así como al método reverseColors y a cualquier otro
miembro nuevo que define en reversibleButton.
Las clases derivadas heredan miembros de la clase en la que se basan, lo que permite
agregar complejidad a medida que se progresa en una jerarquía de clases. Para obtener más
información, vea Fundamentos de la herencia (Visual Basic).
Compilar el código
Asegúrese de que el compilador puede tener acceso a la clase de la que piensa hacer derivar
su nueva clase. Esto podría significar la calificación completa de su nombre, como en el
ejemplo anterior, o la identificación del espacio de nombres en Instrucción Imports (Tipo y
espacio de nombres de .NET). Si la clase está en un proyecto diferente, es posible que
necesite agregar una referencia a ese proyecto. Para obtener más información, vea
Administrar referencias de proyecto..
Relación de contención
Otra manera en que se pueden relacionar objetos es una relación de contención. Los objetos
contenedores encapsulan lógicamente otros objetos. Por ejemplo, el objeto
OperatingSystem contiene lógicamente un objeto Version que vuelve a través de su
propiedad Version. Observe que el objeto contenedor no contiene ningún otro objeto
físicamente.
Colecciones
Temas relacionados