Introducción a la Orientación a Objetos
|
|
- Marta Maestre Cortés
- hace 7 años
- Vistas:
Transcripción
1 Introducción a la Orientación a Objetos Fernando Bellas Permuy Departamento de Tecnologías de la Información y las Comunicaciones (TIC) Universidad de A Coruña fbellas@udc.es
2 Ciclo de vida de una aplicación Análisis Diseño Implementación Pruebas Mantenimiento
3 Distintas formas de construcción de sistemas software Programación estructurada. C, Pascal, Modula. Programación funcional. Lisp, Cammel. Programación lógica. Prolog. Programación orientada a objetos. Smalltalk, Eiffel, C++, Java. Programación con agentes.
4 El paradigma de los objetos (1) Un sistema software es un conjunto de objetos que cooperan. Ej.: en un editor de gráficos: cuadrado, círculo, línea, imagen, barra de herramientas, etc.). Los objetos poseen una funcionalidad (operaciones que son capaces de hacer o mensajes a los que son capaces de reaccionar). Ej.: Dibujar,CambiarTamanho, Mover, Eliminar, etc.
5 El paradigma de los objetos (y 2) El diseño orientado a objetos es un paradigma opuesto a una visión algorítmica (descomposición funcional) del sistema implementar. Proceso () { SubProceso1(); SubProcesoN(); } Barra de Selección Dibujar Cuadrado Circulo Linea
6 Descomposición funcional vs orientación a objetos Descomposición funcional Módulos construidos alrededor de las operaciones. Datos globales o distribuidos entre módulos. Entrada/Proceso/Salida. Organigramas de flujo de datos. Orientación a objetos Módulos construidos alrededor de las clases. Clases débilmente acopladas, y sin datos globales Encapsulación/mensajes. Diagramas jerárquicos de clases.
7 Ventajas de la orientación a objetos Un diseño orientado a objetos maximiza la: Modularidad y encapsulación El sistema se descompone en objetos con unas responsabilidades claramente especificadas. Extensibilidad Posibilidad de ampliar la funcionalidad de la aplicación de manera sencilla. Reusabilidad Posibilidad de reutilizar parte del código para el desarrollo de una aplicación similar.
8 Concepto de clase (1) Una clase describe un conjunto de ejemplares con propiedades y comportamientos similares. Una clase se describe por: Nombre. Interfaz: Operaciones (métodos, mensajes) que manipulan el estado. Conjunto de atributos (datos) que definen el estado. Desde el punto de vista de la programación una clase es un tipo (ejs.: Rectangulo, Lista, Cola,NumeroComplejo, etc.).
9 Concepto de clase (y 2) Nombre Rectangulo Interfaz Atributos void Dibujar () void Ocultar () void Mover (float nuevacoordx, float nuevacoordy) void CambiarDeTamanho (float nuevoancho, float nuevoalto) float Area () float DameCoordX () float DameCoordY () float DameAncho () float DameAlto () float coordx, coordy float ancho, alto Prototipo (signature) return alto*ancho;
10 Concepto de objeto Objeto (instancia): cada uno de los ejemplares de una clase. Desde el punto de vista de la programación, un objeto es una variable. X Y
11 Tipos de operaciones Constructor: crea una instancia de la clase. Destructor: destruye una instancia. Selector: selecciona una parte del estado o devuelve una propiedad resultante de la combinación de algunos atributos. Ejs.:DameCoordX,DameCoordY,DameAncho,DameAlto, Area, etc. Modificador: modifica una parte del estado según algún criterio. Ejs.: Mover,CambiarDeTamanho, etc. Copiador: copia un objeto en otro. Iterador: permite recorrer una estructura de datos (ej.: para recorrer una lista). Visualizador: muestra todo el estado del objeto de una forma elaborada. Ej.: Dibujar.
12 Envío de mensajes Un objeto de una clase responde a cualquiera de los mensajes definidos en la clase. float coordx = unrectangulo.damecoordx(); unrectangulo.mover(0, 20); unrectangulo.dibujar();
13 Encapsulación Los clientes de una clase sólo conocen la interfaz de la misma, es decir, conocen los prototipos de las operaciones pero no cómo están implementadas. Por tanto, si la implementación de una clase varía, y la interfaz continúa siendo la misma, no es necesario cambiar el código de los clientes. NumeroComplejo NumeroComplejo Sumar (NumeroComplejo c) NumeroComplejo Restar (NumeroComplejo c) NumeroComplejo Multiplicar (NumeroComplejo c) NumeroComplejo Dividir (NumeroComplejo c) float DameModulo () float DameArgumento () float DameParteReal () float DameParteImaginaria () float modulo, argumento NumeroComplejo NumeroComplejo Sumar (NumeroComplejo c) NumeroComplejo Restar (NumeroComplejo c) NumeroComplejo Multiplicar (NumeroComplejo c) NumeroComplejo Dividir (NumeroComplejo c) float DameModulo () float DameArgumento () float DameParteReal () float DameParteImaginaria () float partereal, parteimaginaria
14 Visibilidad Los atributos y operaciones pueden tener los siguientes tipos de acceso (visibilidad): Público Se pueden acceder desde cualquier clase. Privado Sólo se pueden acceder desde operaciones de la clase. Protegido Sólo se pueden acceder desde operaciones de la clase o de clases derivadas. Norma general: El estado debe ser privado. Las operaciones que definen la funcionalidad deben ser públicas. Las operaciones que ayudan a implementar parte de la funcionalidad deben ser privadas (si no se utilizan desde clases derivadas) o protegidas (si se utilizan desde clases derivadas).
15 Relación de herencia (1) Permite definir una clase hija (subclase) a partir de una clase padre (base, superclase). La clase hija hereda el interfaz (con la implementación de las operaciones) y los atributos. Relación es un.
16 Relación de herencia (2) Ser Nacer () Morir () Generalización Animal Sentir () Vegetal Especialización Mamifero Ave Volar ()
17 Relación de herencia (3) Concepto de tipo: un tipo denota una interfaz particular. Ej.: Ser, Animal, Vegetal, etc. Un tipo es un subtipo de otro si su interfaz contiene la interfaz de su supertipo. Ej.: Animal es un subtipo de Ser y un supertipo de Ave ymamifero. Diferencia entre los conceptos de clase e interfaz. El concepto de clase hace referencia a los atributos y a las operaciones, junto con su implementación. El concepto de interfaz hace referencia sólo a los prototipos de las operaciones visibles. En un lenguaje orientado a objetos siempre se pueden hacer asignaciones del estilo supertipo = subtipo entre instancias. unanimal = unave, pero NO unave = unanimal.
18 Relación de herencia (4) La clase hija puede extender o redefinir (override) el comportamiento de la clase padre. Extensión: Se añaden operaciones y/o atributos (ej.: Volar en el caso de Ave). Redefinición: Se cambia la implementación de alguna operación heredada (o se le da una implementación si no la tenía).
19 Relación de herencia (5) Texto Cargar () Grabar () Presentar () Presentar ASCII PostScript HTML Presentar () Procesar PostScript Presentar () Procesar HTML
20 Relación de herencia (6) Clase abstracta Deja sin definir una o más operaciones (sólo declara sus prototipos), que se definirán en subclases. Estas operaciones se denominan operaciones abstractas. No se pueden crear instancias de una clase abstracta. Su objetivo es especificar una interfaz común para todas sus subclases. Clase concreta Una clase que no es abstracta, es decir, que no define operaciones abstractas y define las operaciones abstractas que hereda.
21 Relación de herencia (7) Un ejemplo de clase abstracta (Figura)... Grafico Insertar (Figura) Dibujar () Area () Mover () Ocultar () Figura Dibujar () Area () Mover () Ocultar () Rectangulo Dibujar () Area () Mover () Ocultar () Circulo Dibujar () Area () Mover () Ocultar () Triangulo Dibujar () Area () Mover () Ocultar ()
22 Relación de herencia (8) Un ejemplo de clase abstracta (continuación) Cuadrado* uncuadrado = << Crear instancia de Cuadrado. >> Circulo* uncirculo = << Crear instancia de Circulo. >> Triangulo* untriangulo = << Crear una instancia de Triangulo. >> Grafico* grafico = << Crear una instancia de Grafico. >> grafico->insertar(uncuadrado); grafico->insertar(uncirculo); grafico->insertar(untriangulo); grafico->dibujar();
23 Relación de herencia (9) Un ejemplo de clase abstracta (continuación) voidgrafico::dibujar () { IteradorFiguras i; } i = ObtenerIteradorFiguras(); while (! i.fin()) { Figura* figura = i.elemento(); figura->dibujar(); i.siguiente(); } El código de Dibujar no depende de los tipos de figura que haya. Se evita código case/switch, es decir...
24 Relación de herencia (10) Grafico_Dibujar (Grafico* grafico) { while (! Lista_Fin(grafico->figuras) ) { struct FiguraYTipo figuraytipo = Lista_Actual(grafico->figuras); switch (figuraytipo.tipo) { case EsRectangulo: Rectangulo_Dibujar((Rectangulo*)figuraYTipo.figura); break; case EsCirulo: Circulo_Dibujar((Circulo*)figuraYTipo.figura); break; case EsTriangulo: Triangulo_Dibujar((Triangulo*)figuraYTipo.figura); break; } Lista_Siguiente(grafico->figuras); } }
25 Relación de herencia (11) Polimorfismo: Distintas instancias del mismo tipo interpretan un mismo mensaje de distinta forma. Ej.: En la implementación de Grafico::Dibujar existe polimorfismo (figura.dibujar()). El polimorfismo requiere enlace dinámico. Enlace dinámico: La llamada a figura.dibujar se resuelve en tiempo de ejecución. Enlace estático: La llamada a grafico.dibujar se resuelve en tiempo de compilación. Consejo: Programar haciendo uso de una interfaz, y no de una implementación concreta.
26 Relación de herencia (12) Herencia de implementación: La clase hija hereda la implementación de métodos de la clase padre. Ej.: el ejemplo de la jerarquía de los seres vivos. Herencia de interfaz: La clase hija hereda el interfaz (pero no la implementación de las operaciones). Ej.: el ejemplo de la jerarquía de figuras. Algunos lenguajes tienen palabras clave para distinguir entre herencia de interfaz y clase (ej.: Java), mientras que otros no (ej.: C++). Herencia de clase: combina la herencia de implementación y de interfaz. Ej.: siguiente transparencia...
27 Relación de herencia (13) ColeccionTextos Insertar (Texto) Pesentar () Texto Cargar () Grabar () Presentar () forall t in Textos t.presentar() ASCII Presentar () PostScript Presentar () HTML Presentar () Presentar ASCII Procesar PostScript Procesar HTML
28 Relación de herencia (14) Métodos plantilla Documento Grabar () Abrir () Cerrar () Leer () MiDocumento Leer () Aplicacion AnhadirDoc () AbrirDoc () CrearDoc () PuedoAbrirDoc () ApuntoDeAbrirDoc () MiAplicacion CrearDoc () PuedoAbrirDoc () ApuntoDeAbrirDoc () if (! PuedoAbrirDoc(nombre)) { return; } Documento* doc = CrearDoc(); if (doc) { docs->anhadirdoc(doc); ApuntoDeAbrirDoc(doc); doc->abrir(); doc->leer(); }
29 Relación de herencia (15) Herencia múltiple una clase hija hereda de dos o más padres. No está disponible en todos los lenguajes (disponible en C++; en Java sólo para la herencia de interfaz). VehiculoTerrestre DesplazarsePorTierra () VehiculoAcuatico DesplazarsePorAgua () VehiculoAnfibio
30 Relación de herencia (y 16) Herencia múltiple (continuación) Problema de ambigüedad:unvehiculoanfibio.desplazarse(); VehiculoTerrestre Desplazarse () VehiculoAcuatico Desplazarse () VehiculoAnfibio - Los lenguajes ofrecen mecanismos para deshacer la ambigüedad (en C++ =>unvehiculoanfibio.vehiculoterrestre::desplazarse()).
31 Relación de composición/agregación (1) Un Grafico se compone de varios objetos Figura. Grafico Insertar (Figura) Dibujar () Area () Mover () Ocultar () Figura Dibujar () Area () Mover () Ocultar () forall f in Figuras f.dibujar (); Rectangulo Dibujar () Area () Mover () Ocultar () Circulo Dibujar () Area () Mover () Ocultar () Triangulo Dibujar () Area () Mover () Ocultar ()
32 Relación de composición/agregación (y 2) El código de los métodos del agregado (Grafico) delega parte de su implementación en métodos de sus partes (Figura). El agregado puede tener la responsabilidad de liberar la memoria de sus partes (ejemplo anterior) o no (siguiente ejemplo).
33 Reutilización de código: herencia de clase vs composición (1) Rectangulo Area () Ventana Area () DarForma (Figura) Figura forma Figura Area () Ventana forma.area() Rectangulo Circulo Area () Area () float ancho float alto float radio return ancho*alto; return PI * radio 2 ;
34 Reutilización de código: herencia de clase vs composición (2) Herencia Composición Ventaja Fácil de utilizar. Fácil de modificar la implementación heredada. Establece relaciones dinámicas. Se mejora la encapsulación. Desventaja Establece relaciones estáticas. Se rompe la encapsulación. Mayor número de objetos. El comportamiento del sistema depende de las relaciones entre objetos, en vez de estar concentrado en una clase.
35 Reutilización de código: herencia de clase vs composición (y 3) Consejos : Favorecer la composición frente a la herencia de clase. Evitar excesivas relaciones entre clases (las clases deben estar débilmente acopladas). Evitar jerarquías de clases excesivamente complejas. Un último consejo: Think simple!
36 Recursos Libros E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addisson-Wesley, Página web del curso
Introducción a OOP. Programación Orientada a Objeto
Introducción a OOP Programación Orientada a Objeto Evolución Programación no Estructurada, Programación procedimental, Programación modular y Programación orientada a objetos. Programación no Estructurada
Más detallesProgramación Orientada a Objetos. Integrantes: Santiago Hernández Bolívar Edwin Alexander Bohórquez
Programación Orientada a Objetos Integrantes: Santiago Hernández Bolívar Edwin Alexander Bohórquez Tabla de Contenido Historia. Filosofía del paradigma. Conceptos claves. Ventajas y desventajas. Lenguajes
Más detallesProgramación orientada a objetos I
Introducción Programación orientada a objetos I Curso INEM. Programación en C++ Santiago Muelas Pascual smuelas@fi.upm.es Qué es la POO? Un paradigma de programación Un paradigma es una forma de afrontar
Más detallesPROGRAMACION ORIENTADA A OBJETOS EN C++
PROGRAMACION ORIENTADA A OBJETOS EN C++ 1- INTRODUCCIÓN El lenguaje C++ representa el resultado de los esfuerzos realizados para proporcionar las ventajas de la programación Orientada a Objetos a un lenguaje
Más detallesIntroducción a la Orientación a Objetos
Introducción a la Orientación a Objetos Breve historia de la OO 1960s. Simula incorpora características propias de la OO. 1970s. Smalltalk. Lenguaje totalmente OO. 1990s. Boom de la OO. 2000-Hoy. Época
Más detallesHERENCIA Y TIPOS. Articulo. Video Audio Altavoces. Amplificador
HERENCIA Y TIPOS. Las clases con propiedades y funciones comunes se agrupan en una superclase. Las clases que se derivan de una superclase son las subclases. Las clases se organizan como jerarquía de clases.
Más detallesPATRONES DE DISEÑO DE CREACIÓN. Abstract Factory Builder Factory Method Prototype
PATRONES DE DISEÑO DE CREACIÓN Abstract Factory Builder Factory Method Prototype Patrones de diseño de creación Abstraen el proceso de creación de instancias Encapsulan el conocimiento sobre las clases
Más detallesTema 5. Herencia. Departamento de Lenguajes y Sistemas Informáticos Universidad de Granada
Tema 5 Herencia Departamento de Lenguajes y Sistemas Informáticos Universidad de Granada Qué es la Herencia? Propiedad de que las instancias de una clase hija tengan acceso a la estructura de datos* y
Más detallesAcademia de computación de IE, ICA e ISISA. Unidad didáctica Programación Orientada a Objetos
Academia de computación de IE, ICA e ISISA Unidad didáctica Programación Orientada a Objetos Elaboración y diseño de cien reactivos de opción múltiple para la unidad didáctica programación orientada a
Más detallesTEMA 5. Agenda. Herencia
TEMA 5 Herencia V1.3 Manuel Pereira González Agenda Implementación Métodos Heredados vs Sobreescritos La Clase Object Resumen 1 Introducción Herencia Una clase (subclase ó clase hija) hereda la estructura
Más detallesContenidos. Técnicas de POO. Abstracción. Abstracción. Programación Orientada a Objetos Facultad de Informática
Contenidos Técnicas de POO Programación Orientada a Objetos Facultad de Informática! Abstracción! Definición de clases e interfaces! Mensajes y métodos! Herencia de clases! Composición de objetos Dep.
Más detallesPROGRAMACION ORIENTADA A OBJETOS: Tema 2. Conceptos básicos de la Programación Orientada a Objetos
PROGRAMACION ORIENTADA A OBJETOS: Tema 2. Conceptos básicos de la Programación Orientada a Objetos Presenta: David Martínez Torres Universidad Tecnológica de la Mixteca Instituto de Computación Oficina
Más detallesUNIDAD 4 IMPLEMENTACION DE PROPIEDADES DE LOS OBJETOS JAVA
UNIDAD 4 IMPLEMENTACION DE PROPIEDADES DE LOS OBJETOS JAVA Analista Programador Universitario Universidad Nacional de Jujuy JTP Jorge R. Mendoza Implementación de propiedades de los objetos Java Contenido
Más detallesDefiniciones en Orientación a Objetos
Definiciones en Orientación a Objetos Dr. Oldemar Rodríguez Rojas Escuela de Informática Paradigma Funcional Ø Se basan en la idea de que el Dominio de una Aplicación y los Requerimientos se pueden modelar,
Más detallesConceptos de Programación Orientada a Objetos
Paradigmas de programación Prog. orientada a objetos Conceptos de Programación Orientada a Objetos Abstracción de Programación estructurada Programación imperativa 2 Programación estructurada (I) Programación
Más detallesTema 1. Herencia y Polimorfismo
ÍNDICE EDA. Unidad didáctica I: Conceptos de Java para Estructuras de Datos Tema 1. Herencia y Polimorfismo 1. Relaciones entre clases: Reutilización del software. 2. La Herencia como soporte Java del
Más detallesCurso de Java POO: Programación orientada a objetos
Curso de Java POO: Programación orientada a objetos Luis Guerra Velasco Curso INEM. Programación en Java Diciembre 2010 Índice 1 Introducción 2 Comportamiento y estado 3 POO en Java 4 Relaciones 5 Herencia
Más detallesIMPLEMENTACIÓN DE CONCEPTOS P.O.O. EN JAVA
IMPLEMENTACIÓN DE CONCEPTOS P.O.O. EN JAVA Implementación de conceptos P.O.O. en Java Temario 2. Conceptos de Programación Orientada a Objetos 1. Conceptos de P.O.O. 2. Implementación de conceptos P.O.O
Más detallesObjetivos. Objetivos. Herencia. Objetivos. agregar funcionalidad a una clase existente, sin compilar su nueva definición.
(a) objetivos (b) terminología (c) polimorfismo (d) tipeo y herencia (e) vinculación dinámica de código (f) clases abstractas (g) soporte en JAVA (h) significado de la herencia (i) herencia y aserciones
Más detallesTEMA 6: Lenguajes orientados a objetos. Fundamentos teóricos.
15/03/2011 TEMA 6: Lenguajes orientados a objetos. Fundamentos teóricos. Índice 1 INTRODUCCIÓN 1 1.1 Historia de los lenguajes orientados a objetos 2 1.2 Desarrollo de Software orientado a objetos 2 2
Más detalles3.1 Introducción a TDA y OO. Capítulo III. Tipos de Datos Abstractos, Orientación a Objetos y Lenguaje Java
Capítulo III 3.1 Introducción a TDA y OO Tipos de Datos Abstractos, Orientación a Objetos y Lenguaje Java Problemas en el Desarrollo de Grandes Programas ❶ Cómo organizar una pieza de software, de manera
Más detallesProgramación orientada a objetos
Programación orientada a objetos Dra. Elisa Schaeffer elisa@yalma.fime.uanl.mx 12 de febrero de 2007 MECAS512 Estructura de Datos en C++ PROGRAMACIÓN ORIENTADA A OBJETOS un paradigma de programación programa
Más detallesParadigmas de Programación
Cátedra: PARADIGMAS DE PROGRAMACION Código: K9529 Carrera: INGENIERIA EN SISTEMA DE INFORMACIÓN Plan: ORD. Nº 1150 Año: 2013 Régimen: CUATRIMESTRAL Horas semanales: 8 Programa Analítico Paradigmas de Programación
Más detallesEdwin Andrés Cubillos Vega
PROGRAMACION ORIENTADA A OBJETOS Edwin Andrés Cubillos Vega Company LOGO Contenido Introducción Clases y Objetos Herencia Constructores y Destructores Polimorfismo Contenido Introducción Clases y Objetos
Más detallesReutilización con Delegación y Herencia
Reutilización con Delegación y Herencia Carlos Fontela cfontela@fi.uba.ar Temario Delegación Herencia UML: clases, paquetes, secuencias Cuándo usar herencia y cuándo delegación Redefinición Clases abstractas
Más detallesTema 1 Introducción al paradigma de programación orientado a objetos
Tema 1 Introducción al paradigma de programación orientado a objetos Programación Orientada a Objetos Curso 2013/2014 Contenido Paradigmas de programación vs. Lenguajes de programación. Evolución de los
Más detallesTEMA 1. Agenda. Introducción a la Programación Orientada a Objetos
TEMA 1 Introducción a la Programación Orientada a Objetos V1.1 Manuel Pereira González Agenda Introducción Objetos y Clases Modelo de Objetos Herencia Relaciones entre Objetos Generalización / Especialización
Más detallesIntroducción. Introducción y conceptos de POO. En qué consiste la POO? Vocabulario. Definiciones
Introducción Fernández Universidad Autónoma de Madrid 20 de febrero de 2009 Introducción En qué consiste la Programación Orientada a Objetos? Vocabulario básico Ejemplo sencillo En qué consiste la POO?
Más detallesUnidad 2. Elementos Intermedios del Lenguaje
Unidad 2 Elementos Intermedios del Lenguaje Paradigmas de Programación Un paradigma de programación se refiere a la forma en que se entiende, diseña y desarrolla una aplicación Imperativo Declarativo Funcional
Más detallesIntroducción y conceptos de POO
Fernández Universidad Autónoma de Madrid 20 de febrero de 2009 Introducción Introducción En qué consiste la Programación Orientada a Objetos? Vocabulario básico Ejemplo sencillo En qué consiste la POO?
Más detallesHíper introducción a Objetos
Híper introducción a Objetos Herman Schinca Clase 27 y última! 1 de Julio de 2011 Paradigma de Objetos Al igual que Funcional, se trata de una filosofía, de un paradigma, no de un lenguaje particular.
Más detallesLenguajes de Programación I
Lenguajes de Programación I Orientación a Objetos Ernesto Hernández-Novich Copyright c 2006-2010 Módulos como abstracción de datos Los módulos conducen a un estilo de programación en el cual
Más detallesCurso de Java POO: Programación orientada a objetos
Curso de Java POO: Programación orientada a objetos Luis Guerra l.guerra@upm.es Curso INEM. Programación en Java Marzo 2011 Índice Previo Repaso y encapsulación Empaquetado Relaciones entre clases Herencia
Más detallesFederico Peinado
Federico Peinado www.federicopeinado.es Depto. de Ingeniería del Software e Inteligencia Artificial disia.fdi.ucm.es Facultad de Informática www.fdi.ucm.es Universidad Complutense de Madrid www.ucm.es
Más detallesTema 3 Herencia en Java Parte 1. Programación Orientada a Objetos Curso 2015/2016
Tema 3 Herencia en Java Parte 1 Programación Orientada a Objetos Contenido Introducción. Definición y tipos. Constructores. Redefinición. Polimorfismo. Herencia y sistema de tipos. Ligadura dinámica. Casting
Más detallesDefiniciones. Orientación a Objetos
Definiciones en Orientación a Objetos Dr. Oldemar Rodríguez Rojas Escuela de Informática Paradigma Funcional Se basan en la idea de que el Dominio de una Aplicación y los Requerimientos se pueden modelar,
Más detallesProgramación orientada a objetos
Repaso Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual smuelas@fi.upm.es! Herencia! Superclase/subclase! super! Modificador protected! Redefinicion de métodos!
Más detallesPatrones de diseño. Reuso del desarrollo a nivel arquitectural. M. Telleria, L. Barros, J.M. Drake
Patrones de diseño Reuso del desarrollo a nivel arquitectural 1 Patrones de diseño Soluciones de diseño que son válidas en distintos contextos y que han sido aplicadas con éxito en otras ocasiones. Se
Más detallesHERENCIA (2ª parte) En Java todas las clases derivan de otra, aunque no se diga explícitamente.
HERENCIA (2ª parte) Lenguajes de Programación - Orientación a Objetos: Herencia 2ª parte 1 Object En Java todas las clases derivan de otra, aunque no se diga explícitamente. Object: Es el nombre de la
Más detallesHerencia en Java. Agustín J. González Diseño y Programación Orientados a Objetos
Herencia en Java Agustín J. González Diseño y Programación Orientados a Objetos 1 Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente,
Más detallesUnidad IV. Programación Orientada a Objetos
Unidad IV. Programación Orientada a Objetos Tema I. Introducción Tema II. Clases y Objetos Tema III. Herencia Tema IV. Encapsulación Tema V. Abstracción Objetivos Introducir al alumno a los conceptos básicos
Más detallesHerencia. Implementación en Java
Herencia Implementación en Java Herencia Concepto de Herencia Es el mecanismo que permite definir nuevas clases partiendo de otras ya existentes. Las clases que derivan de otras heredan automáticamente
Más detallesLa Herencia: Teoría (1)
Introducción a la Herencia Presentación basada en: 1. Construcción de Software Orientado a Objetos. Bertrand Meyer.1998. 2. Java 2., Curso de programación. Fco. Javier Ceballos. Ed. Alfoomega&RA-MA, 2003.
Más detallesObjeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico
Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico Objeto Representa una instancia de un elemento del mundo del problema Es cualquier elemento
Más detallesPrincipios de la Tecnología de Objetos
Principios de la Tecnología de Objetos Conceptos básicos de la Orientación a Objetos Copyright Copyright (c) 2004 José M. Ordax Este documento puede ser distribuido solo bajo los términos y condiciones
Más detallesINTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA
Objetivo: Identificar los concentos principales en java POO, que es una clase, un objeto así como sus características principales abstracción, modularidad, encapsulamiento, herencia, polimorfismo. INTRODUCCIÓN
Más detallesProgramación. Orientada a Objetos. Prof. Angela Di Serio. Universidad Simón Bolívar Especialización en Telemática
Programación Orientada a Objetos Prof. Angela Di Serio Universidad Simón Bolívar Especialización en Telemática Agenda Clase 2 Qué es Orientado a Objetos? Conceptos: objeto, clase, instancias, mensajes
Más detallesTema 1. Introducción a la Programación Orientada a Objetos
Tema 1. Introducción a la Programación Orientada a Objetos Dpto. Lenguajes y Ciencias de la Computación. E.T.S.I. Informática. Universidad de Málaga Programación Orientada a Objetos Dpto. Lenguajes y Ciencias
Más detallesTema 3. Diagramas de Clases y Objetos C H R I STO PHER E X P Ó S I TO I Z Q U I ERDO A I R A M E X P Ó S I TO M Á R Q UEZ I S R A E L LÓ P EZ P L ATA
Tema 3. Diagramas de Clases y Objetos C H R I STO PHER E X P Ó S I TO I Z Q U I ERDO A I R A M E X P Ó S I TO M Á R Q UEZ I S R A E L LÓ P EZ P L ATA M A R Í A B E L É N M E L I Á N BAT I STA J O S É MARCOS
Más detallesHerencia y Clases Abstractas
Herencia y Clases Abstractas Reutilización de código y código genérico ELO329: Diseño y Programación Orientados a Objetos Introducción La idea básica es poder crear clases basadas en clases ya existentes.
Más detallesCAPÍTULO 2: CARACTERÍSTICAS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS. ABSTRACCIÓN. ENCAPSULAMIENTO. PRINCIPIO DE OCULTACIÓN. HERENCIA. POLIMORFISMO.
1 UNIDAD 1: ORIENTACIÓN A OBJETOS. CAPÍTULO 1: INTRODUCCIÓN. HISTORIA. ESPÍRITU DEL PARADIGMA ORIENTADO A OBJETOS. CONCEPTOS BÁSICOS: OBJETO, ATRIBUTO, MÉTODO, MIEMBRO, MENSAJE, CLASE, EVENTO. CAPÍTULO
Más detallesPROGRAMA DE CURSO. Metodologías de Diseño y Programación. Nombre en Inglés. Design and Programming Methodologies.
Código CC3002 Nombre Nombre en Inglés PROGRAMA DE CURSO Metodologías de Diseño y Programación Design and Programming Methodologies SCT es Docentes Horas de Cátedra Horas Docencia Auxiliar Horas de Trabajo
Más detallesHerencia. Proceso mediante el cual una clase adquiere las propiedades (atributos) y comportamiento (métodos) de otra.
Programación Orientada a Objetos Herencia Ing. Julio Ernesto Carreño Vargas MsC. Herencia Proceso mediante el cual una clase adquiere las propiedades (atributos) y comportamiento (métodos) de otra. Programación
Más detallesProgramación orientada a objetos. Introducción
Programación orientada a objetos Clases: Polimorfismo Introducción El polimorfismo, en general, es la característica de un lenguaje orientado a objetos que permite que un mismo identificador de método
Más detallesIntroducción al Paradigma Orientado a Objetos
Introducción al Paradigma Orientado a Objetos 1 Objetos Qué es un objeto? Un objeto es un componente de software que contiene variables y métodos y que es usado para modelar algún aspecto de la vida real.
Más detallesPROGRAMACIÓN EN JAVA
1. INTRODUCCIÓN A LA PROGRAMACIÓN 1.1. Datos, algoritmos y programas 1.1.1. Definición de algoritmo 1.1.2. Datos 1.1.3. Características de un programa 1.2. Paradigmas de programación 1.2.1. Programación
Más detallesGuía práctica de estudio 08: Polimorfismo
Guía práctica de estudio 08: Polimorfismo Elaborado por: M.C. M. Angélica Nakayama C. Ing. Jorge A. Solano Gálvez Autorizado por: M.C. Alejandro Velázquez Mena Guía práctica de estudio 08: Polimorfismo
Más detallesA3F. Polimorfismo. Carlos Fontela
Polimorfismo Carlos Fontela cfontela@fi.uba.ar Temario Métodos virtuales Métodos abstractos Polimorfismo como concepto Interfaces Clases internas 2c2010 2 cb := CuentaBancaria new. cc := CuentaCorriente
Más detallesIntroducción a la Programación Orientada a Objetos
INSTITUTO MATEMÁTICO Y ACTUARIAL MEXICANO LICENCIATURA EN ACTUARÍA PROGRAMACIÓN Introducción a la Programación Orientada a Objetos Gerardo Avilés Rosas gaviles@imam.com.mx Programar Una tarea fácil? 2
Más detallesINFORMÁTICA INDUSTRIAL
INFORMÁTICA INDUSTRIAL Programación Orientada a Objetos M. Abderrahim, A. Castro, J. C. Cas3llo Departamento de Ingeniería de Sistemas y Automá3ca 1. Introducción Características Generales La orientación
Más detallesUNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES
UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES Área de formación: Disciplinaria Unidad académica: Programación Orientada a Objetos Ubicación: Cuarto Semestre Clave: 2087 Horas
Más detallesUnidad IV. Este tipo de codificación nos es permitido gracias a la sobrecarga, la cual se aplica a métodos y constructores.
Unidad IV Métodos. 4.1 Definición de un método. El polimorfismo, en programación orientada a objetos, se refiere a la posibilidad de acceder a un variado rango de funciones distintas a través del mismo
Más detallesNombre y Apellido. Martin Villarreal. Daniel Aguil Mallea
INSTITUTO DE DESARROLLO ECONÓMICO E INNOVACIÓN Año: 2018 PROGRAMA DE LA ASIGNATURA: Programación y Diseño Orientado a Objetos (IF030) CÓDIGO: IF030 AÑO DE UBICACIÓN EN EL PLAN DE ESTUDIOS: 2 año FECHA
Más detallesProgramación orientada a objetos. Resumen de Temas Unidad 5: Herencia
Programación orientada a objetos Resumen de Temas Unidad 5: Herencia 5.1 Introducción a la Herencia La herencia es el mecanismo fundamental de relación entre clases en la orientación a objetos. Relaciona
Más detallesPROGRAMACIÓN ORIENTADA POR OBJETOS EN JAVA
PROGRAMACIÓN ORIENTADA POR OBJETOS EN JAVA Introducción El paradigma de Programación Orientada a Objetos ha estado vigente desde hace muchos años en el mundo del software. A través de los años este paradigma
Más detallesTema 3 Herencia en Java Parte 2. Programación Orientada a Objetos Curso 2015/2016
Tema 3 Herencia en Java Parte 2 Programación Orientada a Objetos Contenido Restringir la herencia. Visibilidad protegida. Clases abstractas. Clase Object. Autoboxing. Igualdad de objetos. Copia de objetos.
Más detallesacceso Implementación de conceptos P.O.O. en Java Orientada a Objetos 2. Modificadores de en Java Temario
Implementación de conceptos P.O.O. en Java Temario 2. Conceptos de Programación Orientada a Objetos 1. Conceptos de P.O.O. 2. Implementación de conceptos P.O.O en Java 1. Creación de clases y objetos 2.
Más detallesUAA-DSE Programación 2 / C++ Eduardo Serna-Pérez
6 Herencia y Polimorfismo La Herencia y el Polimorfismo son dos de los principales mecanismos de programación que caracterizan a la programación orientada a objetos. La herencia sustenta su mecanismo en
Más detallesCentro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Introducción Práctica de Programación Java Antonio Rivero Cuesta Sesión VIII Composición... 4 Herencia... 8 Herencia e Inicialización... 11 Constructor de Superclase...
Más detallesUNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA DIRECCIÓN GENERAL DE ASUNTOS ACADÉMICOS PROGRAMA DE ASIGNATURA POR S I. DATOS DE IDENTIFICACIÓN 1. Unidad Académica: Facultad de Ciencias Químicas e Ingeniería 2.
Más detallesINGENIERIA DE SOFTWARE. Dr. Mario Rossainz López Fac. de Cs. de la Computación Benemérita Universidad Autónoma de Puebla Primavera 2017
INGENIERIA DE SOFTWARE Dr. Mario Rossainz López Fac. de Cs. de la Computación Benemérita Universidad Autónoma de Puebla Primavera 2017 CONCEPTOS: En general, dentro de un Desarrollo OO se distinguen tres
Más detallesUniversidad Nacional del Santa E.A.P. Sistemas e Informática Microcomputación III
HERENCIA Se entiende por herencia el proceso por el que un objeto puede tomar características de otro objeto. La herencia Se puede usar de dos formas: 1. Cuando una clase escrita no llega a cubrir las
Más detallesTema 3. Herencia. Programación Avanzada. Jorge Badenas
Tema 3. Herencia Programación Avanzada Jorge Badenas 1. Herencia Herencia: relación entre dos clases, donde una clase nueva se define como una extensión de la otra. En la nueva clase sólo necesitamos escribir
Más detallesIntroducción al Lenguaje "C++"
UNIDAD 2 Introducción al Lenguaje "C++" 1.- La programación Orientada a Objetos. La Programación Orientada a Objetos no es un concepto nuevo, data de hace unas dos decadas. El origen de la Programación
Más detallesINTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
UNIVERSIDAD DE MÁLAGA Dpto. Lenguajes y CC. Computación E.T.S.I. Telecomunicación INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Tema 4 Programación II Programación II 0 Tema 4: INTRODUCCIÓN A LA PROGRAMACIÓN
Más detallesPROGRAMA DE CURSO. Horas de Trabajo Personal Horas de Cátedra
PROGRAMA DE CURSO Código Nombre CC3002 Metodologías de Diseño y Programación Nombre en Inglés Design and programming methodologies SCT Unidades Docentes Horas de Cátedra Horas Docencia Auxiliar Horas de
Más detallesINTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11
Índice INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11 1.1 PROGRAMA Y LENGUAJESDE PROGRAMACIÓN...12 1.1.1 EL LENGUAJE JAVA...13 1.1.2 EL JDK...15 1.1.3 LOS PROGRAMAS EN JAVA...16
Más detallesUNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS PROGRAMA DEL CURSO INTRODUCCION A LA PROGRAMACION Y COMPUTADORAS 1 CODIGO: 770 CREDITOS: 4 ESCUELA: Ciencias
Más detallesINDICE Parte I Algoritmos y herramientas de programación Capitulo 1. Computadoras y lenguajes de programación Actividades de Programación Resueltas
INDICE Prologo a la tercera edición xiii Prologo a la segunda edición xxvii Parte I Algoritmos y herramientas de programación Capitulo 1. Computadoras y lenguajes de programación 3 1.1. Organización de
Más detallesTaller de Programación I. Tema 10: Herencia en Java
INACAP Universidad Tecnológica de Chile Sede Santiago Centro Taller de Programación I Curso Java J2SE Tema 10: Herencia en Java Ing. Manuel López Ramos (versión 1) Parte I Qué es la herencia entre clases?
Más detallesProgramación Orientada a Objetos. Conceptos Básicos
Programación Orientada a Objetos Conceptos Básicos Programación Orientada a Objetos Paradigma de programación Un programa orientado a objetos está organizado como un conjunto de agentes en interacción
Más detallesMetodologías en la Ingeniería del Software Métodos Orientados a Objetos
Metodologías en la Ingeniería del Software Métodos Orientados a Objetos García Departamento de Ciencias de la Computación Universidad de Alcalá Contenidos Historia Orientación a Objetos (OO) Problemas
Más detallesHerencia y Polimorfismo
Herencia y Polimorfismo Dra. Maricela Bravo Universidad Autónoma Metropolitana Unidad Azcapotzalco 1 Herencia en el mundo real Cosa Medio de telecomunicación Medio de transporte Coche Vehiculo aéreo Objeto
Más detallesPROGRAMACION II. Dr. Mario Rossainz López. Fac. de Cs. de la Computación Benemérita Universidad Autónoma de Puebla Primavera de 2017
PROGRAMACION II Dr. Mario Rossainz López Fac. de Cs. de la Computación Benemérita Universidad Autónoma de Puebla Primavera de 2017 ABSTRACCIÓN: Proceso mental e intelectual que ignora selectivamente partes
Más detallesProgramación n de sistemas
Programación n de sistemas Orientación a Objetos en Java I. Programación Basada en objetos II. Programación orientada a objetos Ingeniería Telemática M. Carmen Fernández Panadero mcfp@it.uc3m.es
Más detallesReutilización con delegación, herencia y polimorfismo
Reutilización con delegación, herencia y polimorfismo Carlos Fontela cfontela@ @fi.uba.ar Temario Delegación Herencia UML: clases, paquetes, secuencias Cuándo usar herencia y cuándo delegación Redefinición
Más detallesLas aplicaciones no se construyen desde cero
Conceptos de POO Programación Orientada a Objetos Facultad de Informática Dep. Sistemas Informáticos y Programación Universidad Complutense Madrid Tecnología de objetos Construcción de software utilizando
Más detallesCentro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Introducción Práctica de Programación Java Antonio Rivero Cuesta Sesión IX Composición... 4 Herencia... 8 Herencia e Inicialización... 12 Constructor de Superclase...
Más detallesANÁLISIS Y DISEÑO ORIENTADO A OBJETOS
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS OBJETIVOS GENERALES Analizar, Diseñar e Implementar Sistemas Computacionales utilizando el Paradigma de la Orientación a Objetos a través del conocimiento de su sustentación
Más detallesGuía del Curso IFCD052PO PROGRAMACIÓN EN JAVA
Guía del Curso IFCD052PO PROGRAMACIÓN EN JAVA Modalidad de realización del curso: Titulación: Online Diploma acreditativo con las horas del curso OBJETIVOS CONTENIDOS UNIDAD DIDÁCTICA 1. INTRODUCCIÓN A
Más detallesUNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, DECANA DE AMÉRICA)
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, DECANA DE AMÉRICA) FACULTAD DE INGENIERIA DE SISTEMAS E INFORMATICA ESCUELA PROFESIONAL DE INGENIERÍA DE SOFTWARE 1. INFORMACIÓN GENERAL
Más detallesHerencia en Java. Agustín J. González Diseño y Programación Orientados a Objetos
Herencia en Java Agustín J. González Diseño y Programación Orientados a Objetos 1 Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente,
Más detallesProgramación Orientada a Objetos
Programación Orientada a Objetos PROGRAMACIÓN ORIENTADA A OBJETOS 1 Sesión No. 4 Nombre: Herencia Contextualización Cuando hablamos de informática podemos contemplar varios elementos que se utilizan dentro
Más detallesTema 1: Introducción a las Computadores y Lenguajes de. Programa
Tema 1: Introducción a las Computadores y Lenguajes de programación: Paradigmas de la programación. Programa Arquitectura del Computador Input Células de memoria Información (words) Dirección Output w
Más detallesTema 1.- Conceptos básicos de la OO
Tema 1.- Conceptos básicos de la OO 1. HISTORIA DE LOS CONCEPTOS... 2 2. OBJETOS Y MENSAJES... 3 3. CLASES DE OBJETOS... 5 4. HERENCIA... 8 5. OTROS CONCEPTOS... 9 6. DESARROLLO ORIENTADO A OBJETOS...
Más detallesParadigma Orientado a Objetos Caso de estudio: Squeak Smalltalk. Lenguajes de Programación 2018
Paradigma Orientado a Objetos Caso de estudio: Squeak Smalltalk Lenguajes de Programación 2018 Paradigma Orientado a Objetos Abstracción de datos Reusabilidad y mantenimiento Extensibilidad Polimorfismo
Más detalles