SlideShare una empresa de Scribd logo
1 de 46
Descargar para leer sin conexión
Programación Orientada
a Objetos
Microsoft Visual Basic .Net
Objeto
Un objeto es una agrupación de código,
compuesta de propiedades y métodos, que
pueden ser manipulados como una entidad
independiente.
Propiedad:
Las propiedades definen los datos o
información del objeto, permitiendo consultar
o modificar su estado.
Métodos:
Son las rutinas que definen su
comportamiento.
Clases
Es el conjunto de especificaciones o normas
que definen cómo va a ser creado un objeto
de un tipo determinado.
Instancia de un objeto:
El proceso por el cuál se obtiene un objeto a
partir de las especificaciones de una clase
se conoce como instanciación de objetos.
Características básicas de un sistema
orientado a objetos
Abstracción:
Es aquella característica que nos permite
identificar un objeto a través de sus aspectos
conceptuales.
Ejm. 1. Dos objetos automóvil, uno deportivo y
otro familiar; su aspecto exterior es muy
diferente, sin embargo, cuando pensamos en
cualquiera de ellos, sabemos que ambos
pertenecen a la clase automóvil, porque
realizamos una abstracción o identificación
mental de los elementos comunes que ambos
tienen (ruedas, volante, motor, puertas, etc.)
Características básicas de un sistema
orientado a objetos
Ejm. 2. Cuando abordamos el desarrollo de un
programa de gestión orientado a objetos,
realizamos una abstracción de los objetos que
necesitaríamos para resolver los procesos del
programa: Un objeto Empleado, para gestionar
al personal de la empresa; un objeto Factura,
para gestionar las ventas realizadas de
productos; un objeto Usuario, para verificar las
personas que utilizan la aplicación.
Características básicas de un sistema
orientado a objetos
Encapsulación:
Establece la separación entre la interfaz del
objeto y su implementación, aportándonos dos
ventajas fundamentales.
 Proporciona seguridad al código de la clase,
evitando accesos y modificaciones no
deseadas.
 Simplifica la utilización de los objetos, ya que
