Práctica POO
Práctica POO
Práctica POO
Herencia
Encapsulacin
Polimorfismo
Herencia
Una relacin de herencia es una relacin en la que un tipo (el tipo derivado) se
deriva de otro (el tipo base), de tal forma que el espacio de declaracin del tipo
derivado contiene implcitamente todos los miembros de tipo no constructor del
tipo base.
Encapsulacin
Cuando usamos las clases, stas tienen una serie de caractersticas (los datos
que manipula) as como una serie de comportamientos (las acciones a realizar
con esos datos). La encapsulacin es esa capacidad de la clase de ocultarnos
sus interioridades para que slo veamos lo que tenemos que ver, sin tener que
preocuparnos de cmo est codificada para que haga lo que hace...
simplemente nos debe importar que lo hace.
Polimorfismo
Dicho de otra manera, puede tener mltiples clases que se pueden utilizar de
forma intercambiable, si bien cada clase implementa las mismas propiedades o
los mismos mtodos de maneras diferentes. El polimorfismo es importante en
la programacin orientada a objetos puesto que permite usar elementos que
tienen el mismo nombre, independientemente del tipo de objeto que se est
utilizando en ese momento.
Resumiendo: Determina que el mismo nombre de mtodo realizar
diferentes acciones segn el objeto sobre el que se ha aplicado.
Qu es una clase?
Los programas de Visual Basic se generan con objetos como formularios y
controles. Los objetos tambin se pueden utilizar para representar cosas reales
como personas, equipos informticos o incluso algo ms abstracto, como una
cuenta bancaria.
Aunque puede que no os hayis dado cuenta, ya hemos utilizado las clases en
otros tutoriales de VB que hay por Cristalab, como por ejemplo,en el tutorial
bsico de Visual Basic .NET o al crear aplicaciones con .NET y las seguiremos
viendo en los prximos Tips o Tutoriales que vengan.
Por ejemplo, el control TextBox lo define una clase TextBox, que define su
aspecto y sus funciones. Cada vez que arrastramos un control TextBox a un
formulario, realmente est creando una nueva instancia de la clase TextBox.
Cada control TextBox es una copia exacta, aunque distinta, de la clase que lo
define, la clase TextBox. Puesto que cada objeto es una "instancia"
independiente de una clase, la accin de crear una clase se denomina
creacin de instancias.
Por ejemplo, una clase que representa una cuenta bancaria podra tener
propiedades como AccountNumber o AccountBalance, mtodos como
CalculateInterest y eventos como BalanceChanged. Una vez creada la
instancia de un objeto de cuenta bancaria, puede tener acceso a sus
propiedades, mtodos y eventos de igual manera que si se tratara de un objeto
TextBox.
Algunos miembros de una clase son privados; slo se tiene acceso a ellos
mediante cdigo dentro de la clase. Por ejemplo, una clase de cuenta bancaria
puede tener un mtodo para calcular un saldo. Lo lgico es permitir que un
programa lea ese balance pero no que pueda cambiarlo directamente.
Puede ocultar los miembros de una clase si los declara como Private o
exponerlos si los declara como Public. Tambin puede permitir el acceso a una
propiedad y a la vez impedir que el programa cambie su valor declarndolo
como ReadOnly.
El cdigo siguiente muestra cmo podra ser una clase BankAccount, por
ejemplo:
Para empezar a ver mejor crear clases,y usarlas crearemos una clase que
represente a una persona;
Podemos guardar esta clase y utilizarla en otros programas que escribamos en
el futuro.
Las clases se pueden crear de tres maneras: como parte del cdigo en un
mdulo de formulario en un proyecto de aplicacin para Windows, como un
mdulo de clase separado agregado a un proyecto de aplicacin para Windows
o como un proyecto de bibliotecas de clase independiente.
Crear clases
End Sub
End Class
Mdulos de clase
Como campo.
Como procedimiento de propiedad.
Para agregar un campo a una clase, el cdigo podra ser como el que sigue.
La primera lnea de cdigo declara una variable String privada, nameValue que
almacenar el valor de la propiedad. El procedimiento de propiedad en s
comienza con Public Property y termina con End Property.
El procedimiento Set contiene cdigo que se utiliza para asignar un nuevo valor
a la variable nameValue usando un valor pasado como argumento value. Por
ejemplo, si escribimos el cdigo Persons.Name = "Wyrm", el valor String Wyrm
se pasar como argumento value; el cdigo del procedimiento Set lo asignar a
la variable NameValue para su almacenamiento.
Por qu complicarnos tanto, en lugar de utilizar un campo que represente la
propiedad Name? En el mundo real, hay ciertas reglas para los nombres: por
ejemplo, los nombres normalmente no contienen nmeros. Puede agregar
cdigo al procedimiento Set para comprobar el argumento value y devolver un
error si contiene nmeros.
Quedar as:
33. En el men Archivo, elegimos Guardar todo para guardar el trabajo.
A veces una propiedad se establece una vez y no cambia nunca mas durante
la ejecucin del programa.
Por ejemplo, una propiedad que representa un nmero de empleado nunca
debe cambiar, de modo que otro programa si lo pueda leer, pero no se
permitir que ese programa cambie su valor.
Para crear una propiedad de slo escritura, se crear una propiedad con un
procedimiento Set pero sin procedimiento Get, como a continuacin:
Agregaremos mtodos a una clase, para que puedan realizar acciones. Vimos
que la mayora de los objetos tienen acciones que pueden realizar; estas
acciones se conocen como mtodos.
El cdigo para una funcin privada puede ser similar a ste otro:
Quizs os preguntis por qu tuvimos que escribir dos veces Persons, pues porque la
primera instancia es el mdulo de clase Persons.vb y la segunda instancia es la clase
Persons de ese mdulo.
Mtodos sobrecargados
El siguiente ejemplo muestra un mtodo con dos sobrecargas, una que acepta
una String y la otra que acepta un Integer como argumentos.
Podemos crear tantas sobrecargas como sean necesarias y cada una de ellas
puede contener un nmero diferente de argumentos.
End Sub
Presionamos F5 para ejecutar el proyecto y mostrar el formulario.
-En el primer cuadro de texto, escribimos nuestro nombre.
-En el segundo cuadro de texto, escribimos nuestro segundo apellido.
-En el tercer cuadro de texto, escribimos nuestro tercer apellido.
-En el cuarto cuadro de texto, escribimos el ao de nuestro nacimiento con
cuatro dgitos (por ejemplo, 1983).
-Activamos la casilla si est casado/a.
Hacemos clic en el botn Actualizar para establecer las propiedades de la clase
y haga clic en el botn Full Name.
Class DerivedClass
Inherits BaseClass
End Class
Inherits Persons
Agregamos tambin el siguiente cdigo para definir las dos nuevas
propiedades.
Private numberValue As Integer
Private positionValue As String
Public Property Number() As Integer
Get
Number = numberValue
End Get
Set(ByVal value As Integer)
numberValue = value
End Set
End Property
Public Property Position() As String
Get
Position = positionValue
End Get
Set(ByVal value As String)
positionValue = value
End Set
End Property
22. Presionamos F5 para ejecutar el programa. Hacemos clic en cada botn para
ver los resultados.
Clic al Boton1(At Bat):
Clic al Boton2(on Deck):
Y aqui, finalizando probar una clase derivada, acabamos con el tutorial sobre la
POO y sus clases en Visual Basic.NET.
Hemos visto, qu son y cmo crear clases, agregarle propiedades, mtodos y
eventos, las hemos heredado, etc.