Você está na página 1de 30

Desarrollo Aplicaciones Windows

con Microsoft Visual Studio

Conceptos Fundamentales
La

Programacin Orientada a Objetos (POO)


es un paradigma de programacin que define
los programas en trminos de "clases de
objetos

Propsito
Crear y utilizar objetos que colaboren entre s
para realizar tareas.
Esto
permite hacer los programas y
componentes ms fciles de escribir,
mantener y reutilizar.

Caractersticas
Abstraccin.
Encapsulamiento.

Herencia.
Polimorfismo.

Abstraccin
Capacidad

del ser humano para entender


una situacin y extraer elementos
excluyendo detalles irrelevantes.

Encapsulamiento
Propiedad

de los objetos de proveer acceso


a su estado a travs de su interfaz o de
relaciones preestablecidas con otros objetos.

Polimorfismo
Comportamientos

diferentes asociados a
objetos distintos para una misma accin.
A
B

C
D

Dibujar
Rectngulo

Clase y Objeto

Clase: Descripcin nombrada del conjunto de


objetos que comparten los mismos atributos,
funcionamiento, relaciones y semntica.

Objeto: Instancia de clase


provista de datos y
comportamiento.
Componentes:
Implementacin, Estado e
Interfaz.

POO en Visual Basic


Clase.
Objeto.
Datos:

Campos, Propiedades, Atributos.


Comportamiento: Mtodos y Eventos.
Accesibilidad.
Herencia.
Interfaces.
Polimorfismo (por herencia e interfaz).
Sobrecarga de mtodos y operadores.
Sobrescritura y Ensombrecimiento.
Espacios de nombre.

Clase
Instruccin

Class.
Haga uso de Partial para
crear definiciones
parciales de una clase.
Partial Public Class Libro
Public Codigo As String
Public Titulo As String
End Class

Public Class Clase


' Implementacin de la clase
End Class

Partial Public Class Libro


Public Precio As Double
Public FechaPublicacion As Date
Public Function ObtenerInfo() As String
Return String.Format("{0}-{1} ({2})", _
Me.Codigo, Me.Titulo, Me.Precio)
End Function
End Class

Objeto
Utilice la instruccin New.
Puede crear instancias de tres formas
diferentes.
Todas las instancias de clase son objetos de
tipo referencia.

' Forma 1
Dim Libro1 As New Libro
' Forma 2
Dim Libro2 As Libro = New Libro
' Forma 3
Dim Libro3 As Libro
Libro3 = New Libro

Campos, Propiedades

Un campo es una variable definida dentro de


la clase que tiene como fin almacenar
informacin que defina el estado de cada
instancia.
Public Class Ventana
Public Alto As Integer
Public Ancho As Integer
Public Titulo As String
Public ColorFondo As System.Drawing.Color
End Class

Module ModuloPrueba
Sub Main()
Dim MiVentana As New Ventana
MiVentana.Ancho = 250
End Sub
End Module

Campos, Propiedades
Utilice

la instruccin Property.
Incluyen dos mtodos: Get (lectura) y Set
(Escritura)
Una propiedad puede ser de slo lectura
(ReadOnly) o de slo escritura (WriteOnly)
Public Class Ventana
Private m_Alto As Integer
Public Property Alto() As Integer
Get
Return Me.m_Alto
End Get
Set(ByVal value As Integer)
Me.m_Alto = value
End Set
End Property
End Class

Public Class Prueba


Sub Probar()
Dim MiVentana As New Ventana
' Se ejecuta Mtodo Set
MiVentana.Alto = 125
' Se Ejecuta Mtodo Get
Dim ValorAlto As Integer = MiVentana.Alto
End Sub
End Class

Mtodos y Eventos
Pueden

ser procedimientos o funciones. Un


procedimiento se implementa mediante la
instruccin Sub. Una funcin se implementa
mediante la instruccin Function.
Public Class Operaciones
Protected Sub Convertir(ByVal Origen As Integer, ByVal Destino As Double)
' Implementacin
End Sub
Public Function EsPrimo(ByVal Valor As Integer) As Boolean
' Implementacin
End Function
End Class

Constructores y Destructores
Utilice Sub New() para un constructor.
Utilice Sub Finalize()
Public Class Clase
para un destructor.
Sub New()
'Implementacin
End Sub
Todas las clases
Sub New(ByVal FechaHoraActual As Date)
'Implementacin
tienen un constructor
End Sub
Protected Overrides Sub Finalize()
' Implementacin
por defecto.
End Sub
End Class
Pueden sobrecargarse
Module ModuloPrueba
Sub Main()
slo los constructores.
Dim Objeto1 As New Clase

Dim Objeto2 As New Clase(Date.Now)


End Sub
End Module

Miembros compartidos
Instruccin Shared.
Aplicado a Campos, propiedades y mtodos.
Los mtodos compartidos slo pueden
manipular campos o propiedades
compartidas.

Accesibilidad
Ensamblados

Clase Derivada

Cliente

Clase Base

Public
Private
Protected
Friend

Clase sin relacin

Herencia
Utilice

la instruccin Inherits.
Todas las clases derivan implcitamente de
Object.
Public Class Cliente
' Implementacin clase Base
End Class
Public Class Tienda
Inherits Cliente
' Implementacin clase Derivada
End Class
Public Class Individuo
Inherits Cliente
' Implementacin clase Derivada
End Class

Modificadores:
Inherits.
NotInheritable.
MustInherit.

Interfaces
Instruccin Interface.
No contienen implementacin.
Implementada por clases y estructuras.
Pueden derivarse entre ellas.

