Documentos de Académico
Documentos de Profesional
Documentos de Cultura
10 Programacion Orientada A Objetos en Visual Basic Net
10 Programacion Orientada A Objetos en Visual Basic Net
ndice
Introduccin
22
28
Introduccin
Crear
Interfaz
Escribir
Debug
Cdigo
and Deploy
Uso de Visual
Studio .NET
Acceso
a datos
Depurar e
implantar
Uso de miembros
compartidos
Herencia, Polimorfismo
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
*************************************************************************************
Introduccin
Estructura de la leccin
Objetivos de la leccin
Qu es una clase?
Qu es un objeto?
Qu es una clase?
Lo que ve el usuario:
*************************************************************************************
Introduccin
Definicin
Uso de la abstraccin
Ejemplo de abstraccin
Uso de la encapsulacin
Ejemplo de
encapsulacin
Qu es un objeto?
Objeto
Objeto
Objeto
Objeto
12
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
Ejemplo de objeto
Identidad
Comportamiento
Estado
que las realice. Dos objetos podran contener casualmente el mismo estado,
pero seguiran siendo dos objetos distintos.
Panel
Panel
Miembros
Miembros
Panel
Panel
Objetos
Objetos
Panel
Panel
Descripcin
Descripcin
*************************************************************************************
Introduccin
Descripcin
Icono
Descripcin
Espacio de nombres
Mdulo
Clase
Estructura
*************************************************************************************
Introduccin
Estructura de la leccin
Objetivos de la leccin
Crear un objeto.
Public
BankAccount
BankAccount
Public Class
Class Class1
Class1
End
End Class
Class
*************************************************************************************
Introduccin
10
Public
Public Class
Class BankAccount
BankAccount
Private
Private balance
balance As
As Double
Double
End
End Class
Class
Palabra
Palabra
clave
clave
Definici
n
Definici
Definicin
Public
Public
Accesible
Accesibleen
entodas
todaspartes
partes
Private
Private
Accesible
Accesibleslo
sloen
enelelpropio
propiotipo
tipo
Accesible
Accesibleslo
slopor
porclases
clasesque
queheredan
heredande
delala
clase
clase
Protected
Protected
*************************************************************************************
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
una instancia
Ejemplo
Palabra clave Me
11
12
Public
Public Class
Class BankAccount
BankAccount
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
Ejemplo
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
13
Public
Public Class
Class BankAccount
BankAccount
Private
Private customerName
customerName As
As String
String
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
Agregar propiedades
Ejemplo
ReadOnly y WriteOnly
14
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( )
Ejemplo
15
*************************************************************************************
En esta prctica, crearemos una clase BankAccount con mtodos y
propiedades.
16
17
3. Dentro del Sub Main, crear una instancia de la clase BankAccount, como
sigue:
Dim account As New BankAccount( )
18
Archivos de solucin
19
Public
Public Sub
Sub New(
New( ))
''Perform
Perform simple
simple initialization
initialization
value
=
1
value = 1
End
End Sub
Sub
Public
Public Sub
Sub New(ByVal
New(ByVal ii As
As Integer)
Integer)
'' Overloaded
without
Overloaded without Overloads
Overloads keyword
keyword
'' Perform
Perform more
more complex
complex initialization
initialization
value
value == ii
End
End Sub
Sub
*************************************************************************************
Introduccin
Caractersticas de Sub
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.
20
Sobrecarga de
constructores
21
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
Finalize y Dispose
22
*************************************************************************************
Introduccin
Estructura de la leccin
Objetivos de la leccin
23
Class
Class SavingsAccount
SavingsAccount
Public
Public Shared
Shared InterestRate
InterestRate As
As Double
Double
Public
Name
As
String,
Balance
Public Name As String, Balance As
As Double
Double
.. .. ..
End
End Class
Class
SavingsAccount.InterestRate
SavingsAccount.InterestRate == 0.03
0.03
*************************************************************************************
Introduccin
Sintaxis
Niveles de acceso
Ejemplo
24
Invocar miembros de
datos compartidos
desde un cliente
Despus de crear una clase que utilice miembros de datos compartidos pblicos,
podemos invocar los miembros de datos de esa clase desde una aplicacin
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
Dim myAccount As New SavingsAccount( )
Dim yourAccount As New SavingsAccount( )
MessageBox.Show(myAccount.CalculateInterest( ))
MessageBox.Show(yourAccount.CalculateInterest( ))
End Sub
Propiedades
compartidas
Invocar propiedades
compartidas desde un
cliente
25
'' TestClass
TestClass code
code
Public
Public Shared
Shared Function
Function GetComputerName(
GetComputerName( )) As
As String
String
...
...
End
End Function
Function
'' Client
Client code
code
MessageBox.Show(TestClass.GetComputerName(
MessageBox.Show(TestClass.GetComputerName( ))
))
*************************************************************************************
Introduccin
26
En esta prctica,
z
*************************************************************************************
En esta prctica, crearemos y utilizaremos una clase que tiene un mtodo
compartido para convertir grados Fahrenheit en grados Celsius.
27
28
*************************************************************************************
Introduccin
Estructura de la leccin
Objetivos de la leccin
Qu es la herencia?
Qu es el polimorfismo?
29
Qu es la herencia?
Ejemplos:
Clase base
Clases derivadas
Cliente
Persona
Empleado
*************************************************************************************
Introduccin
Definicin
Ejemplo de herencia
30
Palabras clave
z
NotInheritable: no es heredable
*************************************************************************************
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 se utiliza para definir una clase derivada que heredar
de una clase base existente.
Ejemplo
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.
31
La palabra clave
NotInheritable
La palabra clave NotInheritable se utiliza para definir una clase que no puede
utilizarse como clase base para herencia. Si otra clase intenta heredar de esta
clase, se generar un error de compilacin.
Ejemplo
La palabra clave
MustInherit
Ejemplo
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
Protected
Ejemplo
32
Qu es el polimorfismo?
CountyTax
CountyTax
CityTax
CityTax
CalculateTax(
CalculateTax( ))
CalculateTax(
CalculateTax( ))
*************************************************************************************
Introduccin
Definicin
Ejemplo de
polimorfismo
33
Clases
Clases
Estructuras
Estructuras
Pueden
Puedendefinir
definirmiembros
miembrosde
dedatos,
datos,
propiedades
propiedadesyymtodos
mtodos
Soportan
Soportanconstructores
constructoresee
inicializacin
inicializacinde
demiembros
miembros
Pueden
Puedendefinir
definirmiembros
miembros de
dedatos,
datos,
propiedades
propiedades yy mtodos
mtodos
No
Noconstructor
constructorpredeterminado
predeterminadonini
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
Estructuras
Inicializacin
Mtodo Finalize
Herencia
No soportan herencia.
Tipo de datos
34
Ejemplo: System.Windows.Forms.Button
*************************************************************************************
Introduccin
Ejemplo de un espacio
de nombres
Nombres cualificados
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
nombres
35
Namespace CompVB
Public Class StringComponent
...
End Class
End Namespace
Uso de un espacio de
nombres