un programador que use un objeto, si este
está bien diseñado y su código correctamente
escrito, no necesitará conocer los detalles de
su implementación, se limitará a utilizarlo.
Características básicas de un sistema
orientado a objetos
Encapsulación:
Ejm. 1. Cuando nosotros utilizamos un objeto
automóvil, al presionar el acelerador, no
necesitamos conocer la mecánica interna que
hace moverse al coche, sabemos que el método
Acelerar del automóvil es lo que tenemos que
utilizar para desplazarnos, y simplemente lo
usamos.
Características básicas de un sistema
orientado a objetos
Encapsulación:
Ejm. 2. Si estamos creando un programa de
gestión y nos proporcionan un objeto Cliente que
tiene el método Agregar, y sirve para añadir
nuevos clientes a la b/d, no precisamos conocer
el código que contiene dicho método,
simplemente lo ejecutamos y Añadimos a los
clientes en nuestra aplicación.
Características básicas de un sistema
orientado a objetos
Polimorfismo:
Determina que el mismo nombre de método,
realizará diferentes acciones según el objeto
sobre el que sea aplicado.
Ejm. 1. Tomamos dos objetos: Pelota y
VasoCristal; si ejecutamos sobre ambos el
método Tirar, el resultado en ambos caso será
muy diferente; mientras que el objeto Pelota
rebotará al llegar al suelo, el objeto VasoVidrio se
romperá.
Características básicas de un sistema
orientado a objetos
Polimorfismo:
Ejm. 2. Supongamos que disponemos de los
objetos Ventana y Archivo; si ejecutamos sobre
ambos el método Abrir, el resultado en Ventana
será la visualización de una ventana en el monitor
del usuario; mientras que en el objeto Archivo, se
tomará un archivo en el equipo del usuario y se
dejará listo para realizar sobre él operaciones de
lectura o escritura.
Características básicas de un sistema
orientado a objetos
Herencia:
Establece que partiendo de una clase a la que
denominamos clase base, padre o superclase;
creamos una nueva clase denominada clase
derivada, hija o subclase.
En esta clase derivada dispondremos de todo el
código de la clase base, más el nuevo código de
la clase hija, que escribamos para extender sus
funcionalidades.
Características básicas de un sistema
orientado a objetos
Herencia:
Ejm. 1. Podemos usar la clase Automóvil como
clase base; en ella reconocemos una serie de
propiedades como Motor, Ruedas, Volante, etc. Y
unos métodos como Arrancar, Acelerar, Frenar,
etc.
Como clase derivada creamos AutoDeportivo, en
la cual, además de todas las características
mencionadas para la clase Automóvil,
encontramos propiedades y comportamientos
específicos como Turbo.
Definir una clase
Para definir una clase de emplea, la palabra clave
Class.
Public Class cCliente
„ Miembros de clase
End Class
Una clase puede contener cualquiera de estos
elementos (miembros):
Enumeraciones
Campos
Métodos (funciones o procedimientos)
Propiedades
Eventos
Atributos
Los Atributos de clase se representan
mediante Campos o Propiedades.
Los campos se implementan mediante
variables públicas que se pueden leer y
establecer directamente desde el exterior
de la clase.
Public Nombre As String
Las Propiedades se recuperan y establecen
como los Campos.
Atributos
Las Propiedades se implementan mediante
procedimientos Property Get y Property Set.
Private strNombre AS String
Property Nombre() As String
Get
Return strNombre
End Get
Set (ByVal Value As String)
strNombre=Value
End Set
End Property
El procedimiento Get devuelve el valor, mientras que
Procedimiento Set le asigna el valor a la Propiedad.
Métodos
Se implementan mediante procedimientos o
subrutinas (Sub) y funciones (Function)
declarados dentro de una clase
Function Saludo() As String
If Nombre<>”” Then
Return “Hola “ & Nombre
Else
Return “Hola Mundo”
End If
End Function
Constructores y Destructores
Son métodos especiales que se emplean para la
inicialización del objeto durante su construcción, y
la limpieza del mismo durante su destrucción.
El Constructor se define con el procedimiento New.
Sub New (Nombre As String)
strNombre=Nombre
End Sub
El Destructor mediante el procedimiento Finalize.
Overrides Protected Sub Finalize()
Creación y Destrucción de Objetos
Para crear un objeto se usa la cláusula New
Private mCliente AS cCliente
mCliente = New cCliente()
También se puede realizar ambas operaciones
Private mCliente As New cCliente()
otra forma
Private mCliente As cCliente=New cCliente()
Si el constructor admite parámetros
mCliente=New cCliente(“Luz”,18)
No se puede Destruir, pero si invocar el método
Dispose.
mCliente.Dispose()
Eventos
Se utilizan para notificar a los objetos sobre
la ocurrencia de alguna situación especial.
Se agregan a la clase con la instrucción
Events.
Event MiEvento(ByVal Sender As _
System.Object, ByVal NumEvento As Integer)
Para conseguir que se produzca el evento,
se debe utilizar RaiseEvent.
RaiseEvent MiEvento(Me, NumEvento)
Eventos
Para consumir un evento se necesita asociar
de manera explicita el evento a un método
(procedimiento) controlador de evento (event
handler) para lo cual se utiliza la clausula
Handles en combinación con Withevents.
Friend WithEvents Button1 As System.Windows.Forms.Button
Protect Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
End Sub
Eventos
También se puede asociar un evento a un método
controlador de evento con la instrucción
AddHandler que permite que un evento pueda
asignarse a cualquier número de controladores de
eventos.
AddHandler MyObject.Event1, AddressOf Me.MyEventHandler
Los métodos que controlan determinados eventos
pueden modificarse de manera dinámica, si se
utiliza en conjunto con la instrucción
RemoveHandler, que remueve la asociación entre
un evento y su controlador.
RemoveHandler MyObject.Event1, AddressOf Me.MyEventHandler
CREACIÓN DE UNA CLASE
Ejecutar Microsoft Visual Studio y crear un
nuevo Proyecto.
Diseñe el siguiente Formulario.
txtIdentificador btnDatos
CREACIÓN DE UNA CLASE
 Seleccione el la opción Proyecto del menú
