FUNDAMENTOS DE PROGRAMACION ORIENTADA A OBJETOS. FUNDAMENTOS DE LA POO IDENTIFICAR EL PARADIGMA DE LA POO. Metodologa de desarrollo de aplicaciones en la cual stas se organizan como colecciones cooperativas de objetos, cada uno de los cuales representan una instancia de alguna clase, y cuyas clases son miembros de jerarquas de clases unidas mediante relaciones de herencia. (Grady Booch). Cambia. El modo de organizacin del programa: En clases (datos + operaciones sobre datos). El concepto de ejecucin de programa Paso de mensajes. No basta con utilizar un lenguaje OO para programar orientado a objetos. Para eso hay que seguir un paradigma de programacin OO.
DESCRIBIR LOS CONCEPTOS DE OBJETOS Y CLASES (MTODOS Y ATRIBUTOS). OBJETOS Un objeto es una agrupacin de cdigo, compuesta de propiedades y mtodos, que pueden ser manipulados como una entidad independiente. Las propiedades definen los datos o informacin del objeto, permitiendo consultar o modificar su estado; mientras que los mtodos son las rutinas que definen su comportamiento. Un objeto es una pieza que se ocupa de desempear un trabajo concreto dentro de una estructura organizativa de nivel superior, formada por mltiples objetos, cada uno de los cuales ejerce la tarea particular para la que ha sido diseado.
CLASES Una clase no es otra cosa que el conjunto de especificaciones o normas que definen cmo va a ser creado un objeto de un tipo determinado; algo parecido a un manual de instrucciones conteniendo las indicaciones para crear el objeto. Los trminos objeto y clase son utilizados en OOP con gran profusin y en contextos muy similares, por lo que para intentar aclarar en lo posible ambos conceptos, diremos que una clase constituye la representacin abstracta de algo, mientras que un objeto constituye la representacin concreta de lo que una clase define. La clase determina el conjunto de puntos clave que ha de cumplir un objeto para ser considerado perteneciente a dicha clase o categora, ya que no es obligatorio que dos objetos creados a partir de la misma clase sean exactamente iguales, basta con que cumplan las especificaciones clave de la clase. Expongamos ahora las anteriores definiciones mediante un ejemplo preciso: un molde para crear figuras de cermica y las figuras obtenidas a partir del molde. En este caso, el molde representara la clase Figura, y cada una de las figuras creadas a partir del molde, sera un objeto Figura. Cada objeto Figura tendr una serie de propiedades comunes: tamao y peso iguales; y otras propiedades particulares: un color distinto para cada figura. Aunque objetos distintos de una misma clase pueden tener ciertas propiedades diferentes, deben tener el mismo comportamiento o mtodos. Para explicar mejor esta circunstancia, tomemos el ejemplo de la clase Coche; podemos crear dos coches con diferentes caractersticas (color, tamao, potencia, etc.), pero cuando aplicamos sobre ellos los mtodos Arrancar, Acelerar o Frenar, ambos se comportan o responden de la misma manera.
METODO Los mtodos son un conjunto de procedimientos que permiten que un objeto ejecute una accin o tarea sobre s mismo. Se los tiene que representar con el nombre de Sub Ejemplo de un mtodo: Public Sub hola() Procedimientos End Sub
PD:Hola es el nombre del mtodo
y tambin lo puedes poner parmetros
Ejemplo de un mtodo que ejecuta una suma de 2 nmeros lanzando un mensaje:
Public Sub hola(Byval Param1 as Integer, Byval Param2 as Integer) Msgbox(Param1+Param2) End Sub
Tambin lo puedes llamar desde otro mtodo, en este caso sera el mtodo que se carga un formulario cualquiera y le agregas los parmetros
Private Sub Form1_load(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Form1.Load hola(1,2) 'Lo que est entre parntesis son los parmetros en este caso pongo 2 nmeros por qu me dice que agregue enteros End Sub
Pd: si el mtodo tiene parmetros y no los pones te saldr un error o si un mtodo no tiene parmetros solo pon as ()
Ejemplo de un mtodo llamando a otro
Public Sub chao() hola() End Sub
ATRIBUTOS Los atributos se guardan con los metadatos de ensamblados de Visual Basic. Los metadatos son informacin que describe todos los elementos administrados por el motor en tiempo de ejecucin. Esto incluye informacin necesaria para depurar y recolectar elementos no utilizados, as como atributos de seguridad, datos de clculo de referencias, clases extendidas y definiciones de miembros, enlace de versiones y cualquier otra informacin que requiere el motor en tiempo de ejecucin.
Con los atributos, puede especificar los metadatos casi del mismo modo en que utiliza palabras clave como Public y Private para proporcionar informacin sobre niveles de acceso. No obstante, a diferencia de las palabras clave, la mayora de los atributos no son especficos del lenguaje. Mediante los atributos, puede ampliar las capacidades del lenguaje Visual Basic sin necesidad de cambios en el compilador.
Los lenguajes .NET Framework y Visual Basic definen muchos atributos tiles y puede definir sus propios atributos personalizados que sean significativos para su aplicacin. Los atributos personalizados se basan en la clase System. Attribute y utilizan el atributo AttributeUsageAttribute para proporcionar informacin adicional sobre cmo se puede utilizar el atributo.
Funcionalidad y capacidades de los atributos Algunos puntos clave sobre atributos incluyen: Se puede aplicar uno o ms atributos a todos los ensamblados, mdulos o elementos de programa ms pequeos, como las clases y las propiedades. Los atributos pueden aceptar argumentos del mismo modo que los mtodos y las propiedades. El proceso de recuperar metadatos de los atributos se denomina reflexin. La reflexin implica el uso de herramientas que permite a los objetos recuperar y examinar metadatos acerca de sus propios miembros.
CARACTERISTICAS DE LA POO.
ABSTRACCIN La abstraccin es aquella caracterstica que nos permite identificar un objeto a travs de sus aspectos conceptuales. Las propiedades de los objetos de una misma clase, pueden hacerlos tan distintos que sea difcil reconocer que pertenecen a una clase idntica. No obstante, nosotros reconocemos a qu clase pertenecen, identificando adems, si se trata de la misma clase para ambos. Ello es posible gracias a la abstraccin. Tomemos como ejemplo dos objetos coche, 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 Coche, porque realizamos una abstraccin o identificacin mental de los elementos comunes que ambos tienen (ruedas, volante, motor, puertas, etc.). Del mismo modo que hacemos al identificar objetos reales, la abstraccin nos ayuda a la hora de desarrollar una aplicacin, permitindonos identificar los objetos que van a formar parte de nuestro programa, sin necesidad de disponer an de su implementacin; nos basta con reconocer los aspectos conceptuales que cada objeto debe resolver. Por ejemplo, cuando abordamos el desarrollo de un programa de gestin orientado a objetos, realizamos una abstraccin de los objetos que necesitaramos 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 aplicacin, etc.
HERENCIA Se trata de la caracterstica ms importante de la OOP, y 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 cdigo de la clase base, ms el nuevo cdigo propio de la clase hija, que escribamos para extender sus funcionalidades. A su vez podemos tomar una clase derivada, creando una nueva subclase a partir de ella, y as sucesivamente, componiendo lo que se denomina una jerarqua de clases, que explicaremos seguidamente. Existen dos tipos de herencia: simple y mltiple. La herencia simple es aquella en la que creamos una clase derivada a partir de una sola clase base, mientras que la herencia mltiple nos permite crear una clase derivada a partir de varias clases base. El entorno de .NET Framework slo permite utilizar herencia simple. Como ejemplo real de herencia, podemos usar la clase Coche como clase base; en ella reconocemos una serie de propiedades como Motor, Ruedas, Volante, etc., y unos mtodos como Arrancar, Acelerar, Frenar, etc. Como clase derivada creamos Coche Deportivo, en la cual, adems de todas las caractersticas mencionadas para la clase Coche, encontramos propiedades y comportamiento especficos como ABS, Turbo, etc. Un ejemplo basado en programacin consistira en disponer de la ya conocida clase Empleado. Esta clase se ocupa, como ya sabemos, de las operaciones de alta de empleados, pago de nminas, etc.; pero en un momento dado, surge la necesidad de realizar pagos a empleados que no trabajan en la central de la empresa, ya que se trata de comerciales que pasan la mayor parte del tiempo desplazndose. Para realizar dichos pagos usaremos Internet, necesitando el nmero de tarjeta de crdito y la direccin email del empleado. Resolveremos esta situacin creando la clase derivada Ciber Empleado, que hereda de la clase Empleado, en la que slo tendramos que aadir las nuevas propiedades y mtodos para las transacciones electrnicas, puesto que las operaciones tradicionales ya las tendramos disponibles por el mero hecho de haber heredado de Empleado.
ENCAPSULACIN La encapsulacin establece la separacin entre el interfaz del objeto y su implementacin, aportndonos dos ventajas fundamentales. Por una parte proporciona seguridad al cdigo de la clase, evitando accesos y modificaciones no deseadas; una clase bien encapsulada no debe permitir la modificacin directa de una variable, ni ejecutar mtodos que sean de uso interno para la clase. Por otro lado la encapsulacin simplifica la utilizacin de los objetos, ya que un programador que use un objeto, si este est bien diseado y su cdigo correctamente escrito, no necesitar conocer los detalles de su implementacin, se limitar a utilizarlo. Tomando un ejemplo real, cuando nosotros utilizamos un objeto Coche, al presionar el acelerador, no necesitamos conocer la mecnica interna que hace moverse al coche, sabemos que el mtodo Acelerar del coche es lo que tenemos que utilizar para desplazarnos, y simplemente lo usamos. Pasando a un ejemplo en programacin, si estamos creando un programa de gestin y nos proporcionan un objeto Cliente que tiene el mtodo Alta, y sirve para aadir nuevos clientes a la base de datos, no precisamos conocer el cdigo que contiene dicho mtodo, simplemente lo ejecutamos y damos de alta a los clientes en nuestra aplicacin. POLIMORFISMO El polimorfismo determina que el mismo nombre de mtodo, realizar diferentes acciones segn el objeto sobre el que sea aplicado. Al igual que suceda en la encapsulacin, el programador que haga uso del objeto, no necesita conocer los detalles de implementacin de los mtodos, se limita a utilizarlos. Pasando a un ejemplo real, tomamos dos objetos: Pelota y Vaso Cristal; si ejecutamos sobre ambos el mtodo Tirar, el resultado en ambos casos ser muy diferente; mientras que el objeto Pelota rebotar al llegar al suelo, el objeto Vaso Cristal se romper. En un ejemplo aplicado a la programacin, supongamos que disponemos de los objetos Ventana y Fichero; si ejecutamos sobre ambos el mtodo Abrir, el resultado en Ventana ser la visualizacin de una ventana en el monitor del usuario; mientras que en el objeto Fichero, se tomar un fichero en el equipo del usuario y se dejar listo para realizar sobre l operaciones de lectura o escritura.