VB-MUNDO 2.0 - Programacion Visual


/
Inicio   |  Quienes Somos  | Contactenos 



 
Web Foro Portal
 

 20 Ultimos Tutoriales (1015)

Introduccion Rapida a LinQ

Base de Datos en Delphi 7

Java 3D

Algoritmos en Borland C++

Programacion en PHP

Pseudo Codigo

Patron de Distribucion de Aspectos

Ordenamiento de Burbuja

Introduccion Expresiones Regulares

Descomposición LU y método de Gauss-Seidel

Algoritmos Propuestos

Windows Vista - Internet

Windows Vista - Impresion

Manual Completo Crystal Reports 11 - XI

Programación en BASH Shell

Apache - Configuracion

SCORM RunTime Environment

Tablas Basicas por Modulos de SAP

Manual de SAPSCRIPT

Manual de Instalación de MINISAP


ver Todos...


 Enlaces Premium





Links Relacionados
 elguille
 BuscoAfiliados
 SoloTuWeb
 ElQuintero
 DotNetSolidario

Patrocinados por...



 

Orientado a Objetos (Teoria)

Orientado a Objetos

Hace unos 10 años atrás o quizás menos tiempo. La programación Orientada a Objetos no era mas que una simple elección del Programador. Una rama extraña y misteriosa de la Programación.

Uno como Programador elegia lenguajes Estructurados como COBOL o Lineales como Basic, Clipper o FoxPro. Luego apareció en escena el lenguaje “C” toda una revolución debido a su rapidez de ejecución y su bajo nivel (Prácticamente no existía ningún aspecto del Hardware que no puediera manejarse con este lenguaje).

El paradigma de hoy nos empuja a tener que desarrollar si o si pensando en objetos.

De todos modos viejos lenguajes como COBOL están aun vigentes por su robustez y por su fiabilidad.

.NET es 100 % Orientado a Objetos, por la cual para comprender su estructura no nos queda otro remedio que empaparnos con terminología y conceptos que son fundamentales para poder seguir actualizados en este camino que hemos escogido.

El objetivo de esta nota es poder llevar al Programador Medio o Principiante a comprender conceptos que conforman la programación Orientada a Objetos.

Estos conceptos son :

• Clases
• Objetos
• Propiedades
• Métodos
• Eventos
• Herencia
• Abstracción
• Polimorfismo
• Encapsulamiento


Trataré de explicar cada uno de estos conceptos de la manera más comprensible y didáctica posible.

Clases y Objetos

Estos 2 conceptos deben explicarse juntos para que sean mejor comprendidos.
Si tuviera que rápidamente definir con un ejemplo cual es la diferencia entre una Clase y un Objeto, se me ocurre la misma diferencia entre una RECETA y una COMIDA.

Nuestra Clase, no es mas que una RECETA, que carece de sentido y funcionalidad hasta que creamos un Objeto (COMIDA).
Esta Clase (RECETA) nos dice de que propiedades, y características estará conformado nuestro Objeto.

Ejemplo….

Dim MiComida as NEW Paella

Aquí estamos creando un Objeto llamado MiComida y será de tipo PAELLA.
PAELLA es una clase que contiene todas las Propiedades necesarias (RECETA) que indica como debe ser creado nuestro objeto.
Coincidirán conmigo que una RECETA no es absolutamente nada hasta que se convierte en algo tangible como es una COMIDA.

Entonces..

Un Objeto gracias al código contenido en la clase.. va a tener Propiedades y Métodos.
Un Objeto no es mas que una Instancia en memoria de una Clase… es por eso que al igual que en un Restaurante un cocinero puede crear una Paella (OBJETO) muchísimas veces tomando de referencia la Receta (CLASE), en memoria, pueden existir innumerables Objetos creados por la misma Clase.
Cada Objeto creado en memoria, será pasible de cambios en sus propiedades por parte de la aplicación y cada unos será absolutamente independiente del otro.

Por Ejemplo…

Si tuviera una Clase PERRO y dotara a mi Clase de la Propiedad ColordePelo. Podría escribir el siguiente código.
 
Dim Perro1 as New Perro, Perro2 as New Perro

Perro1.ColordePelo=”Blanco”
Perro2.ColordePelo=”Marron”