principal lo siguiente:
Seleccionar Clase
Ingresar el nombre
de la clase:
Empleado.vb
Agregar la clase
Se mostrara lo siguiente:
Creación de campos para la clase
Un campo de una clase no es otra cosa que
una variable, generalmente con ámbito
público, accesible desde el exterior de la
clase.
El siguiente código muestra la creación de
un campo para la clase Empleado.
Creación de campos para la clase
Para manipular un campo desde código
cliente, debemos instanciar un objeto, a
continuación de la variable que lo contiene
situar un punto ( . ), y finalmente el nombre
del campo a manipular.
Creación de propiedades
para la clase
Una propiedad en la clase se define,
por norma general, mediante dos
elementos: una variable de propiedad
y un procedimiento de propiedad.
Creación de propiedades
para la clase
La variable de propiedad, tal y como
su nombre indica, es una variable
con ámbito privado a nivel de la
clase, que se encarga de guardar el
valor de la propiedad.
Creación de propiedades
para la clase
El procedimiento de propiedad
(Property), es el encargado de
actuar de puente entre el código
cliente y la variable de propiedad,
realizando las operaciones de
acceso y asignación de valores a
dicha variable.
Creación de propiedades
para la clase
Para crear una propiedad en
nuestra clase, declararemos en
primer lugar una variable Private, y
en segundo lugar un procedimiento
de tipo Property, que consta de dos
bloques:
Get, para devolver el valor de la
variable de propiedad.
Set, para asignárselo.
VENTAJAS EN EL USO DE
PROPIEDADES
Encapsulación a través de propiedades
Establece que el código de una clase
debe permanecer, siempre que sea
posible, protegido de modificaciones no
controladas del exterior (código cliente).
Nuestra clase debe actuar como una
especie de caja negra, que expone una
interfaz para su uso, pero no debe
permitir el acceso a la implementación
de dicha interfaz.
Encapsulación a través de propiedades
Supongamos que en nuestra clase Empleado
necesitamos crear un elemento para guardar
el sueldo pagado, pero el importe del sueldo
deberá estar entre un rango de valores en
función de la categoría del empleado.
Categoría Sueldo
1 0650 - 2000
2 2001 - 5000
3 5001 - 10000
4 > 10000
Si abordamos este problema utilizando
campos de clase, puede ocurrir lo que
mostramos a continuación.
¿Qué esta sucediendo? Hemos creado un
objeto Empleado al que le hemos dado
Categoría 1, sin embargo le estamos
asignando un sueldo que no corresponde a
su categoría, pero se nos permite hacerlo sin
ningún problema, ya que no existe un medio
de control que nos lo impida.
Afrontando el problema mediante el uso de
propiedades, contamos con la ventaja de
escribir código de validación en los
correspondientes procedimientos Property,
con ello encapsulamos el código de la clase,
manteniendo a salvo las asignaciones
incoherentes.
Propiedades de sólo lectura o sólo escritura
Se nos plantea un nuevo caso para nuestra
clase Empleado, debemos guardar el valor
del código de cuenta bancaria del empleado
en el objeto, pero sin permitir que dicha
información sea accesible desde el código
cliente.
Igualmente y en función de los primeros
dígitos de la cuenta bancaria, necesitamos
mostrar el nombre de la entidad, pero sin
permitir al código cliente su modificación, ya
que esta va a ser siempre una operación que
debe calcular el código de la clase.
Utilizando campos de clase no es posible
resolver esta situación, ya que al ser de
ámbito público, permiten tanto la
escritura como lectura de sus valores.
Pero si empleamos propiedades, estas
nos permiten la creación de las
denominadas propiedades de sólo lectura
o sólo escritura, en las que utilizando las
palabras clave ReadOnly y WriteOnly,
conseguimos que a una determinada
propiedad, sólo podamos asignarle o
recuperar su valor.
Debido a esto, en una propiedad ReadOnly
no podremos escribir el bloque Set, ya que
no tendría sentido, puesto que no se va a
utilizar.
Lo mismo podemos aplicar para una
propiedad WriteOnly, sólo que en esta, el
bloque que no podremos codificar será
Get.
Sesion 02 clases en_vb_net
Sesion 02 clases en_vb_net
Sesion 02 clases en_vb_net

Más contenido relacionado

La actualidad más candente

Programacion Orientada A Objetos
Programacion Orientada A ObjetosProgramacion Orientada A Objetos
Programacion Orientada A Objetosguest160f88
 
PROGRAMACION ORIENTADA A OBJETO
PROGRAMACION ORIENTADA A OBJETOPROGRAMACION ORIENTADA A OBJETO
PROGRAMACION ORIENTADA A OBJETOAnabel Jaramillo
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetoslindacajaperuiz
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetoschutas666
 
Herencia y polimorfismo unidad 5 semestre 2
Herencia y polimorfismo unidad 5 semestre 2Herencia y polimorfismo unidad 5 semestre 2
Herencia y polimorfismo unidad 5 semestre 2K Manuel TN
 
Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1Ezer Ayala Mutul
 
Programacion orientada-a-objetos
Programacion orientada-a-objetosProgramacion orientada-a-objetos
Programacion orientada-a-objetosDon Augusto
 
