Está en la página 1de 9

Laboratorio 8

Programacin Orientada a Objetos


Nombres y Apellidos:
Objetivos:
Conocer las definiciones de la POO
Definir e implementar clases
Dominar el uso de propiedades y mtodos

Informacin Bsica
Conceptos fundamentales
La programacin orientada a objetos es una nueva forma de programar que trata
de encontrar una solucin a estos problemas. Introduce nuevos conceptos, que
superan y amplan conceptos antiguos ya conocidos. Entre ellos destacan los
siguientes:

Clase: definiciones de las propiedades y comportamiento de un tipo de objeto


concreto. La instanciacin es la lectura de estas definiciones y la creacin de un
objeto a partir de ellas, (de c a d), Es la facilidad mediante la cual la clase D ha
definido en ella cada uno de los atributos y operaciones de C, como si esos
atributos y operaciones hubiesen sido definidos por la misma D.

Objeto: entidad provista de un conjunto de propiedades o atributos (datos) y de


comportamiento o funcionalidad (mtodos). Se corresponde con los objetos
reales del mundo que nos rodea, o a objetos internos del sistema (del programa).
Es una instancia a una clase.

Mtodo: algoritmo asociado a un objeto (o a una clase de objetos), cuya


ejecucin se desencadena tras la recepcin de un "mensaje". Desde el punto de
vista del comportamiento, es lo que el objeto puede hacer. Un mtodo puede
producir un cambio en las propiedades del objeto, o la generacin de un
"evento" con un nuevo mensaje para otro objeto del sistema.

Evento: un suceso en el sistema (tal como una interaccin del usuario con la
mquina, o un mensaje enviado por un objeto). El sistema maneja el evento
enviando el mensaje adecuado al objeto pertinente. Tambin se puede definir

como evento, a la reaccin que puede desencadenar un objeto, es decir la accin


que genera.

Mensaje: una comunicacin dirigida a un objeto, que le ordena que ejecute uno
de sus mtodos con ciertos parmetros asociados al evento que lo gener.

