Orientación a Objetos
Objetivos Aprender un LPOO:  C# Dominar las librerías básicas del lenguaje Practicar los conceptos de orientación a objetos en Java Manejar un entorno de programación C#:  .Net
Introducción La programación orientada a objetos es un enfoque de programación de los más populares y viene teniendo gran aceptación en el desarrollo de proyectos de software.
Introducción En los principios de la informática, las máquinas eran caras y los programadores baratos. La idea de colocar capas de código innecesario con el único propósito de facilitar el desarrollo de aplicaciones parecía impensable.
Introducción Hoy en día, por el contrario, las máquinas son baratas y la gente que sabe trabajar con ellas muy cara. Entonces aparecieron las técnicas orientadas a objetos
¿Qué significa   Orientación   a   Objetos? El software se organiza como una  colección de objetos  que contienen tanto  estructura  como  comportamiento . ¿Qué es el desarrollo OO? Una nueva forma de pensar acerca del software basándose en abstracciones que  existen   en el   mundo   real . Bombilla color encender() apagar()
Que es la Programación Orientada a Objetos ?  Es un estilo de programación en que cada programa es visto como un objeto se forma por una serie de componentes, autocontenidos que cooperan para realizar las acciones de la aplicación completa. La programación orientada a objetos expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas y módulos más fáciles de escribir, mantener y reutilizar.
Introducción al diseño orientado por objetos El diseño orientado por objetos (DOO), como otras metodología de diseños orientados a la información crean una representación del dominio del problema en el mundo real y lo transforma en un dominio de soluciones que es el software.
Introducción al diseño OxO A diferencia de otros métodos, el DOO da como resultado un diseño el cual interconexiona los objetos de datos (elementos de datos) y  las operaciones de procesamiento, de forma tal que encapsula la información y el procesamiento.  Este encapsulamiento es el paradigma  fundamental de la orientación por objetos.
Componentes Un componente es una pieza de software que realiza una función bien definida y posee una interfaz bien definida. Herencia Polimorfismo Encapsulación
Constructos básicos de la programación OxO Objeto. Identidad del objeto. Clase. Métodos. Polimorfismo. Herencia
Conceptos básicos sobre la Orientación por Objetos ¿ Qué es un Objeto ? Un objeto es una entidad física o abstracta que tiene un comportamiento antes ciertos estímulos, tanto externos como de otros objetos específicos que se encuentran dentro del sistema.
Conceptos básicos de OxO Objeto Físico:Horno Operaciones asociadas:  Encendido/Apagado/Cargado/Descargado. Objeto Abstracto:Cola Operaciones: Agregar/Eliminar/Verificar vacía/ Verificar si llena/Primero cola/Siguiente cola/
Conceptos básicos de OxO Identidad de un objeto Cada objeto tiene su propia identidad que lo distingue de los demás objetos.  En otras palabras, dos objetos distintos no son iguales aunque todos los valores de sus atributos sean idénticos.
Conceptos básico de la OxO Componentes para la construcción de Software de un objeto. Cuando un objeto se transforma en una realización de software, consta de una interfaz, una estructura de datos privada y unos procesos llamados operaciones o métodos que son los únicos que pueden transformar legítimamente la estructura de datos.
Conceptos básicos de la OxO Representación abstracta de un objeto
Conceptos básicos de la OxO Clase: El proceso de clasificación es el enfoque central de la orientación por objeto y concierne a la agrupación de objetos con propiedades (estructuras de datos o atributos) y comportamiento (operaciones) similares dentro de una  clase . Una  clase   es la abstracción que describe propiedades importantes para una aplicación.
Conceptos Básicos de la OxO Los objetos que pertenecen a una clase se describen colectivamente por la definición de una clase, esto significa que en lugar de describir los objetos individuales la orientación por objeto concentra en un patrón  tanto el estado como el comportamiento que es común a todos los objetos de la clase.  Esta clase de estructura que abarca tantos propiedades como comportamiento es la unidad natural de la abstracción en los sistemas de orientación por objeto y puede ser utilizarse para modelar tanto entidades objetos como relaciones entre los objetos.
Conceptos Básicos de la OxO Cada clase describe una posibilidad infinita de un conjunto individual de objetos.  Cada  objeto  que pertenezca a una clase es llamado  instancia   de la clase. La instanciación es lo inverso a la clasificación y concierne a la generación de los distintos objetos de una clase. La distinción entre una clase y sus instancias es similar a la distinción entre una definición de tipo y la declaración de una variable en un lenguaje de programación convencional. Sin embargo, la mayoría de los sistemas orientados por objeto crean dinámicamente instancias por envío de mensajes "Nuevo" y "Crear" una clase.
Conceptos Básicos de la OxO
Conceptos básicos de la OxO Notación para representar una clase. Una clase se representa por una caja la cual puede tener 3 regiones.  La primera región contiene el nombre de la clase. La segunda región contiene la lista de atributos,  cada nombre de atributo puede estar seguido por detalles opcionales tales como tipo de atributo y valores por defectos. La tercera región contiene los nombres de las operaciones.  Cada nombre de operación puede ser seguido por detalles opcionales tales como listas de argumentos y tipos de resultados.  Los atributos y operaciones puede  o no mostrarse; esto depende del nivel de detalle deseado.
Conceptos básicos de la OxO Nombre de la clase Nombre_atributo1: tipo dato1= valor defecto1 Nombre_atributo2: tipo dato2= valor defecto2 . . . Nombre_operación1(lista de argumento):tipo_resultado1 Nombre_operación2 (lista de argumento):tipo_resultado2 . . .
Conceptos básicos de la OxO Operaciones ó métodos Una operación es una función o transformación que puede ser aplicada sobre los objetos en una clase.  Por ejemplo:  abrir, cerrar, ocultar, desplegar, son operaciones sobre una clase ventana. Cada operación tiene un objeto destino con un argumento implícito. El comportamiento de la operación depende de la clase destino.
Conceptos básicos de la OxO Polimorfismo Polimorfismo significa que la misma operación puede comportarse diferentemente sobre distintas clases. Por ejemplo, la operación "mover"  ejemplo puede comportarse diferentemente sobre una clase llamada Ventana y una clase llamada Piezas_ajedrez.
Conceptos básicos de la OxO Herencia    La herencia consiste en el compartir atributos y métodos entre clases basándose en una relación jerárquica.  Una clase puede definirse ampliamente y redefinirse sucesivamente en subclases más refinadas.  Cada subclase que se incorpora, hereda todas las propiedades de su superclase y adiciona sus propias y únicas propiedades.
Conceptos básicos de la OxO
Conceptos básicos de la OxO Tipos de Herencia: Simple. Múltiple
Conceptos básicos de la OxO Simple
Conceptos básicos de la OxO Definición de Herencia Múltiple:   Una clase puede heredar rasgos de más de una superclase.  Una clase con más de una superclase es llamada  clase junta .  Un rasgo de una clase ancestro que se encuentra más de una vez a lo largo de una ruta solo se hereda una vez.
Conceptos básicos de la OxO Múltiple
Beneficios La división en componentes reduce la complejidad, permite la reutilización y acelera el proceso de ensamblaje de software. Los creadores de componentes pueden especializarse creando objetos cada vez mas complejos y de mayor calidad.
Beneficios La interoperabilidad entre componentes de distintos fabricantes aumenta la competencia, reduce los costos y facilita la construcción de estandares. El software se hace cada vez mas rápido, de mejor calidad y a menor costo Los costos de mantención del software se reducen.
Repositorio de Objetos La empresa obtiene un repositorio de objetos probados que pueden ser utilizados en la construcción de nuevas aplicaciones. En este repositorio se pueden llegar a acumular componentes que ahorraran muchos años de desarrollo y  pruebas.
Repositorio de Objetos Ahorramos en: Costos de desarrollo  Mantenimiento  Componentes probadas y robustas