Php orientado a_objetos
Php orientado a_objetosPhp orientado a_objetos
Php orientado a_objetosJose Ney Quil
 
ProgramacióN Orientada A Objetos
ProgramacióN Orientada A ObjetosProgramacióN Orientada A Objetos
ProgramacióN Orientada A ObjetosPatricio Abad
 
Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.Whaleejaa Wha
 
Metodos Get y Set, finalmente revelados.
Metodos Get y Set, finalmente revelados.Metodos Get y Set, finalmente revelados.
Metodos Get y Set, finalmente revelados.Juan Carlos Espinoza
 

La actualidad más candente (20)

Unidad o informatica
Unidad o informaticaUnidad o informatica
Unidad o informatica
 
Clases y Objetos
Clases y ObjetosClases y Objetos
Clases y Objetos
 
Programacion Orientada A Objetos
Programacion Orientada A ObjetosProgramacion Orientada A Objetos
Programacion Orientada A Objetos
 
PROGRAMACION ORIENTADA A OBJETO
PROGRAMACION ORIENTADA A OBJETOPROGRAMACION ORIENTADA A OBJETO
PROGRAMACION ORIENTADA A OBJETO
 
Eventos
EventosEventos
Eventos
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Herencia y polimorfismo unidad 5 semestre 2
Herencia y polimorfismo unidad 5 semestre 2Herencia y polimorfismo unidad 5 semestre 2
Herencia y polimorfismo unidad 5 semestre 2
 
Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1
 
Clase 2 poo java
Clase 2 poo javaClase 2 poo java
Clase 2 poo java
 
Programacion orientada-a-objetos
Programacion orientada-a-objetosProgramacion orientada-a-objetos
Programacion orientada-a-objetos
 
Php orientado a_objetos
Php orientado a_objetosPhp orientado a_objetos
Php orientado a_objetos
 
ProgramacióN Orientada A Objetos
ProgramacióN Orientada A ObjetosProgramacióN Orientada A Objetos
ProgramacióN Orientada A Objetos
 
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
 
Encapsulamiento
EncapsulamientoEncapsulamiento
Encapsulamiento
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Elementos De Una Clase
Elementos De Una ClaseElementos De Una Clase
Elementos De Una Clase
 
Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.
 
Metodos Get y Set, finalmente revelados.
Metodos Get y Set, finalmente revelados.Metodos Get y Set, finalmente revelados.
Metodos Get y Set, finalmente revelados.
 

Destacado

Wintersoflongago
WintersoflongagoWintersoflongago
Wintersoflongagojim hopkins
 
Tim Grupo Creativo
Tim Grupo CreativoTim Grupo Creativo
Tim Grupo Creativomarcolo311
 
8th pre alg -l10
8th pre alg -l108th pre alg -l10
8th pre alg -l10jdurst65
 
Avances del programa del 3er Congreso Internacional de Creatividad y Talento:...
Avances del programa del 3er Congreso Internacional de Creatividad y Talento:...Avances del programa del 3er Congreso Internacional de Creatividad y Talento:...
Avances del programa del 3er Congreso Internacional de Creatividad y Talento:...julian betancourt morejon
 
7th math -c2--L9--sept7
7th math -c2--L9--sept77th math -c2--L9--sept7
7th math -c2--L9--sept7jdurst65
 
Civicorps recycling earned income presentation 9 10 12
Civicorps recycling earned income presentation 9 10 12Civicorps recycling earned income presentation 9 10 12
Civicorps recycling earned income presentation 9 10 12sfathomas
 
Workshop adobe publishing suite maggio2012 r_et
Workshop adobe publishing suite maggio2012 r_etWorkshop adobe publishing suite maggio2012 r_et
Workshop adobe publishing suite maggio2012 r_etInSide Training
 
Site Marketing ma senza Keyword
Site Marketing ma senza KeywordSite Marketing ma senza Keyword
Site Marketing ma senza KeywordMarco Dal Pozzo
 
Workdex Representatives
Workdex RepresentativesWorkdex Representatives
Workdex Representativesybecker
 
Portafolio
PortafolioPortafolio
Portafolioope40
 
何謂低價革命
何謂低價革命何謂低價革命
何謂低價革命guest92151c
 
Alimentacio saludable
Alimentacio saludableAlimentacio saludable
Alimentacio saludablegegantdelrec
 

Destacado (20)

Wintersoflongago
WintersoflongagoWintersoflongago
Wintersoflongago
 
Corazon
CorazonCorazon
Corazon
 