En este Ejemplo he creado 2 PERROS, uno llamado Perro1 y otro Perro2. Y le modifiqué la propiedad ColordePelo a Perro1 y a Perro2, pero cada uno de ellos es totalmente independiente y ahora tengo 2 Objetos que fueron creados Exactamente Iguales en su origen, pero que ahora tienen características diferentes.
No vamos a ahondar en esta Nota acerca de cómo dotar a una clase de propiedades, ni a extendernos mucho en el Código, ya que estos conceptos no son propios de un lenguaje determinado sino de decenas de lenguajes.

Otra Última comparación entre Clases y Objetos que se me ocurre, es la que existe entre un Plano y una Casa.

El PLANO es la CLASE que contiene todas las propiedades y características que tendrá que contener mi OBJETO (CASA) coincidirán nuevamente conmigo de que un simple Plano no es mas que una IDEA que tomará forma cuando se lleve a cabo creando nuestro Objeto CASA.
 
PROPIEDADES

Como ya hemos visto en nuestra explicación anterior un OBJETO contiene (entre otras cosas que luego explicaremos) Propiedades.
Volviendo a nuestro ejemplo, de nuestro Objeto PERRO, podríamos con solo pensarlo definir un conjunto de Propiedades que debería contener nuestro Objeto.
Por Ejemplo :

ColordePelo de tipo String
Raza    de tipo String
Edad de tipo Integer
EsAgresivo de tipo Boolean

Por supuesto a Uds. Se le ocurrirán otras Propiedades, y caracteristicas.
Si pensamos en Programación Visual, Un Formulario no es mas que un Objeto que fue creado tomando como base una Clase que contiene todas las Propiedades que debe contener dicho Objeto.

Por Ejemplo :

Caption , Font, Width, Height, Picture, ControlBox, etc, etc.

Una Propiedad puede ser de Solo Lectura (ReadOnly) o con permisos de Lectura/Escritura.
Esto significa que existen propiedades a las cuales NO Podremos asignarle valores, solamente podemos leer su contenido.

MÉTODOS

Ya sabemos que un Objeto no es más que una Instancia de una Clase.
También sabemos que un Objeto contiene una o muchas Propiedades.
Sabemos que nuestro “PERRO” tiene propiedades, pero también es cierto que nuestro PERRO al igual que muchos objetos, es capaz de realizar ACCIONES.
Por Ejemplo….

CORRER
SALTAR
COMER

Esas acciones se denominan Métodos , volviendo al ejemplo del FORMULARIO, un Formulario contiene muchísimas Propiedades tal como hemos señalado, pero también es capaz de ejecutar acciones CLOSE, RESIZE, MOVE, SHOW, etc.
En nuestra Clase PERRO, deberemos programar cada uno de los Métodos que necesitemos que sea capaz de llevar a cabo nuestro Objeto y dichos métodos no son mas que SUBs.

Debemos colocar en cada unos de esos SUBs o Procedimientos, todo el código necesario que se debe ejecutar cuando una aplicación ejecuta por ejemplo…

miPerro.Saltar

Cuando pensemos en Objetos nos daremos cuenta de que el objetivo primario es Imitar a la vida real.. a Objetos reales, que gozan de Propiedades, ejecutan acciones y como veremos a continuación sufren estímulos externos e Internos.
 
EVENTOS

Como acabamos de ver un Objeto es capaz de realizar acciones pero también esta expuesto a estímulos que lo condicionan y nosotros podremos determinar cuales serán los estímulos que a los cuales se les prestará atención.

Esos estímulos se llaman EVENTOS.

El ejemplo mas claro es el del EVENTO CLICK de un BOTON. , el cual dota a nuestro Objeto para que sea SENSIBLE al CLICK del MOUSE ejecutado por algún usuario en un momento indeterminado.

Entonces, podemos hacer que nuestro OBJETO sea sensible a determinados estímulos.
Podríamos crear un OBJETO “SER HUMANO” y volverlo sensible al CALOR, al HAMBRE, al FRIO, etc, etc.

Conclusión :

Un Objeto es una Instancia de una Clase, y puede constar o no, de Propiedades, Métodos y ser sensible de sufrir Eventos.

HERENCIA

La HERENCIA es sin lugar a dudas la característica más Importante que tienen los OBJETOS y nos indica que un OBJETO puede HEREDAR las Propiedades, Métodos y Eventos de otro OBJETO.

Supongamos que creamos una CLASE llamada ANIMALES.
Dotaremos a nuestra Clase ANIMALES de todas las Propiedades inherentes a los ANIMALES y lo haremos de manera tal, que dicha clase nos servirá para referenciar a cualquier Animal.

