9 fundamentos de oo

419 views
332 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

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

No notes for slide
  • La forma más sencilla de entender el concepto de clase es si la vemos como una agrupación de objetos con características similares. Por ejemplo, un auto ES UN tipo particular de vehículo motorizado, con lo cual dentro de su comportamiento podemos encontrar “arrancar” y “frenar”, entre otros. Ahora bien, una motocicleta también ES UN vehículo motorizado, y tiene dentro de su comportamiento “arrancar” y “frenar”. El conjunto de atributos también es compartido entre una motocicleta y un automóvil, aunque sus valores no coincidan necesariamente. Por ejemplo, ambos tienen el atributo “cantidad de ruedas”, sólo que el auto tiene 4 y la motocicleta 2.
  • El concepto de identidad se refiere al hecho de que cada objeto es único en el mundo, por más que su conjunto de atributos y sus valores sean exactamente iguales a los de otros objetos. Por ejemplo, dos autos del mismo modelo, color, motor, salidos de la misma línea de producción el mismo día no dejan de ser dos autos diferentes, por más que su conjunto de atributos y sus valores sean iguales. La única posibilidad de que dos objetos sean iguales es que sean el mismo objeto.
  • Otra forma útil de ver una clase es como una plantilla, plano o molde de un conjunto de entidades a partir del cual se crearán luego instancias particulares (los objetos). La interacción de las entidades en el mundo real se produce entre objetos, no entre clases. Las clases no tienen “vida” en el mundo real, los objetos sí. Para poder interactuar con alguna clase deberemos crear una instancia particular de ella, con un conjunto de valores definidos para los atributos. A este proceso se lo conoce como “instanciación de un objeto”.
  • Tanto para los atributos (estado) como para los métodos (comportamiento) de una clase puede configurarse el nivel de visibilidad o acceso que estos tendrán hacia el mundo exterior (otras clases que interactúen con ella). Los cuatro niveles de acceso más comunes que se pueden establecer a nivel de miembro de una clase son: Público: un miembro público puede ser accedido desde cualquier otra clase Privado: un miembro privado solamente puede ser accedido desde la clase en la que está declarado Protegido: un miembro protegido solamente puede ser accedido desde la clase en la que está declarado y desde las clases que hereden de ella (se verá el concepto de herencia más adelante en este curso) Paquete: un miembro de tipo paquete sólo podrá ser accedido desde las clases que estén en el mismo paquete lógico que la clase en la que está definido. En un entorno Microsoft .NET un ejemplo de paquete es una biblioteca .dll o un archivo ejecutable .exe.
  • 9 fundamentos de oo

    1. 1. Módulo I- Introducción a la Programación enla Plataforma .Net con C#
    2. 2. TEMARIOCAPITULO IV.- INTRODUCCIÓN A LAPROGRAMACIÓN ORIENTADA AOBJECTOS  Fundamento de la Programación Orientada a Objectos
    3. 3. INTRODUCCIÓN¿Qué es una clase? ¿COCHE? ¿COCHE? Para el filósofo…  Un artefacto de clasificación humana  Clasificamos según un comportamiento o atributos comunes  Acordamos descripciones y nombres de clases útiles  Creamos vocabulario; nos comunicamos; ¡pensamos! Para el programador orientado a objetos…  Una construcción sintáctica con nombre que describe un comportamiento y atributos comunes  Una estructura de datos que incluye datos y funciones
    4. 4. ¿Qué es una Clase? Una clase es una descripción de un grupo de objetos con:  Propiedades en común (atributos)  Comportamiento similar (operaciones)  La misma forma de relacionarse con otros objetos (relaciones)  Una semántica en común (significan lo mismo) Una clase es una abstracción que:  Enfatiza las características relevantes  Suprime otras características (simplificación) Un objeto es una instancia de una clase
    5. 5. Ejemplo de una Clase Clase: Curso Estado (Atributos)  Nombre  Ubicación  Días Ofrecidos  Horario de Inicio  Horario de Término Comportamiento (Métodos)  Agregar un Alumno  Borrar un Alumno  Entregar un Listado del Curso  Determinar si está Completo
    6. 6. ¿Qué es un objeto? Un objeto es una instancia de una clase Los objetos se caracterizan por:  Identidad: Los objetos se distinguen unos de otros  Comportamiento: Los objetos pueden realizar tareas  Estado: Los objetos contienen información
    7. 7. ¿Qué es un Objeto? Informalmente, un objeto representa una entidad del mundo real Entidades Físicas  (Ej.: Vehículo, Casa, Producto) Entidades Conceptuales  (Ej.: Proceso Químico, Transacción Bancaria) Entidades de Software  (Ej.: Lista Enlazada, Interfaz Gráfica)
    8. 8. Un objeto posee Estado Lo que el objeto sabe El estado de un objeto es una de las posibles condiciones en que el objeto puede existir El estado normalmente cambia en el transcurso del tiempo El estado de un objeto es implementado por un conjunto de propiedades (atributos), además de las conexiones que puede tener con otros objetos
    9. 9. Un objeto posee Comportamiento Lo que el objeto puede hacer El comportamiento de un objeto determina cómo éste actúa y reacciona frente a las peticiones de otros objetos Es modelado por un conjunto de mensajes a los que el objeto puede responder (operaciones que puede realizar) Se implementa mediante métodos
    10. 10. Un objeto posee Identidad Cada objeto tiene una identidad única, incluso si su estado es idéntico al de otro objeto
    11. 11. Objetos y Clases Una clase es una definición abstracta de un objeto  Define la estructura y el comportamiento compartidos por los objetos  Sirve como modelo para la creación de objetos Los objetos pueden ser agrupados en clases
    12. 12. Modificadores de Acceso Permiten definir el nivel de acceso (visibilidad) de los miembros (atributos o métodos) de una clase  Publico: Cualquier clase puede “ver” los miembros públicos de otra clase  Privado: Sólo la clase puede ver sus propios miembros privados Existen otros dos modificadores para propósitos específicos (Paquete, Protegido)
    13. 13. Abstracción La abstracción es ignorancia selectiva  Decidir qué es importante y qué no lo es  Concentrarse en lo importante y depender de ello  Ignorar lo que no es importante y no depender de ello  Usar encapsulación para forzar una abstracción El objetivo de la abstracción es no perderse en vaguedades y crear El objetivo de la abstracción es no perderse en vaguedades y crear un nuevo nivel semántico en el que se pueda ser absolutamente preciso. un nuevo nivel semántico en el que se pueda ser absolutamente preciso. Edsger Dijkstra Edsger Dijkstra
    14. 14. Uso de la encapsulación Combinación de datos y métodos Control de la visibilidad de acceso ¿Por qué se encapsula? Datos de objetos Uso de datos estáticos Uso de métodos estáticos
    15. 15. Combinación de datos ymétodos Combinación de datos y métodos en una sola cápsula La frontera de la cápsula crea un espacio interior y otro exterior Retirar( Retirar( ) ) saldo saldo Ingresar( Ingresar( ) ) ¿CuentaBancaria ? ¿CuentaBancaria ?
    16. 16. Control de la visibilidad deacceso Los métodos son públicos, accesibles desde el exterior Los datos son privados, accesibles sólo desde el interior Retirar( Retirar( ) ) saldo saldo  Ingresar( Ingresar( ) ) ¿CuentaBancaria ? ¿CuentaBancaria ?
    17. 17. ¿Por qué se encapsula? Porque permite el control Retirar(  El objeto se usa sólo ) Ingresar( con los métodos ) públicos saldo  12,56 Porque permite el cambio  El uso del objeto no Retirar( varía si cambia el tipo ) de los datos privados Ingresar( ) euros 12 céntimos 56
    18. 18. Datos de objetos Los datos de objetos describen información para objetos concretos  Por ejemplo, cada cuenta bancaria tiene su propio saldo. Si dos cuentas tienen el mismo saldo, será sólo una coincidencia . Retirar( Retirar( ) ) Ingresar( Ingresar( ) ) saldo 12,56 saldo 12,56 prop. prop. “Juan" “Pedro"
    19. 19. Uso de datos estáticos Los datos estáticos describen información para todos los objetos de una clase  Por ejemplo, supongamos que todas las cuentas comparten el mismo interés. No sería conveniente almacenar el interés en todas las cuentas. ¿Por qué? Retirar( Retirar( ) ) Ingresar( Ingresar( ) ) saldo 12,56 saldo interés 7% 99,12 interés 7% 
    20. 20. Uso de métodos estáticos Los métodos estáticos acceden sólo a datos estáticos  Un método estático se llama en la clase, no el objeto La clase cuenta Un objeto cuenta Retirar( Interés( )  ) Ingresar(  ) saldo interés 7%  99,12 prop. “Pedro" Las clases contienen datos Los objetos contienen datos y métodos estáticos y métodos de objetos
    21. 21. Definición de sistemasorientados a objetos Herencia Jerarquías de clases Herencia sencilla y múltiple Polimorfismo Clases base abstractas Interfaces
    22. 22. Herencia La herencia indica una relación “es un tipo de"  La herencia es una relación entre clases  Las nuevas clases añaden especialización a las existentes Generalización Músico Músico Clase base Especialización Clase derivada ¿Es éste un buen Violinista Violinista ejemplo de herencia ?
    23. 23. Jerarquías de clases Las clases con relaciones de herencia forman jerarquías de clases toca Instrumento Instrumento Músico Músico musical musical Músico de Músico de toca Instrumento de Instrumento de cuerda cuerda cuerda cuerda toca ??? ??? Violinista Violinista Violín Violín ??? ???
    24. 24. Herencia sencilla y múltiple Herencia sencilla: derivadas de una clase base Herencia múltiple: derivadas de dos o más clases base Instrumento de Instrumento de Instrumento Instrumento Con teclas Con teclas cuerda cuerda musical musical Instrumento de Instrumento de Violín Violín cuerda cuerda Violín tiene una sola Instrumento de cuerda tiene clase base directa dos clases base directas
    25. 25. Polimorfismo El nombre del método reside en la clase base Los distintos cuerpos del método residen en las clases derivadas Músico de cuerda Músico de cuerda Un método sin Un método sin cuerpo se llama cuerpo se llama AfinaTuInstrumento( )) AfinaTuInstrumento( operación operación Guitarrista Guitarrista Violinista Violinista AfinaTuInstrumento( )) AfinaTuInstrumento( AfinaTuInstrumento( )) AfinaTuInstrumento(
    26. 26. Clases base abstractas Algunas clases existen sólo para ser clases base  No tiene sentido crear instancias de estas clases  Estas clases son abstractas No se pueden crear instancias No se pueden crear instancias Músico de cuerda de clases abstractas de clases abstractas Músico de cuerda {{ abstract }} abstract Se pueden crear instancias Se pueden crear instancias de clases concretas de clases concretas Guitarrista Guitarrista Violinista Violinista « concrete » « concrete » « concrete » « concrete »
    27. 27. Interfaces Las interfaces contienen sólo operaciones, no implementación Músico Nada más que operaciones. Nada más que operaciones. Músico « interface » No se pueden crear instancias No se pueden crear instancias « interface » de una interfaz. de una interfaz. Puede contener implementación. Puede contener implementación. Músico de cuerda Músico de cuerda No se pueden crear instancias de No se pueden crear instancias de {{ abstract }} abstract una interfaz. una interfaz. Implementa las operaciones heredadas. Implementa las operaciones heredadas. Violinista Violinista Se pueden crear instancias de una clase Se pueden crear instancias de una clase « concrete » « concrete » concreta. concreta.

    ×