Interfaces. Ejemplo
Public Class Contacto
Public Nombre As String
Public Telefono As String
Public Direccion As String
End Class

Public Interface IContacto


Sub Adicionar(ByVal Elemento As Contacto)
Sub Adicionar(ByVal Elementos() As Contacto)
End Interface

Public Class Agenda


Implements IContacto
Public Sub Adicionar(ByVal Elemento As Contacto) _
Implements IContacto.Adicionar
Implementacin
End Sub
Public Sub Adicionar(ByVal Elementos() As Contacto) _
Implements IContacto.Adicionar
Implementacin
End Sub
End Class

Polimorfismo por Herencia


Public Class Cliente
Public Overridable Function Mensaje() As String
Return "Soy la clase Cliente"
End Function
End Class
Public Class Tienda
Inherits Cliente
Public Overrides Function Mensaje() As String
Return "Soy la clase Tienda"
End Function
End Class
Public Class Individuo
Inherits Cliente
Public Overrides Function Mensaje() As String
Return "Soy la clase Individuo"
End Function
End Class

Module ModuloPrueba
Sub Main()
Dim Cliente1 As New Cliente
Dim Tienda1 As New Tienda
Dim Individuo1 As New Individuo
Call MuestraMensaje(Cliente1)
Call MuestraMensaje(Tienda1)
Call MuestraMensaje(Individuo1)
End Sub
Sub MuestraMensaje(ByVal Objeto As Cliente)
Console.WriteLine(Objeto.Mensaje())
End Sub
End Module

Sobrecarga de mtodos
Utilice

la instruccin Overloads para definir


explcitamente mtodos sobrecargados.

Public Class CuentaEmail


Overloads Sub EnviaMensaje(ByVal Destino As String)
'Implementacin Sobrecarga 1
End Sub
Overloads Sub EnviaMensaje(ByVal Destinos() As String)
'Implementacin Sobrecarga 2
End Sub
Overloads Sub EnviaMensaje(ByVal Destino As String, ByVal Adjunto As Object)
'Implementacin Sobrecarga 3
End Sub
End Class
Public Class Prueba
Sub Probar()
El requisito de la
Dim MiCuenta As New CuentaEmail
MiCuenta.EnviaMensaje("juan@hotmail.com")
sobrecarga en la misma
End Sub
clase es que los mtodos
End Class

tengan firma diferente.

Sobrecarga de operadores
Instruccin

Operator.
Utilice Narrowing o Widening para restringir o
extender el tipo resultante.
Public Class Binario
Public Numero As String
' Sobrecarga del operador '+' para una suma de binarios con acarreo.
Public Shared Operator +(ByVal valor1 As Binario, _
ByVal valor2 As Binario) As Binario
' Implementacin
End Operator
End Class
Module ModuloPrueba
Sub Main()
Dim oB1 As New Binario
Dim oB2 As New Binario
oB1.Numero = "101"
oB2.Numero = "100"
' Publicamos el resultados de sumar dos nmeros binarios (operador sobrecargado)
Console.WriteLine("{0} + {1} = {2}", oB1.Numero, oB2.Numero, (oB1 + oB2).Numero)
End Sub
End Module

Sobrescritura
Utilice

la instruccin Overridable en el mtodo que


ser sobrescrito, y la instruccin Overrides en el
mtodo que sobrescribe.
Public Class Archivo
Public Overridable Sub Abrir _
(ByVal Ruta As String)
' Implementacion en clase Base
End Sub
End Class
Public Class ArchivoXML
Inherits Archivo
Public Overrides Sub Abrir _
(ByVal RutaXML As String)
' Implementacin clase Derivada
End Sub
End Class

Modificadores:
NotOverridable.
MustOverride.
Module ModuloPrueba
Sub Main()
Dim Archivo1 As New ArchivoXML
Archivo1.Abrir("noticias.xml")
End Sub
End Module

Ensombrecimiento

Utilice la instruccin Shadows.


Se anulan todas las implementaciones de la
clase base.

Public Class Prestamo


Public Overloads Function CalculaCuota(ByVal Monto As Double, _
ByVal Interes As Single, ByVal Meses As Integer) As Double
' Implementacin
End Function
Public Overloads Function CalculaCuota(ByVal Monto As Double, _
ByVal Meses As Integer) As Double
' Implementacin
End Function
Public Overloads Function CalculaCuota(ByVal Monto As Double, _
ByVal Meses As Integer, ByVal Gastos As Double) As Double
' Implementacin
End Function
End Class
Public Class PrestamoEspecial
Inherits Prestamo
Public Shadows Function CalculaCuota( _
ByVal Monto As Double)
' Implementacin
End Function
End Class

Public Class Prueba


Sub Probar()
Dim PrestamoEspecial1 As New PrestamoEspecial
PrestamoEspecial1.CalculaCuota(1250.0)
End Sub
End Class

Espacios de nombre
Instruccin

Namespace.
Importe un espacio de nombre con Imports.

Conexin a SQL Server

Conexin a SQL Server


Modo Local
Public conexion As New SqlConnection("Initial
Catalog= BaseDatos;Data Source=(LOCAL);user id =
USUARIO; password = CLAVE;")

A UN SERVIDOR
Public conexion As New SqlConnection("Initial
Catalog=BaseDatos;Data Source=IPdelSERVIDOR;user
id = USUARIO; password = CLAVE;")

AUTENTICACIN DE
WINDOWS
Proveedor

Sintaxis

SqlClient

Integrated Security=true;

Integrated Security=SSPI;

OleDb

Integrated Security=SSPI;

Odbc

Trusted_Connection=yes;

OracleClient

Integrated Security=yes;

Você também pode gostar