Intro oo

  • 1.
  • 2.
    Objetivos Aprender unLPOO: C# Dominar las librerías básicas del lenguaje Practicar los conceptos de orientación a objetos en Java Manejar un entorno de programación C#: .Net
  • 3.
    Introducción La programaciónorientada a objetos es un enfoque de programación de los más populares y viene teniendo gran aceptación en el desarrollo de proyectos de software.
  • 4.
    Introducción En losprincipios de la informática, las máquinas eran caras y los programadores baratos. La idea de colocar capas de código innecesario con el único propósito de facilitar el desarrollo de aplicaciones parecía impensable.
  • 5.
    Introducción Hoy endía, por el contrario, las máquinas son baratas y la gente que sabe trabajar con ellas muy cara. Entonces aparecieron las técnicas orientadas a objetos
  • 6.
    ¿Qué significa Orientación a Objetos? El software se organiza como una colección de objetos que contienen tanto estructura como comportamiento . ¿Qué es el desarrollo OO? Una nueva forma de pensar acerca del software basándose en abstracciones que existen en el mundo real . Bombilla color encender() apagar()
  • 7.
    Que es laProgramación Orientada a Objetos ? Es un estilo de programación en que cada programa es visto como un objeto se forma por una serie de componentes, autocontenidos que cooperan para realizar las acciones de la aplicación completa. La programación orientada a objetos expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas y módulos más fáciles de escribir, mantener y reutilizar.
  • 8.
    Introducción al diseñoorientado por objetos El diseño orientado por objetos (DOO), como otras metodología de diseños orientados a la información crean una representación del dominio del problema en el mundo real y lo transforma en un dominio de soluciones que es el software.
  • 9.
    Introducción al diseñoOxO A diferencia de otros métodos, el DOO da como resultado un diseño el cual interconexiona los objetos de datos (elementos de datos) y las operaciones de procesamiento, de forma tal que encapsula la información y el procesamiento. Este encapsulamiento es el paradigma fundamental de la orientación por objetos.
  • 10.
    Componentes Un componentees una pieza de software que realiza una función bien definida y posee una interfaz bien definida. Herencia Polimorfismo Encapsulación
  • 11.
    Constructos básicos dela programación OxO Objeto. Identidad del objeto. Clase. Métodos. Polimorfismo. Herencia
  • 12.
    Conceptos básicos sobrela Orientación por Objetos ¿ Qué es un Objeto ? Un objeto es una entidad física o abstracta que tiene un comportamiento antes ciertos estímulos, tanto externos como de otros objetos específicos que se encuentran dentro del sistema.
  • 13.
    Conceptos básicos deOxO Objeto Físico:Horno Operaciones asociadas: Encendido/Apagado/Cargado/Descargado. Objeto Abstracto:Cola Operaciones: Agregar/Eliminar/Verificar vacía/ Verificar si llena/Primero cola/Siguiente cola/
  • 14.
    Conceptos básicos deOxO Identidad de un objeto Cada objeto tiene su propia identidad que lo distingue de los demás objetos. En otras palabras, dos objetos distintos no son iguales aunque todos los valores de sus atributos sean idénticos.
  • 15.
    Conceptos básico dela OxO Componentes para la construcción de Software de un objeto. Cuando un objeto se transforma en una realización de software, consta de una interfaz, una estructura de datos privada y unos procesos llamados operaciones o métodos que son los únicos que pueden transformar legítimamente la estructura de datos.
  • 16.
    Conceptos básicos dela OxO Representación abstracta de un objeto
  • 17.
    Conceptos básicos dela OxO Clase: El proceso de clasificación es el enfoque central de la orientación por objeto y concierne a la agrupación de objetos con propiedades (estructuras de datos o atributos) y comportamiento (operaciones) similares dentro de una clase . Una clase es la abstracción que describe propiedades importantes para una aplicación.
  • 18.
    Conceptos Básicos dela OxO Los objetos que pertenecen a una clase se describen colectivamente por la definición de una clase, esto significa que en lugar de describir los objetos individuales la orientación por objeto concentra en un patrón tanto el estado como el comportamiento que es común a todos los objetos de la clase. Esta clase de estructura que abarca tantos propiedades como comportamiento es la unidad natural de la abstracción en los sistemas de orientación por objeto y puede ser utilizarse para modelar tanto entidades objetos como relaciones entre los objetos.
  • 19.
    Conceptos Básicos dela OxO Cada clase describe una posibilidad infinita de un conjunto individual de objetos. Cada objeto que pertenezca a una clase es llamado instancia de la clase. La instanciación es lo inverso a la clasificación y concierne a la generación de los distintos objetos de una clase. La distinción entre una clase y sus instancias es similar a la distinción entre una definición de tipo y la declaración de una variable en un lenguaje de programación convencional. Sin embargo, la mayoría de los sistemas orientados por objeto crean dinámicamente instancias por envío de mensajes "Nuevo" y "Crear" una clase.
  • 20.
  • 21.
    Conceptos básicos dela OxO Notación para representar una clase. Una clase se representa por una caja la cual puede tener 3 regiones. La primera región contiene el nombre de la clase. La segunda región contiene la lista de atributos, cada nombre de atributo puede estar seguido por detalles opcionales tales como tipo de atributo y valores por defectos. La tercera región contiene los nombres de las operaciones. Cada nombre de operación puede ser seguido por detalles opcionales tales como listas de argumentos y tipos de resultados. Los atributos y operaciones puede o no mostrarse; esto depende del nivel de detalle deseado.
  • 22.
    Conceptos básicos dela OxO Nombre de la clase Nombre_atributo1: tipo dato1= valor defecto1 Nombre_atributo2: tipo dato2= valor defecto2 . . . Nombre_operación1(lista de argumento):tipo_resultado1 Nombre_operación2 (lista de argumento):tipo_resultado2 . . .
  • 23.
    Conceptos básicos dela OxO Operaciones ó métodos Una operación es una función o transformación que puede ser aplicada sobre los objetos en una clase. Por ejemplo: abrir, cerrar, ocultar, desplegar, son operaciones sobre una clase ventana. Cada operación tiene un objeto destino con un argumento implícito. El comportamiento de la operación depende de la clase destino.
  • 24.
    Conceptos básicos dela OxO Polimorfismo Polimorfismo significa que la misma operación puede comportarse diferentemente sobre distintas clases. Por ejemplo, la operación "mover" ejemplo puede comportarse diferentemente sobre una clase llamada Ventana y una clase llamada Piezas_ajedrez.
  • 25.
    Conceptos básicos dela OxO Herencia   La herencia consiste en el compartir atributos y métodos entre clases basándose en una relación jerárquica. Una clase puede definirse ampliamente y redefinirse sucesivamente en subclases más refinadas. Cada subclase que se incorpora, hereda todas las propiedades de su superclase y adiciona sus propias y únicas propiedades.
  • 26.
  • 27.
    Conceptos básicos dela OxO Tipos de Herencia: Simple. Múltiple
  • 28.
    Conceptos básicos dela OxO Simple
  • 29.
    Conceptos básicos dela OxO Definición de Herencia Múltiple: Una clase puede heredar rasgos de más de una superclase. Una clase con más de una superclase es llamada clase junta . Un rasgo de una clase ancestro que se encuentra más de una vez a lo largo de una ruta solo se hereda una vez.
  • 30.
    Conceptos básicos dela OxO Múltiple
  • 31.
    Beneficios La divisiónen componentes reduce la complejidad, permite la reutilización y acelera el proceso de ensamblaje de software. Los creadores de componentes pueden especializarse creando objetos cada vez mas complejos y de mayor calidad.
  • 32.
    Beneficios La interoperabilidadentre componentes de distintos fabricantes aumenta la competencia, reduce los costos y facilita la construcción de estandares. El software se hace cada vez mas rápido, de mejor calidad y a menor costo Los costos de mantención del software se reducen.
  • 33.
    Repositorio de ObjetosLa empresa obtiene un repositorio de objetos probados que pueden ser utilizados en la construcción de nuevas aplicaciones. En este repositorio se pueden llegar a acumular componentes que ahorraran muchos años de desarrollo y pruebas.
  • 34.
    Repositorio de ObjetosAhorramos en: Costos de desarrollo Mantenimiento Componentes probadas y robustas