Pero luego se nos ocurre crear una CLASE llamada PERRO.
Como ya poseemos una CLASE desarrollada de tipo ANIMAL y que contiene innumerables propiedades que me sirven para conformar mi nueva CLASE PERRO, simplemente debo decir mediante código que mi CLASE PERRO, hereda las propiedades de la CLASE ANIMALES, entonces ya no necesito escribir código para muchísimas propiedades y métodos que son comunes a todos los animales.
Viendo un ejemplo en Visual Basic .NET esto seria mas o menos así…
 
Public Class PERRO()

Inherits Animales
 
End Class

Entonces….

Si ya poseo una Clase MUEBLES y deseo crear una Clase SILLA, para que voy a volver a programar la propiedad MATERIAL, o la propiedad MEDIDAS ?, si esas Propiedades son comunes a todos los muebles ?
Esta filosofía nos enseña a programar de lo General a lo Particular.
Y por sobre todas las cosas a Programar lo mas ABSTRACTO posible.
 
ABSTRACCIÓN

La ABSTRACCIÓN es también uno de los Aspectos fundamentales que tenemos que tener en cuenta a la hora de programar Objetos.

Nuestra CLASE ANIMALES debe ser lo suficientemente ABSTRACTA para que podamos utilizarla para la creación de un numero importante de Animales.

En definitiva… NO debe contener características peculiares ni delimitantes.
Si creamos la CLASE ANIMALES e internamente le indicamos que estamos hablando de MAMIFEROS., esa CLASE no nos servirá para crear un PEZ.
Si creamos la CLASE PERSONAS y le decimos que son todos RUBIOS.. esa clase no nos permitirá crear ningún OBJETO que nos sirva para manejar PERSONAS MORENAS.
Si creamos la CLASE MUEBLES y si forzamos nuestra CLASE indicandole que posee 2 puertas… como creamos una SILLA ?
Es muy común caer en este error, y habitualmente cuando debemos contra reloj crear aplicaciones, nos olvidamos de la ABSTRACCION y creamos código que luego no podemos reutilizar en otras aplicaciones debido a su particularidad.
La consigna es la REUTILIDAD de nuestros OBJETOS.. que sean lo suficientes ABSTRACTOS para que puedan amoldarse a nuestros nuevos proyectos y no necesitemos escribir nuevamente tanto código.
LA ABSTRACCIÓN y LA HERENCIA entonces se convierten en amigos INSEPARABLES e FUNDAMENTALES en la Programación ORIENTADA a OBJETOS.
 
POLIMORFISMO

POLIMORFISMO nos da idea de MULTIPLES FORMAS, y es en realidad la necesidad de dotar a nuestra clase de la posibilidad de que sus métodos o propiedades se comporten de manera diferente dependiendo de parámetros.
Existen muchas maneras de generar POLIMORFISMO y la más común (Por ejemplo en .NET) es la Sobrecarga de Procedimientos o Funciones.
Supongamos que necesitamos dar salida a una determinada información y construimos una CLASE que contiene un método DarSalida y dicho método es el encargado de formatear la información necesaria y generar el OUTPUT de la mima.
Pero… a donde saldrá la información ?
Saldrá por la Impresora ?, Se enviará por Email ? Se exportará a un Archivo ?
El usuario deberá manejar 3 métodos diferentes para cada una de estas variantes ?
NO
Debemos programar nuestros métodos para que se adapten a los parámetros externos y se comporten de manera diferente.
Los datos de tipo VARIANT (inexistentes en .NET) son el mejor ejemplo de Polimorfismo, dependiendo del contenido asignado a este tipo de variables, el comportamiento cambiará.
En .NET se permite la sobrecarga de Procedimientos y/o Funciones y se trata de poder crear multiples SUBs con el mismo nombre pero con diferente lista de parámetros.
Por Ejemplo…
 
Public Class Matematicas()
 
Public Function Calculo (ByVal a as integer, Byval b as Integer) as integer
Return a+b
End Function
 
Public Function Calculo(Byval a as decimal) as decimal
Return a/2
End Function
 
Public Function Calculo(ByVal a as decimal, ByVal b as decimal, ByVal c as decimal) as decimal
Return a*b*c
End Function
End Class


Como vemos en este ejemplo tenemos 3 Funciones llamadas Calculo y dependiendo de la cantidad de parámetros y los tipos de datos recibidos se ejecutarán distintas funciones.
Esta es una novedad de Visual Studio .NET y nos permite de manera fácil y práctica arribar al Polimorfismo.

ENCAPSULAMIENTO

  La consigna de ENCAPSULAMIENTO nos orienta programar OBJETOS que solamente hagan pública la información mínima y necesaria que necesita el usuario de ese Objeto.