Propiedad o atributo: contenedor de un tipo de datos asociados a un objeto (o a


una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se
define como sus caractersticas predeterminadas, y cuyo valor puede ser alterado
por la ejecucin de algn mtodo.

Estado interno: es una variable que se declara privada, que puede ser
nicamente accedida y alterada por un mtodo del objeto, y que se utiliza para
indicar distintas situaciones posibles para el objeto (o clase de objetos). No es
visible al programador que maneja una instancia de la clase.

Componentes de un objeto: atributos, identidad, relaciones y mtodos.

Representacin de un objeto: un objeto se representa por medio de una tabla o


entidad que est compuesta por sus atributos y funciones correspondientes.

En comparacin con un lenguaje imperativo, una "variable", no es ms que un


contenedor interno del atributo del objeto o de un estado interno, as como la
"funcin" es un procedimiento interno del mtodo del objeto.

Caractersticas de la POO [editar]


Hay un cierto desacuerdo sobre exactamente qu caractersticas de un mtodo de
programacin o lenguaje le definen como "orientado a objetos", pero hay un
consenso general en que las caractersticas siguientes son las ms importantes
(para ms informacin, seguir los enlaces respectivos):

Abstraccin: Cada objeto en el sistema sirve como modelo de un "agente"


abstracto que puede realizar trabajo, informar y cambiar su estado, y
"comunicarse" con otros objetos en el sistema sin revelar cmo se implementan
estas caractersticas. Los procesos, las funciones o los mtodos pueden tambin
ser abstrados y cuando lo estn, una variedad de tcnicas son requeridas para
ampliar una abstraccin.

Encapsulamiento: Significa reunir a todos los elementos que pueden


considerarse pertenecientes a una misma entidad, al mismo nivel de abstraccin.
Esto permite aumentar la cohesin de los componentes del sistema. Algunos
autores confunden este concepto con el principio de ocultacin, principalmente
porque se suelen emplear conjuntamente.

Principio de ocultacin: Cada objeto est aislado del exterior, es un mdulo


natural, y cada tipo de objeto expone una interfaz a otros objetos que especifica
cmo pueden interactuar con los objetos de la clase. El aislamiento protege a las
propiedades de un objeto contra su modificacin por quien no tenga derecho a
acceder a ellas, solamente los propios mtodos internos del objeto pueden
acceder a su estado. Esto asegura que otros objetos no pueden cambiar el estado
interno de un objeto de maneras inesperadas, eliminando efectos secundarios e
interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso
directo a los datos internos del objeto de una manera controlada y limitando el
grado de abstraccin. La aplicacin entera se reduce a un agregado o
rompecabezas de objetos.

Polimorfismo: comportamientos diferentes, asociados a objetos distintos,


pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizar el
comportamiento correspondiente al objeto que se est usando. O dicho de otro
modo, las referencias y las colecciones de objetos pueden contener objetos de
diferentes tipos, y la invocacin de un comportamiento en una referencia
producir el comportamiento correcto para el tipo real del objeto referenciado.
Cuando esto ocurre en "tiempo de ejecucin", esta ltima caracterstica se llama
asignacin tarda o asignacin dinmica. Algunos lenguajes proporcionan
medios ms estticos (en "tiempo de compilacin") de polimorfismo, tales como
las plantillas y la sobrecarga de operadores de C++.

Herencia: las clases no estn aisladas, sino que se relacionan entre s, formando
una jerarqua de clasificacin. Los objetos heredan las propiedades y el
comportamiento de todas las clases a las que pertenecen. La herencia organiza y
facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser
definidos y creados como tipos especializados de objetos preexistentes. Estos
pueden compartir (y extender) su comportamiento sin tener que volver a
implementarlo. Esto suele hacerse habitualmente agrupando los objetos en

clases y estas en rboles o enrejados que reflejan un comportamiento comn.


Cuando un objeto hereda de ms de una clase se dice que hay herencia mltiple.
POO EN VB .NET
En primer lugar debemos tener en cuenta que todo en el .NET Framework, y por
ende en Visual Basic .NET, puede ser tratado como un objeto. Por ejemplo el tipo
Integer ahora posee propiedaes y mtodos, tales como MaxValue que regresa el
valor mximo que puede contener:
Dim i as Integer
MsgBox(i.MaxValue)
Con VB.NET observamos que tipos "bsicos" como Integer se tratan de objetos.
Del mismo modo, entidades tales como los formularios y controles son todos
instancias de alguna clase, es decir: objetos. Por ende una de las primeras cosas
que debemos tomar en cuenta es que el modo de tratar a stos tipos a cambiado
con respecto a VB6 y versiones anteriores.

No obstante que todo puede ser tratado como un objeto, existen tipos por valor y por
referencia. Los tipos por valor como Integer no devuelven una referencia sino slo el
valor que contiene, y sus mtodo en lugar de modificar su estado o el valor contenido,
slo devuelven el valor modificado.
Definiendo Clases
Dado que los objetos se crean a partir de clases, son las clases las que tenemos
que disear y construir. Para ellos debemos recordar que las clases se componen
de los siguientes elementos o miembros:

Atributos: Representan la informacin que contiene un objeto (estado).


Mtodos: Representan acciones que un objeto puede realizar.

Adicionalemente las clases puede definir Eventos, que son notificaciones que un
objeto recibe de, o transmite a, otros objetos, cuando se produce un
acontecimiento especfico.

Tambin existen los miembros compartidos de clase, que pueden utilizarse en instancias
de una clase y en variables de objeto declaradas como tipo de la clase. En otras palabras,
no requieren una instancia de clase en especfico para realizar su cometido.
VB5 introdujo el concepto de mdulo de clase en el cual podan definirse clases
simples, una por cada mdulo. Con VB.NET se pueden crear cualquier nmero de
clases en un mismo archivo, no obstante es una buena prctica el definir clases en
archivos separados. Para definir una clase se emplea, como entonces, la palabra
clave Class:
Class CCliente
'TODO: Miembros de clase
End Class

Si se requiere, tambin se pueden crear clases anidadas, es decir, clases dentro de otras
clases. Que resulta til cuando cierto objeto va a ser utilizado al interior de otro y nunca
fuera del mismo.

Atributos
Los atributos de clase se representan mediante Campos o Propiedades. Los
Campos se implementan mediante variables pblicas que se pueden leer y
establecer directamente desde el exterior de la clase.
Public Nombre As String
Mientras que las Propiedades se recuperan y establecen como los Campos, pero se
implementan mediante procedimientos Property Get y Property Set. El acceso a los
atributos mediante procedimientos proporciona un mayor control sobre la forma en
que se establecen o se devuelven los valores de los atributos; esto ayuda a aislar
los datos y permite validar valores antes de ser asignados o recuperados.

Por ello tambin podriamos ver a las Propiedades como mtodos de clase ya que
encajan en la definicin y propsito de los mismos. De hecho en lenguajes como Java
no existen las propiedades y las operaciones de asignacin (Set) y obtencin (Get) del
valor de los atributos se realizan mediante mtodos.

Mtodos
Los mtodos de una clase en VB.NET se implementan mediante procedimientos o
subrutinas (Sub) y funciones (Function) declarados dentro de una clase, de la
misma manera como se realizaba anteriormente. No obstante ahora para devolver
el valor desde una funcin se utiliza la palabra clave Return en lugar del nombre
de la misma, el cual adems se puede utilizar en los diferentes puntos de salida de
la funcin:
Function Hola() As String
If Nombre <> "" Then
Return "Hola " & Nombre
Else
Return "Hola Mundo"
End If
End Function

Constructores y Destructores
Los constructores y destructores son mtodos especiales que como su nombre
indica, se emplean para la inicializacin del objeto durante su construccin, y la
limpieza del mismo durante su destruccin.
En VB5 y VB6 las tareas de inicializacin se implementan en el procedimiento
Initialize. Este procedimiento no permite el paso de parmetro alguno, lo cual
dificulta establecer el estado inicial del objeto durante su creacin. Visual Basic
.NET sin embargo introduce verdaderos constructores que se defininen con el
procedimiento New:
Sub New()
'Cdigo de Inicializacion
End Sub

Esta es la definicin del constructor por omisin, la cual ser agregada por VB si no se
define de manera explcita constructor alguno en una clase.
Dicho procedimiento permite la definicn de parmetros, lo que significa que
pueden crearse constructores parametrizados.
Sub New(Nombre String)
strNombre = Nombre
End Sub

Heredando
La Herencia es una de las caractersticas ms importantes en la POO porque
permite que una clase herede los atributos y mtodos de otra clase, lo que
garantiza la reutilizacin de cdigo.
Con la herencia todas las clases estn clasificadas segn una jerarqua. Cada clase
tiene una clase base o superclase, sto es de jerarqua superior, y puede tener una
o ms clases derivadas o subclases, de inferior jerarqua. Las clases que estn en
la parte inferior de una jerarqua heredan de las clases que estn en la parte
superior de su jerarqua.
La herencia implica que las subclases disponen de todos los miembros pblicos
(mtodos y propiedades) de su superclase. Lo cual permite extender la
funcionalidad de una clase aadiendo sus propios atributos y mtodos o incluso
alterando el comportamiento heredado. De este modo se pueden crear objetos
especializados en base a otros, tal y como se observa en la vida real.

Accesibilidad, mbito y miembros compartidos


Aunque estos temas los veremos en breve con ms detalle, para poder
comprender mejor las caractersticas de los miembros de una clase (o cualquier
tipo que definamos), daremos un pequeo adelanto sobre estas caractersticas que
podemos aplicar a los elementos que definamos.
Accesibilidad y mbito son dos conceptos que estn estrechamente relacionados.
Aunque en la prctica tienen el mismo significado, ya que lo que representan es la
"cobertura" o alcance que tienen los miembros de las clases e incluso de las
mismas clases que definamos.
Si bien cada uno de ellos tienen su propia "semntica", tal como podemos ver a
continuacin:

mbito
Es el alcance que la definicin de un miembro o tipo puede tener. Es decir, cmo
podemos acceder a ese elemento y desde dnde podemos accederlo.
El mbito de un elemento de cdigo est restringido por el "sitio" en el que lo
hemos declarado. Estos sitios pueden ser:

mbito de bloque: Disponible nicamente en el bloque de cdigo en el que


se ha declarado.
mbito de procedimiento: Disponible nicamente dentro del
procedimiento en el que se ha declarado.

mbito de mdulo: Disponible en todo el cdigo del mdulo, la clase o la


estructura donde se ha declarado.
mbito de espacio de nombres: Disponible en todo el cdigo del espacio
de nombres.

PROCEDIMIENTO
1.- Inicie la herramienta Visual Basic .Net tal como lo muestra la siguiente figura

2.- Implemente una aplicacin de nombre prjClass01 con el siguiente contenido para ver el
funcionamiento de las clases

3.- Intente modificar la definicin de la clase anterior de tal manera que la propiedad
nombre sea privada y cree un mtodo para acceder a dicha propiedad y que el valor del
nombre sea ingresado por teclado

4.- Agregue un nuevo modulo al proyecto e implemente el siguiente cdigo que se


muestra a continuacin

5.- Intente modificar dicha aplicacin de tal manera que cumpla con los siguientes
requerimientos

La opciones deben mostrarse en un men


Las opciones son llenar datos de la bicicleta
Acelerar en el cual nos pide la aceleracin de la bicicleta debe ser positivo y
entero
La opcion de frenar preguntara en cuanto quiere disminuir la velocidad si esta
llega a ser menos que cero que muestre un mensaje que diga que el auto esta
detenido y que primero debe acelerar
La opcin de detenerse totalmente
La opcin de ver valores finales de la bicicleta

DATOS DE INVESTIGACION
1.- Accesibilidad
2.- Propiedades en las clases

También podría gustarte