Brochure Support
Brochure SupportBrochure Support
Brochure Support
 
Tim Grupo Creativo
Tim Grupo CreativoTim Grupo Creativo
Tim Grupo Creativo
 
8th pre alg -l10
8th pre alg -l108th pre alg -l10
8th pre alg -l10
 
Avances del programa del 3er Congreso Internacional de Creatividad y Talento:...
Avances del programa del 3er Congreso Internacional de Creatividad y Talento:...Avances del programa del 3er Congreso Internacional de Creatividad y Talento:...
Avances del programa del 3er Congreso Internacional de Creatividad y Talento:...
 
7th math -c2--L9--sept7
7th math -c2--L9--sept77th math -c2--L9--sept7
7th math -c2--L9--sept7
 
Civicorps recycling earned income presentation 9 10 12
Civicorps recycling earned income presentation 9 10 12Civicorps recycling earned income presentation 9 10 12
Civicorps recycling earned income presentation 9 10 12
 
Workshop adobe publishing suite maggio2012 r_et
Workshop adobe publishing suite maggio2012 r_etWorkshop adobe publishing suite maggio2012 r_et
Workshop adobe publishing suite maggio2012 r_et
 
Pto juanma
Pto juanmaPto juanma
Pto juanma
 
Infor
InforInfor
Infor
 
Site Marketing ma senza Keyword
Site Marketing ma senza KeywordSite Marketing ma senza Keyword
Site Marketing ma senza Keyword
 
BEV 2.0: Virtual Town Square
BEV 2.0: Virtual Town SquareBEV 2.0: Virtual Town Square
BEV 2.0: Virtual Town Square
 
Workdex Representatives
Workdex RepresentativesWorkdex Representatives
Workdex Representatives
 
Portafolio
PortafolioPortafolio
Portafolio
 
Copy strategy
Copy strategyCopy strategy
Copy strategy
 
何謂低價革命
何謂低價革命何謂低價革命
何謂低價革命
 
Target group
Target groupTarget group
Target group
 
Xiv jornadas afruc
Xiv jornadas afrucXiv jornadas afruc
Xiv jornadas afruc
 
Alimentacio saludable
Alimentacio saludableAlimentacio saludable
Alimentacio saludable
 

Similar a Sesion 02 clases en_vb_net

Programación_del_lado_del_servidor......
Programación_del_lado_del_servidor......Programación_del_lado_del_servidor......
Programación_del_lado_del_servidor......SaulSalinasNeri
 
Intro classes(1)
Intro classes(1)Intro classes(1)
Intro classes(1)claudiocj7
 
Framework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .netFramework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .netAntonio Palomares Sender
 
Seguridad en access
Seguridad en accessSeguridad en access
Seguridad en accessssuser3a82fb
 
Event Programing & Driven Mediator Pattern
Event Programing & Driven Mediator PatternEvent Programing & Driven Mediator Pattern
Event Programing & Driven Mediator Patternripoblet
 
Intro aplicaciones web con php
Intro aplicaciones web con phpIntro aplicaciones web con php
Intro aplicaciones web con phpFer Nando
 
Java Listeners
Java ListenersJava Listeners
Java ListenersMagikJames
 
Presentacion Patrones De Diseno GoF
Presentacion Patrones De Diseno GoFPresentacion Patrones De Diseno GoF
Presentacion Patrones De Diseno GoFjuansoto86
 
Cache del Contenedor de Symfony
Cache del Contenedor de SymfonyCache del Contenedor de Symfony
Cache del Contenedor de SymfonyManuel Aguirre
 
Nvo objects powerbuilder
Nvo objects powerbuilderNvo objects powerbuilder
Nvo objects powerbuilderLinux
 

Similar a Sesion 02 clases en_vb_net (20)

Clases y objetos
Clases y objetosClases y objetos
Clases y objetos
 
Conceptos basicos POO
Conceptos basicos POOConceptos basicos POO
Conceptos basicos POO
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Programación_del_lado_del_servidor......
Programación_del_lado_del_servidor......Programación_del_lado_del_servidor......
Programación_del_lado_del_servidor......
 
Intro classes(1)
Intro classes(1)Intro classes(1)
Intro classes(1)
 
Framework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .netFramework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .net
 
Seguridad en access
Seguridad en accessSeguridad en access
Seguridad en access
 
Clase numero 6
Clase numero 6Clase numero 6
Clase numero 6
 
Event Programing & Driven Mediator Pattern
Event Programing & Driven Mediator PatternEvent Programing & Driven Mediator Pattern
Event Programing & Driven Mediator Pattern
 
