You are on page 1of 3

Clases y Objetos

Page 1 of 3

CLASES Y OBJETOS
Qu es un Objeto? Qu es una clase? Ejemplos con NET - Creacin de un clase bsica - Property

Volver a pgina principal


Al ser el primero, en este artculo, repasar brevemente la base de la programacin orientada a objetos utilizando ejemplos basados en el lenguaje de Microsoft, VB.NET. Qu

es un objeto?

Un objeto es la instancia de una clase, en otras palabras: una clase es una plantilla en la que se basan los objetos. No est claro, no? pues pongamos un ejemplo. Dios, un gran programador, decidi un da crear a los gatos. Primero cre una plantilla con las caractersticas de estos, como por ejemplo que tendran 4 patas, cola, orejas puntiagudas... y un gran etc. de diferentes particularidades de estos felinos. Pues bien, una vez creada esa plantilla nica con todas las propiedades de los gatos se podra decir que Dios haba creado la primera clase y a la vez, una instancia a esta podra crear el animal (objeto) gato. A estas alturas ya tenemos unos cuantos clones de gatos sobre la tierra, ya que la instancia a esa clase slo nos dar gatos con propiedades idnticas. Qu pasa entonces con las caractersticas de cada gato? No es posible crear gatos (objetos) utilizando una clase pero con propiedades propias de cada objeto? No existe la mutacin en el mundo de la programacin orientada a objetos? ;-). La respuesta es afirmativa pero este tema lo dejaremos de lado hasta que veamos la herencia. Con lo que he explicado hasta ahora se podra confundir un objeto con un tipo de datos de los lenguajes procedurales tradicionales pero aqu es donde encontramos la diferencia entre la programacin orientada a objetos y los lenguajes . Los objetos tambin pueden contener mtodos o procedimentos a la vez que las estructuras de datos agrupndolo todo y no separado y sin relacin como los lenguajes procedurales. De esta forma se facilita al programador la creacin de mdulos ordenados y de fcil reutilizacin. As pues, los anteriores gatos ya no slo guardan informacin de sus propiedades o caractersticas sino tambin de las funciones (mtodos) que son capaces de realizar como por ejemplo "saltar" o "correr". Despus de esta pequea introduccin a los objetos veamos pues la definicin y como crear este tipo de plantillas o clases.

Clase
Una clase es un programa que para ser ejecutado necesita ser invocado mediante la creacin de una variable del mismo tipo que la clase; Las clases a diferencia de otros controles de Windows no tienen una interfaz visible y slo son accesibles sus propiedades o mtodos al crear una instancia de esta. En resumen: en una clase combinaremos los datos que pueden manipular o contener y sus funciones o mtodos para acceder o modificar esos datos. Para dar una idea de la importancia de las clases en NET framework podemos decir que prcticamente todo el entorno es una clase u objeto que deriva de system.object. Por ejemplo, cuando declaramos una variable Integer lo que hacemos realmente es invocar a la clase System.Integer con todas sus propiedades y mtodos. Una vez dicho esto, que mejor que ver unos ejemplos

Ejemplos
En este primer ejemplo veremos como crear y utilizar una clase bsica sin utilizar ningn constructor ni ningn otro mtodo no explicado anteriormente. Segn avancemos en los temas recuperaremos el mismo ejemplo para mejorarlo o ampliarlo utilizando las diferentes caractersticas de la programacin orientada a objetos, en adelante OOP (Object Oriented Programming).

file://C:\Documents and Settings\Administrador\Escritorio\Clases y Objetos.htm

07/05/2013

Clases y Objetos

Page 2 of 3

Primero crearemos un proyecto nuevo "Windows application" en el se nos mostrar el tpico formulario en blanco.Luego aadiremos una clase con el nombre "gato". Dentro de la clase gato encontraremos el siguiente cdigo: Public Class Gato End Class Luego definiremos las variables y mtodos: El gato que definiremos tendr como propiedades hambre, una dieta y su peso. Estas propiedades han de ser visibles desde el programa que le haga referencia por eso declararemos las variables, en este caso las propiedades del gato, como pblicas. Crearemos un mtodo : Comer : Incrementa el peso sumndole la dieta y modifica la propiedad hambre a falso. Como podemos apreciar en NET se ha reemplazado (contador = contardor + X utilizado en VB por el equivalente contador += X) Igualmente se puede aplicar al resto de operadores, como la resta ( -=) multiplicacin (*=), divisin (/=), divisin entera ( \=) y concatenacin (&=) Public hambre As Boolean, Dieta As Integer Private tpeso As Integer Public Sub comer() Me.peso += Me.Dieta Me.hambre = False End Sub

End Class Ahora en el formulario para probar la clase Gato Inherits System.Windows.Forms.Form Dim gato1 As New Gato() End Class Aqu podemos comprobar que realmente todo en NET se basa en clases ya que el mismo formulario se declara automticamente como clase heredando de System. El siguiente cdigo lo podemos poner dentro de un botn o en el evento Form1_Load. Al poner la palabra gato1. veremos como el IDE muestra los miembros de la clase entre ellos Comer, Hambre o Dieta. As pues, ya los podemos modificar : gato1.peso = 20000 gato1.hambre = True gato1.Dieta = 100

Property

Por ahora hemos accedido directamente a las propiedades de la clase pudiendo asignar cualquier valor siempre y cuando sean los datos correctos dependiendo de su tipo. Pero, qu ocurre si queremos controlar las propiedades de la clase? Ahora mismo, si damos a entender que el peso del gato est gramos, podramos conseguir rpidamente un Record Guinness asignndole a la propiedad un valor de 200.000 gramos. :) Para controlar las propiedades de una clase utilizaremos los procedimientos Property Una propiedad puede ser de lectura, escritura o lectura y escritura. Los descriptores para acceder a los datos de estas son Get y Set para la lectura y escritura, respectivamente, de las propiedades . De esta forma podemos agregar cdigo para la validacin de los datos, permitiendo rangos definidos o modificando la entrada de datos con clculos internos de la misma propiedad. Dicho esto aadiremos el siguiente cdigo a la clase Gato : Property Peso() Get Return tpeso

file://C:\Documents and Settings\Administrador\Escritorio\Clases y Objetos.htm

07/05/2013

Clases y Objetos

Page 3 of 3

End Get Set(ByVal Value) If Value > 100 And Value < 10000 Then tpeso = Value End If End Set End Property Al ejecutar ahora el programa, veremos que despus de intentar modificar la propiedad asignndole el valor 20000, peso, sigue conteniendo el valor 0 ya que slo permite valores dentro del rango (100-10000). El proceso de validacin, en este caso, no advierte al usuario de su error por lo que dar lugar a una perdida de datos ajena al usuario. Para evitar esto, podemos crear una excepcin o simplemente utilizar un MsgBox. Set(ByVal Value) If Value > 100 And Value < 10000 Then tpeso = Value Else MsgBox("El peso no es correcto") End If End Set

Volver a Ttulo ndice principal Timeless web site

Este sitio se actualiz por ltima vez el 27 de diciembre de 2004

file://C:\Documents and Settings\Administrador\Escritorio\Clases y Objetos.htm

07/05/2013

You might also like