PresentacióN1

323 views
273 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
323
On SlideShare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

PresentacióN1

  1. 2. <ul><li>Los fundamentos de la programación orientada a objeto </li></ul><ul><li>La organización de una aplicación en OOP se realiza mediante estructuras de código. </li></ul><ul><li>Una estructura de código contiene un conjunto de procedimientos e información que ejecutan una serie de procesos destinados a resolver un grupo de tareas con un denominador común. Una aplicación orientada a objetos tendrá tantas estructuras de código como aspectos del programa sea necesario resolver. </li></ul>
  2. 3. <ul><li>Concepto </li></ul><ul><li>Un objeto es una agrupación de código, compuesta de propiedades y métodos, que pueden ser manipulados como una entidad independiente. Las propiedades definen los datos o información del objeto, permitiendo consultar o modificar su estado; mientras que los métodos son las rutinas que definen su comportamiento. Un objeto es una pieza que se ocupa de desempeñar un trabajo concreto dentro de una estructura organizativa de nivel superior, formada por múltiples objetos, cada uno de los cuales ejerce la tarea particular para la que ha sido diseñado. </li></ul>
  3. 4. <ul><li>Ejemplos </li></ul>
  4. 5. <ul><li>Concepto </li></ul><ul><li>Una clase no es otra cosa que el conjunto de especificaciones o normas que definen cómo va a ser creado un objeto de un tipo determinado; algo parecido a un manual de instrucciones conteniendo las indicaciones para crear el objeto. </li></ul><ul><li>Los términos objeto y clase son utilizados en OOP con gran profusión y en contextos muy similares, por lo que para intentar aclarar en lo posible ambos conceptos, diremos que una clase constituye la representación abstracta de algo, mientras que un objeto constituye la representación concreta de lo que una clase define. </li></ul>
  5. 6. <ul><li>La clase determina el conjunto de puntos clave que ha de cumplir un objeto para ser considerado perteneciente a dicha clase o categoría, 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. </li></ul>
  6. 7. <ul><li>Ejemplos </li></ul><ul><li>'Crear un módulo de Clase (tipo cls) con el Nombre cArchivo </li></ul><ul><li>'Añadir estas propiedades: </li></ul><ul><li>Public Extension As String </li></ul><ul><li>Public Cantidad As Integer </li></ul><ul><li>'Esto ponerlo en el módulo de prueba (en el Sub Main si es un módulo BAS) </li></ul><ul><li>'Colección para guardar elementos de la clase Archivo </li></ul><ul><li>Dim Archivos as New Collection </li></ul><ul><li>'Variable temporal de la clase Archivo </li></ul><ul><li>Dim tArchivo as New cArchivo </li></ul><ul><li>Dim a$, b$ </li></ul><ul><li>Dim k% </li></ul><ul><li>'La rutina de error hará la parte &quot;sucia&quot; del trabajo </li></ul><ul><li>On Local Error Resume Next </li></ul><ul><li>'Leer cada archivo del directorio </li></ul><ul><li>a$ = Dir$(&quot;*.*&quot;) </li></ul><ul><li>Do While Len(a$) </li></ul><ul><li>'Comprobar la extensión </li></ul><ul><li>k% = Instr(a$,&quot;.&quot;) </li></ul><ul><li>b$=&quot;&quot; </li></ul><ul><li>If k% Then b$ = Mid$(a$,k%+1) </li></ul><ul><li>'Comprobar si ya está en la &quot;lista&quot; </li></ul>
  7. 8. <ul><li>Ejemplos </li></ul><ul><li>Set tArchivo = Archivos(b$) </li></ul><ul><li>'Esto es lo mismo que: Set tArchivo = Archivos.Item(b$) </li></ul><ul><li>If Err Then 'No existe, añadirlo </li></ul><ul><li>Err = 0 </li></ul><ul><li>Set tArchivo = Nothing </li></ul><ul><li>tArchivo.Extension = b$ </li></ul><ul><li>tArchivo.Cantidad = 1 </li></ul><ul><li>‘ </li></ul><ul><li>Else 'Ya existe, incrementar la cantidad </li></ul><ul><li>tArchivo.Cantidad = tArchivo.Cantidad + 1 </li></ul><ul><li>End If </li></ul><ul><li>'Añadirlo a la colección </li></ul><ul><li>Archivos.Add tArchivo, tArchivo.Extension </li></ul><ul><li>If Err Then </li></ul><ul><li>'Ya existía, quitarlo y volverlo a añadir </li></ul><ul><li>Archivos.Remove tArchivo.Extension </li></ul><ul><li>Archivos.Add tArchivo, tArchivo.Extension </li></ul><ul><li>Err = 0 </li></ul><ul><li>End If </li></ul><ul><li>a$=Dir$ </li></ul><ul><li>Loop </li></ul><ul><li>'Mostrar los datos </li></ul><ul><li>Print &quot;Extensión&quot;,&quot;Cantidad&quot; </li></ul><ul><li>For Each tArchivo In Archivos </li></ul><ul><li>Print tArchivo.Extension, tArchivo.Cantidad </li></ul><ul><li>Next </li></ul>
  8. 9. <ul><li>Concepto </li></ul><ul><li>Es 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. En la figura vemos al ejemplo del molde y las figuras; en dicha imagen vemos un molde para fabricar figuras rectangulares, donde la clase Figura estaría representada por el molde, y cada uno de los objetos Figura (iguales en forma pero con la propiedad Color distinta), representaría una instancia de la clase. </li></ul>
  9. 10. <ul><li>Ejemplo </li></ul>
  10. 11. <ul><li>Concepto </li></ul><ul><li>Para que la programación de un lenguaje o sistema sea considerado orientado a objeto, debe cumplir las características de los siguientes apartados. </li></ul>
  11. 12. <ul><li>Abstracción </li></ul><ul><li>La abstracción es aquella característica que nos permite identificar un objeto a través de sus aspectos conceptuales. </li></ul><ul><li>Las propiedades de los objetos de una misma clase, pueden hacerlos tan distintos que sea difícil reconocer que pertenecen a una clase idéntica. No obstante, nosotros reconocemos a qué clase pertenecen, identificando además, si se trata de la misma clase para ambos. Ello es posible gracias a la abstracción. </li></ul>
  12. 13. <ul><li>Encapsulación </li></ul><ul><li>La encapsulación establece la separación entre el interfaz del objeto y su implementación, aportándonos dos ventajas fundamentales. </li></ul><ul><li>Por una parte proporciona seguridad al código de la clase, evitando accesos y modificaciones no deseadas; una clase bien encapsulada no debe permitir la modificación directa de una variable, ni ejecutar métodos que sean de uso interno para la clase. </li></ul>
  13. 14. <ul><li>Encapsulación </li></ul><ul><li>Por otro lado la encapsulación 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. </li></ul><ul><li>Tomando un ejemplo real, cuando nosotros utilizamos un objeto Coche, al presionar el acelerador, no necesitamos conocer la mecánica interna que hace moverse al coche, sabemos que el método Acelerar del coche es lo que tenemos que utilizar para desplazarnos, y simplemente lo usamos. </li></ul>
  14. 15. <ul><li>Polimorfismo </li></ul><ul><li>El polimorfismo determina que el mismo nombre de método, realizará diferentes acciones según el objeto sobre el que sea aplicado. Al igual que sucedía en la encapsulación, el programador que haga uso del objeto, no necesita conocer los detalles de implementación de los métodos, se limita a utilizarlos. </li></ul><ul><li>En un ejemplo aplicado a la programación, supongamos que disponemos de los objetos Ventana y Fichero; 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 Fichero, se tomará un fichero en el equipo del usuario y se dejará listo para realizar sobre él operaciones de lectura o escritura. </li></ul>
  15. 16. <ul><li>Herencia </li></ul><ul><li>Se trata de la característica más 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 código de la clase base, más el nuevo código propio de la clase hija, que escribamos para extender sus funcionalidades. </li></ul><ul><li>Existen dos tipos de herencia: simple y múltiple. La herencia simple es aquella en la que creamos una clase derivada a partir de una sola clase base, mientras que la herencia múltiple nos permite crear una clase derivada a partir de varias clases base. El entorno de .NET Framework sólo permite utilizar herencia simple. </li></ul>

×