Intro aplicaciones web con php
Intro aplicaciones web con phpIntro aplicaciones web con php
Intro aplicaciones web con php
 
Java Listeners
Java ListenersJava Listeners
Java Listeners
 
Custom Renders Xamarin.Forms
Custom Renders Xamarin.FormsCustom Renders Xamarin.Forms
Custom Renders Xamarin.Forms
 
Introduccion a Doctrine 2 ORM
Introduccion a Doctrine 2 ORMIntroduccion a Doctrine 2 ORM
Introduccion a Doctrine 2 ORM
 
Presentacion Patrones De Diseno GoF
Presentacion Patrones De Diseno GoFPresentacion Patrones De Diseno GoF
Presentacion Patrones De Diseno GoF
 
Cache del Contenedor de Symfony
Cache del Contenedor de SymfonyCache del Contenedor de Symfony
Cache del Contenedor de Symfony
 
Nvo objects powerbuilder
Nvo objects powerbuilderNvo objects powerbuilder
Nvo objects powerbuilder
 
Jade1 agentes
Jade1 agentesJade1 agentes
Jade1 agentes
 
manual de C#
manual de C#manual de C#
manual de C#
 
Manual c# 2
Manual c# 2Manual c# 2
Manual c# 2
 
Manual de c#
Manual de c#Manual de c#
Manual de c#
 

Último

NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfMARIAPAULAMAHECHAMOR
 

Último (20)

NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdf
 