QUE SE HACE pero NO COMO SE HACE.

De esta manera nuestro código estará seguro previniendo de que el Usuario pueda interferir en procesos internos.

Cuando nosotros le decimos a un Formulario que se cierre … Form1.Close Ese formulario simplemente hace lo que le indicamos.. pero no tenemos acceso al código que se ejecuta en el momento de disparar el método.
La abundancia de Información a veces es contraproducente, se trata de que un Objeto exteriorice solo lo estrictamente necesario.

De esta manera nuestro OBJETO estará mas protegido de errores, y crearemos así una capa adicional entre el NUCLEO del OBJETO y el USUARIO.
 
Es Evidente que para cada uno de estos términos pueden existir miles de Explicaciones diferentes y ejemplos diferentes a los que yo he dado. Esta es simplemente mi visión de las cosas y realmente espero que sirva para muchos.


 

Datos del Autor

 Nombre
     Pablo Gustavo Tilotta
 Ubicación
     Buenos Aires - Argentina


Si quieres conocer más sobre Chiaravel haz clic aquí
Si quieres acceder a nuestros foros haz clic aquí
 

 Explosión de Dinero (El segundo libro de Javier Buckenmeyer)

VISUAL BASIC - GOOGLETESTAD - ASP - ASP.NET - MANEJO DE FECHAS SQL SERVERDescubre el libro que esta cambiando la forma de ver a los sitios web. Descubre como optimizar tu sitio de forma de obtener así gran cantidad de ingresos desde Google AdSense.

Escrito por Javier Buckenmeyer (SEO de VB-MUNDO) y traductor del libro "Secretos de ADSense".

El manual explica todo lo que hay que saber antes de hacer una página Web con AdSense. Mi libro te explica cómo se gana dinero con AdSense desde el principio (No después de horas y horas de trabajo cuando ya es demasiado tarde y hay que empezar de nuevo).

ver detalles...

 Llegó el Software de Google para manejo de Fotografias e Imágenes !!!

Google no descanza y ha lanzado el Software para manejo de imágenes digitales que dará que hablar a la NET. Descarga desde aquí tu copia y comienza a disfrutar de la magia.

 La novedad del 2006

submit, directorio web, direcotiro web, submit websitesSin dudas la novedad fue la creación del directorio Yatzoom.com uno de los directorios web más simples de utilizar y el mas completo (+ de 600 categorias).
Un sitio que promete dar pelea a los principales directorios de la NET.

3 Grandes Webmasters unieron sus fuerzas para crear este directorio y VB-MUNDO no quiere quedar al margen de este hito, por la cual ya hemos incorporado nuestro link en dicho directorio. Se calcula que se subirán aproximadamente mas de 1000 sitios en los primeros días.

Otro aspecto a favor en este sitio es la falta de publicidad, lo cual lo hace mas amigable y cálido para el usuario.

 ir a Directorio web

 Más de 900 Tutoriales

TUTORIALES SQL SERVER - TUTORIALES ASP.NET - TUTORIALES VB.NETSolo escoge el lenguaje o tema que quieras aprender y busca en nuestra colección de más de 630 tutoriales el que se ajuste a tus necesidades. Lograrás así acceder a material académico por excelencia y aumenta tus conocimientos. Poseemos tutoriales de VB.NET, VB 6.00, C++, Delphi, SQL Server, Linux, ASP, ASP.NET y muchas más categorias.

ver sección Tutoriales...

Utilitarios & Herramientas de Software

UTILITARIOS DESCARGA - DOWNLOAD SOFTWARE - SOFTWARE DOWNLOAD FREE - DESCARGAS GRATIS SOFTWAREPoseemos una gran variedad de utilitarios y herramientas de software que complementarán tu trabajo de desarrollador profesional y que sin dudas te ahorrarán tiempo y esfuerzo. Herramientas para manejo de Componentes, Documentadores de tu aplicación, Sistemas de Backup, Editores Hexadecimales, y una gama completa de complementos para Visual Basic 6.00.

ver sección de Utilitarios...


Copyright © 2005-2007 VB-MUNDO. Todos los derechos reservados.
Foro Programacion | Foro Visual Basic | Foro Visual Basic.NET

Mi Foro Espiritual 

Fotografía para packagingaedefabrica muebles de bañodespedidas de soltera en madridcetareasalcoholimetroContadoras de billetescoches segunda manoRajasthan tour packagestarotistas