Sesion 02 clases en_vb_net

  • 2. Objeto Un objeto es una agrupación de código, compuesta de propiedades y métodos, que pueden ser manipulados como una entidad independiente. Propiedad: Las propiedades definen los datos o información del objeto, permitiendo consultar o modificar su estado. Métodos: Son las rutinas que definen su comportamiento.
  • 3. Clases Es el conjunto de especificaciones o normas que definen cómo va a ser creado un objeto de un tipo determinado. Instancia de un objeto: El proceso por el cuál se obtiene un objeto a partir de las especificaciones de una clase se conoce como instanciación de objetos.
  • 4. Características básicas de un sistema orientado a objetos Abstracción: Es aquella característica que nos permite identificar un objeto a través de sus aspectos conceptuales. Ejm. 1. Dos objetos automóvil, uno deportivo y otro familiar; su aspecto exterior es muy diferente, sin embargo, cuando pensamos en cualquiera de ellos, sabemos que ambos pertenecen a la clase automóvil, porque realizamos una abstracción o identificación mental de los elementos comunes que ambos tienen (ruedas, volante, motor, puertas, etc.)
  • 5. Características básicas de un sistema orientado a objetos Ejm. 2. Cuando abordamos el desarrollo de un programa de gestión orientado a objetos, realizamos una abstracción de los objetos que necesitaríamos para resolver los procesos del programa: Un objeto Empleado, para gestionar al personal de la empresa; un objeto Factura, para gestionar las ventas realizadas de productos; un objeto Usuario, para verificar las personas que utilizan la aplicación.
  • 6. Características básicas de un sistema orientado a objetos Encapsulación: Establece la separación entre la interfaz del objeto y su implementación, aportándonos dos ventajas fundamentales.  Proporciona seguridad al código de la clase, evitando accesos y modificaciones no deseadas.  Simplifica la utilización de los objetos, ya que un programador que use un objeto, si este está bien diseñado y su código correctamente escrito, no necesitará conocer los detalles de su implementación, se limitará a utilizarlo.
  • 7. Características básicas de un sistema orientado a objetos Encapsulación: Ejm. 1. Cuando nosotros utilizamos un objeto automóvil, al presionar el acelerador, no necesitamos conocer la mecánica interna que hace moverse al coche, sabemos que el método Acelerar del automóvil es lo que tenemos que utilizar para desplazarnos, y simplemente lo usamos.
  • 8. Características básicas de un sistema orientado a objetos Encapsulación: Ejm. 2. Si estamos creando un programa de gestión y nos proporcionan un objeto Cliente que tiene el método Agregar, y sirve para añadir nuevos clientes a la b/d, no precisamos conocer el código que contiene dicho método, simplemente lo ejecutamos y Añadimos a los clientes en nuestra aplicación.
  • 9. Características básicas de un sistema orientado a objetos Polimorfismo: Determina que el mismo nombre de método, realizará diferentes acciones según el objeto sobre el que sea aplicado. Ejm. 1. Tomamos dos objetos: Pelota y VasoCristal; si ejecutamos sobre ambos el método Tirar, el resultado en ambos caso será muy diferente; mientras que el objeto Pelota rebotará al llegar al suelo, el objeto VasoVidrio se romperá.
  • 10. Características básicas de un sistema orientado a objetos Polimorfismo: Ejm. 2. Supongamos que disponemos de los objetos Ventana y Archivo; si ejecutamos sobre ambos el método Abrir, el resultado en Ventana será la visualización de una ventana en el monitor del usuario; mientras que en el objeto Archivo, se tomará un archivo en el equipo del usuario y se dejará listo para realizar sobre él operaciones de lectura o escritura.
  • 11. Características básicas de un sistema orientado a objetos Herencia: Establece que partiendo de una clase a la que denominamos clase base, padre o superclase; creamos una nueva clase denominada clase derivada, hija o subclase. En esta clase derivada dispondremos de todo el código de la clase base, más el nuevo código de la clase hija, que escribamos para extender sus funcionalidades.
  • 12. Características básicas de un sistema orientado a objetos Herencia: Ejm. 1. Podemos usar la clase Automóvil como clase base; en ella reconocemos una serie de propiedades como Motor, Ruedas, Volante, etc. Y unos métodos como Arrancar, Acelerar, Frenar, etc. Como clase derivada creamos AutoDeportivo, en la cual, además de todas las características mencionadas para la clase Automóvil, encontramos propiedades y comportamientos específicos como Turbo.
  • 13. Definir una clase Para definir una clase de emplea, la palabra clave Class. Public Class cCliente „ Miembros de clase End Class Una clase puede contener cualquiera de estos elementos (miembros): Enumeraciones Campos Métodos (funciones o procedimientos) Propiedades Eventos
  • 14. Atributos Los Atributos de clase se representan mediante Campos o Propiedades. Los campos se implementan mediante variables públicas que se pueden leer y establecer directamente desde el exterior de la clase. Public Nombre As String Las Propiedades se recuperan y establecen como los Campos.
  • 15. Atributos Las Propiedades se implementan mediante procedimientos Property Get y Property Set. Private strNombre AS String Property Nombre() As String Get Return strNombre End Get Set (ByVal Value As String) strNombre=Value End Set End Property El procedimiento Get devuelve el valor, mientras que Procedimiento Set le asigna el valor a la Propiedad.
  • 16. Métodos Se implementan mediante procedimientos o subrutinas (Sub) y funciones (Function) declarados dentro de una clase Function Saludo() As String If Nombre<>”” Then Return “Hola “ & Nombre Else Return “Hola Mundo” End If End Function
  • 17. Constructores y Destructores Son métodos especiales que se emplean para la inicialización del objeto durante su construcción, y la limpieza del mismo durante su destrucción. El Constructor se define con el procedimiento New. Sub New (Nombre As String) strNombre=Nombre End Sub El Destructor mediante el procedimiento Finalize. Overrides Protected Sub Finalize()
  • 18. Creación y Destrucción de Objetos Para crear un objeto se usa la cláusula New Private mCliente AS cCliente mCliente = New cCliente() También se puede realizar ambas operaciones Private mCliente As New cCliente() otra forma Private mCliente As cCliente=New cCliente() Si el constructor admite parámetros mCliente=New cCliente(“Luz”,18) No se puede Destruir, pero si invocar el método Dispose. mCliente.Dispose()
  • 19. Eventos Se utilizan para notificar a los objetos sobre la ocurrencia de alguna situación especial. Se agregan a la clase con la instrucción Events. Event MiEvento(ByVal Sender As _ System.Object, ByVal NumEvento As Integer) Para conseguir que se produzca el evento, se debe utilizar RaiseEvent. RaiseEvent MiEvento(Me, NumEvento)
  • 20. Eventos Para consumir un evento se necesita asociar de manera explicita el evento a un método (procedimiento) controlador de evento (event handler) para lo cual se utiliza la clausula Handles en combinación con Withevents. Friend WithEvents Button1 As System.Windows.Forms.Button Protect Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click End Sub
  • 21. Eventos También se puede asociar un evento a un método controlador de evento con la instrucción AddHandler que permite que un evento pueda asignarse a cualquier número de controladores de eventos. AddHandler MyObject.Event1, AddressOf Me.MyEventHandler Los métodos que controlan determinados eventos pueden modificarse de manera dinámica, si se utiliza en conjunto con la instrucción RemoveHandler, que remueve la asociación entre un evento y su controlador. RemoveHandler MyObject.Event1, AddressOf Me.MyEventHandler
  • 22. CREACIÓN DE UNA CLASE Ejecutar Microsoft Visual Studio y crear un nuevo Proyecto. Diseñe el siguiente Formulario. txtIdentificador btnDatos
  • 23. CREACIÓN DE UNA CLASE  Seleccione el la opción Proyecto del menú principal lo siguiente: Seleccionar Clase Ingresar el nombre de la clase: Empleado.vb Agregar la clase
  • 24. Se mostrara lo siguiente:
  • 25. Creación de campos para la clase Un campo de una clase no es otra cosa que una variable, generalmente con ámbito público, accesible desde el exterior de la clase. El siguiente código muestra la creación de un campo para la clase Empleado.
  • 26. Creación de campos para la clase Para manipular un campo desde código cliente, debemos instanciar un objeto, a continuación de la variable que lo contiene situar un punto ( . ), y finalmente el nombre del campo a manipular.
  • 27. Creación de propiedades para la clase Una propiedad en la clase se define, por norma general, mediante dos elementos: una variable de propiedad y un procedimiento de propiedad.
  • 28. Creación de propiedades para la clase La variable de propiedad, tal y como su nombre indica, es una variable con ámbito privado a nivel de la clase, que se encarga de guardar el valor de la propiedad.
  • 29. Creación de propiedades para la clase El procedimiento de propiedad (Property), es el encargado de actuar de puente entre el código cliente y la variable de propiedad, realizando las operaciones de acceso y asignación de valores a dicha variable.
  • 30. Creación de propiedades para la clase Para crear una propiedad en nuestra clase, declararemos en primer lugar una variable Private, y en segundo lugar un procedimiento de tipo Property, que consta de dos bloques: Get, para devolver el valor de la variable de propiedad. Set, para asignárselo.
  • 31.
  • 32. VENTAJAS EN EL USO DE PROPIEDADES
  • 33. Encapsulación a través de propiedades Establece que el código de una clase debe permanecer, siempre que sea posible, protegido de modificaciones no controladas del exterior (código cliente). Nuestra clase debe actuar como una especie de caja negra, que expone una interfaz para su uso, pero no debe permitir el acceso a la implementación de dicha interfaz.
  • 34. Encapsulación a través de propiedades Supongamos que en nuestra clase Empleado necesitamos crear un elemento para guardar el sueldo pagado, pero el importe del sueldo deberá estar entre un rango de valores en función de la categoría del empleado. Categoría Sueldo 1 0650 - 2000 2 2001 - 5000 3 5001 - 10000 4 > 10000
  • 35. Si abordamos este problema utilizando campos de clase, puede ocurrir lo que mostramos a continuación.
  • 36.
  • 37.
  • 38. ¿Qué esta sucediendo? Hemos creado un objeto Empleado al que le hemos dado Categoría 1, sin embargo le estamos asignando un sueldo que no corresponde a su categoría, pero se nos permite hacerlo sin ningún problema, ya que no existe un medio de control que nos lo impida. Afrontando el problema mediante el uso de propiedades, contamos con la ventaja de escribir código de validación en los correspondientes procedimientos Property, con ello encapsulamos el código de la clase, manteniendo a salvo las asignaciones incoherentes.
  • 39.
  • 40. Propiedades de sólo lectura o sólo escritura Se nos plantea un nuevo caso para nuestra clase Empleado, debemos guardar el valor del código de cuenta bancaria del empleado en el objeto, pero sin permitir que dicha información sea accesible desde el código cliente. Igualmente y en función de los primeros dígitos de la cuenta bancaria, necesitamos mostrar el nombre de la entidad, pero sin permitir al código cliente su modificación, ya que esta va a ser siempre una operación que debe calcular el código de la clase.
  • 41.
  • 42. Utilizando campos de clase no es posible resolver esta situación, ya que al ser de ámbito público, permiten tanto la escritura como lectura de sus valores. Pero si empleamos propiedades, estas nos permiten la creación de las denominadas propiedades de sólo lectura o sólo escritura, en las que utilizando las palabras clave ReadOnly y WriteOnly, conseguimos que a una determinada propiedad, sólo podamos asignarle o recuperar su valor.
  • 43. Debido a esto, en una propiedad ReadOnly no podremos escribir el bloque Set, ya que no tendría sentido, puesto que no se va a utilizar. Lo mismo podemos aplicar para una propiedad WriteOnly, sólo que en esta, el bloque que no podremos codificar será Get.