Patrones GoF. of four) 23 patrones presentados por la pandilla de los cuatro en el libro Design Patterns.. Gamma, Helm, Johnson, Vlissides

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Patrones GoF. of four) 23 patrones presentados por la pandilla de los cuatro en el libro Design Patterns.. Gamma, Helm, Johnson, Vlissides"

Transcripción

1 Patrones GoF ANALISIS Y DISEÑO O O.O. Patrones GoF GoF (gang of four) 23 patrones presentados por la pandilla de los cuatro en el libro Design Patterns.. Gamma, Helm, Johnson, Vlissides

2 Patrones GoF Cómo usar un patrón n de diseño? Conocer en gran parte la solución genérica que brinda cada patrón n y el tipo de problemática que resuelven Evaluar la posibilidad de aplicar el o los patrones en el problema correspondiente Definir la implementación n de los mismos en nuestro modelo. Nombre de clases, métodos y atributos Implementar los métodos m correspondientes Patrones GoF De creación: Forma de crear instancias. Abstraer y ocultar cómo c son creados e inicializados los objetos (Factoría a (Factory( Factory), Singleton) Estructurales: Cómo se combinan clases y objetos para formar nuevas estructuras y proporcionar nuevas funciones (Adaptador (Adapter( Adapter)) De comportamiento: Ayudan a definir la comunicación n e interacción n de los objetos. Reducir acoplamiento (Observer). 2

3 Patrones G o F Patrones de Creación Abstract Factory Factory Method Singleton Patrones Estructurales Composite Adapter Patrones de Comportamiento Observer Patrones De creación Separan la forma en que se crean los objetos, para tratar las clases a crear de forma genérica. Se ocultan los métodos y clases concretas de tal forma que al variar su implementación no se vea afectado el resto de la aplicación. 3

4 Factoria (Factory) Su propósito es definir una interface para crear objetos donde se delega la creación de las instancias a las subclases. La clase factoría devuelve una instancia de un objeto según los datos que se le pasan como parámetros. Se encarga de centralizar el sitio donde se crean los objetos, normalmente donde se crean objetos de una misma "familia. Factoria (Factory) Motivación: Un sistema debe ser independiente de cómo se crean, componen y representan sus productos Un sistema debe ser configurado con una familia de productos Una familia de objetos relacionados está diseñada para ser usada conjuntamente, y es necesario hacer cumplir esta restricción. Quiere proporcionar una biblioteca de clases, y sólo quiere revelar sus interfaces, no sus implementaciones. 4

5 Factoria (Factory) Una clase C cliente de una clase abstracta A necesita crear instancias de subclases de A que no conoce <<abstract>> Documento open() close() save() revert() setdoc <<abstract>> Aplicacion creardocumento() nuevodocumento() opendocumento() Clase A Documento d d = creardocumento(); setdoc.add(d); d.open() método factoria MiDocumento MiAplicacion creardocumento() Clase C return new MiDocumento Ejemplo del patrón Factory Method Factoria (Factory) Aplicabilidad Una clase no puede anticipar la clase de objetos que debe crear. Una clase desea que sus subclases especifiquen los objetos que debe crear. <<abstract>> Figura crearmanipulador() Cliente <<abstract>> Manipulador downclick() drag() upclick() Linea Circulo ManipuladorLinea ManipuladorCirculo crearmanipulador() crearmanipulador() Ejemplo del patrón Abstract Factory 5

6 Factoria (Factory) Implementación Dos posibilidades Creador es una clase abstracta con un método factoría a abstracto. Creador es una clase concreta que ofrece una implementación n por defecto del método m factoría. a. El método m factoría a puede tener un parámetro que identifica a la clase del objeto a crear. Factoria (Factory) Programa public abstract Figura int lado = 0; public Figura (int lado) this.lado = lado; public abstract int getarea (); public abstract void dibujar (Graphics g, int x, int y); 6

7 Factoria (Factory) public Circulo public Circulo (int lado) super (lado); public int getarea () return (Math.PI x lado x lado); public void dibujar (Graphics g, int x, int y) g.setcolor (Color.black); g.setdrawarc (x, y, lado, lado, 0, 360); public Cuadrado public Cuadrado (int lado) super (lado); public int getarea () return (lado x lado); public void dibujar (Graphics g, int x, int y) g.setcolor (Color.black); g.setdrawrect (x, y, lado, lado); Factoria (Factory) public void FactoriaDeFiguras public static final int CUADRADO = 0 public static final int CIRCULO = 1 public Figura getfigura (int tipo, int lado) if (tipo == this.cuadrado) return (new Cuadrado (lado)) else return (new Circulo (lado)) 7

8 Factoria (Factory) Ventajas: Aisla las clases concretas para el cliente Facilita el intercambio entre familias de clase Promueve la consistencia Desventajas: No es sencillo agregar elementos a la factoría. a. Requiere modificar la interface Requiere modificar las subclases Patrones GoF Abstract Factory Este patrón n proporciona una interface para crear familias de objetos relacionados o dependientes sin especificar sus clases concretas. 8

9 Abstract Factory Se utiliza cuando Un sistema debería a ser independiente de cómo sus productos son creados, compuestos o representados. Un sistema sería a configurado con uno de sus múltiples m familias de productos. Se necesita proveer una librería a de clases de productos y se desea mostrar sus interfaces, no sus implementaciones. Se necesita que un conjunto de productos relacionados sean utilizados juntos. Abstract Factory La estructura típica t es: Abstract Factory: : Definición n de interfaces para la familia de productos genéricos Concrete Factory: Implementación n de las interfaces de los productos para cada una de las familias concretas Abstract Product: Definición n de los métodos de creación n genéricos en la interface de la fábrica. f (retornan las interfaces genéricas) Concrete Product: Implementación n de una fábrica f para cada una de las familias concretas. 9

10 Abstract Factory Estructura típicat Abstract Factory Abstract Product Concrete Product Concrete Factory Abstract Factory Ventajas y Desventajas Aisla las Clases concretas: El cliente manipula instancias a través s de las interfaces abstractas. Facilita el intercambio de familias de productos: Se puede cambiar la configuración n de un producto simplemente cambiando la factoria concreta. Promueve la consistencia entre productos: Cuando los objetos de una familia trabajan juntos, la aplicación n que los usa debe utilizar la misma familia Es difícil manejar nuevas clases de productos: Implica cambios en la clase Abstract Factory. 10

11 Patrones GoF Factory Method Define una interface para crear un objeto, pero deja a las subclases decidir qué clase instanciar. Se usa cuando: Una clase no puede anticipar la clase de objetos que debe crear. Una clase quiere que sus subclases especifiquen las clases que ella debe crear. Factory Method Utiliza una clase constructora (al estilo del Abstract Factory) ) abstracta con unos cuantos métodos m definidos y otro(s) abstracto(s): el dedicado a la construcción n de objetos de un subtipo de un tipo determinado. Las clases principales en este patrón n son el creador y el producto. 11

12 Factory Method El creador necesita crear instancias de productos, pero el tipo concreto de producto no debe ser forzado en las subclases del creador, porque entonces las posibles subclases del creador deben poder especificar subclases del producto para utilizar. Factory Method <<abstract>> Documento open() close() save() revert() setdoc <<abstract>> Aplicacion creardocumento() nuevodocumento() opendocumento() Clase A Documento d d = creardocumento(); setdoc.add(d); d.open() método factoria MiDocumento MiAplicacion creardocumento() Clase C return new MiDocumento Ejemplo del patrón Factory Method 12

13 Factory Method Una desventaja es tener que crear una subclase de la clase Creator sólo para crear un objeto de la clase ConcreteProduct Product Creator FactoryMethod() AnOperation() Product=FactoryMethod() ConcretProduct ConcreteCreator FactoryMethod() AnOperation() return new ConcreteProduct Factory Method // Definimos la clase abstracta Creator public abstract class Creator // Operación n que realiza public void anoperation() () Product aproduct = factorymethod() (); // Definimos método m abstracto protected abstract Product factorymethod() (); 13

14 Factory Method //Ahora definimos el creador concreto. public class ConcreteCreator extends Creator protected Product factorymethod() return new ConcreteProduct() (); //Y definimos el producto y su implementación n concreta. public interface Product String hacer(); public class ConcreteProduct implements Product Factory Method //Y un ejemplo de uso : public static void main(string args[]) Creator acreator; acreator = new ConcreteCreator(); acreator.anoperation(); 14

15 Patrones GoF Singleton Asegura que sólo se cree una instancia de la clase y provee un punto global de acceso a ésta. Este patrón es útil cuando se quiere tener solamente un objeto único instanciado (Ej: Cola de impresión, Conexión a BD, etc). Singleton Cuenta con un método o propiedad compartida (shared) que se encarga de regresar la clase instanciada. El constructor de la clase debe ser privado para evitar que se creen instancias de la clase. Dentro de la clase tendremos nuestra instancia viva. 15

16 Singleton Singleton unicainstancia datosingleton return unicainstancia instancia() operacionsingleton() getsingleton() Singleton final class Coche /* la única instancia de coche que se permitirá. No es obligatorio crear el Singleton estáticamente, se podría proveer un método que lo cree */ private static Coche c = new Coche(); // atributos private Motor motor = new Motor();... //constructor privado para que no se pueda instanciar private Coche() //vacío porque creamos la instancia estáticamente // método que devuelve el "singleton" Coche public static Coche getcoche () return c; // resto de métodos public void acelerar() // implementación del metodo 16

17 Singleton class ClaseSingletonEjemplo static ClaseSingletonEjemplo unicainstancia; public static ClaseSingletonEjemplo Instance() if (unicainstancia == null) unicainstancia = new ClaseSingletonEjemplo(); return unicainstancia; private ClaseSingletonEjemplo() ; Patrones GoF Composite Compone objetos en estructuras arborescentes para representar jerarquías as TODO-Partes Permite manejar indistintamente objetos individuales y composiciones de objetos 17

18 Composite Cliente Componente Operación() Adicionar(Componente) Remover(Componente) obtenerhijo(int) Hoja Operación() Composite Operación() Adicionar(Componente) Remover(Componente) obtenerhijo(int) hijos Para todo g en hijos: g.operación() Composite La estructura típica t es: Componente Declara la interface para objetos en la composición n y se encarga de acceder y manejar sus componentes hijo Hoja Representa objetos hoja (sin hijos) en la composición n y define un comportamiento específico Composite Almacena componentes hijo y define un comportamiento (adicionar, eliminar, modificar ) ) para sus componentes hijos 18

19 Composite Componente ObjetoGráfico Dibujar() Adicionar(ObjetoGráfico) Remover(ObjetoGráfico) obtenerhijo(int) Hoja Hoja Hoja Línea Texto Rectángulo Dibujar() Dibujar() Dibujar() En Dibujar() de figura: para todo g en el contenedor elementos g.dibujar() Composite elementos Figura Dibujar() Adicionar(ObjetoGráfico g) Remover(ObjetoGráfico g) obtenerhijo(int) Adicionar o remover g del contenedor elementos Patrones GoF Adapter Convierte la interface de una clase en otra interface que el cliente espera Permite a las clases trabajar juntas ya que de otra manera no lo podrían hacer debido a que las interfaces son incompatibles. 19

20 Adaptador (Adapter( Adapter/Wrapper) Se asegura de convertir la interface de una clase en otra que el cliente espera. Permite la colaboración de ciertas clases a pesar de tener interfaces incompatibles Se desea crear una clase reutilizable que debe colaborar con clases no relacionadas o imprevistas. La funcionalidad de Adaptador depende de la similitud entre la interfaz de las clases Objetivo y Adaptado. Adaptador Objetivo Define la interface de dominio específico que el cliente usa Cliente Colabora con los objetos que conforman la interface Objetivo Adaptado Define una interface necesita adaptarse Adaptador Adapta la interface interface Objetivo existente que Adaptado a la 20

21 Adaptador (Adapter( Adapter/Wrapper) Estructura 1: Herencia Múltiple Interface que el cliente espera Interface existente que se requiere adaptar Adapta la interface Adaptee al Target esperado usando herencia múltiple Adaptador (Adapter( Adapter/Wrapper) Estructura 2: Objeto Adaptador Interface que el cliente espera Interface existente que se requiere adaptar Adapta la interface Adaptee al Target esperado usando un objeto adaptador 21

22 Adaptador Cliente Objetivo Requerimiento() Adaptado RequerimientoEspecífico() implementación Adaptador Requerimiento() Realmente se invoca el RequerimientoEspecífico() Adaptador (Adapter( Adapter/Wrapper) Editor Cliente ElementoGrafico marco() crearmanipulador() Objetivo Adaptador return text.getextension ElemLinea marco() crearmanipulador() ElemTexto marco() crearmanipulador() +texto return new ManipuladorTexto Adaptado TextView getextension() 22

23 Adaptador (Adapter( Adapter/Wrapper) Objetivo, Cliente TreeDisplay getchildren(node) CreateGraphicNode(Node) display() BuildTree(Node n) Abstracta getchildren(n); for each child addgraphicnode(creategraphicnode(child)); buildtree(child) DirectoryTreeDisplay getchildren(node) creategraphicnode(node) adaptador FileSystemEntity adaptado Patrones GoF Observer Define una dependencia de uno a muchos entre objetos así que cuando un objeto cambia de estado, todos los objetos que dependen de él l son notificados para que se actualicen automáticamente. ticamente. 23

24 Patrones GoF Observer Define una dependencia de uno a muchos objetos de tal manera que cuando un objeto cambia su estado, todas sus dependencias son notificadas actualizándose de manera automática Se usa cuando una abstracción tiene dos aspectos y uno depende del otro. Encapsular estos dos aspectos en objetos separados permite actualizarlos y reutilizarlos de manera independiente. Cuando un cambio en un objeto requiere cambios en otros objetos asociados sin importar el tipo de esos cambios! Observer Sus principales componentes son: Sujeto: Puede tener asociados uno o más m s observadores Observador: Es notificado cuando el sujeto cambia de estado. Cada observador pregunta al sujeto acerca de su estado con el fin de sincronizar su estado con el del sujeto. 24

25 Observer a b c Observadores: N Observadores que cambian su presentación dependiendo de los datos del Sujeto x x x y x a b c z a b c Ejemplo: Uso de una interfaz gráfica para separar la presentación de la lógica de los datos Promedio a = 60 b = 30 c = 10 Sujeto Todos los Observadores son notificados de cualquier cambio en el estado del Sujeto cambio Notificación de Solicitudes, modificaciones Observer Conoce a todos sus Observadores Define una inteface actualizable para objetos que podrían ser notificados de cambios en el Sujeto Sujeto Asociar (Observador) Desasociar (Observador) Notificar() Mantiene un estado y nofitica a los Observadores de sus cambios SujetoConcreto estadosujeto darestado() modificarestado() observadores Observador Actualizar() Para todo o en observadores: o.actualizar() Implementa la Interface para mantener la actualización acorde con el estado del Sujeto sujeto ObservadorConcreto estadoobservador Actualizar() darestado() retorna estadosujeto estadoobservador= sujeto.darestado() 25

26 Observer Ejemplo de Implementación utilizando un Manejador del Cambio: (evita al sujeto tener las referencias de sus observadores) 26

PATRONES 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 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 detalles

Patrones de Diseño. Patrón estructural Adapter. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez)

Patrones de Diseño. Patrón estructural Adapter. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Patrones de Diseño Patrón estructural Adapter Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Propósito Convertir la interfaz de una clase en otra distinta que espera el cliente Permitir

Más detalles

Desarrollo de Aplicaciones Empresariales

Desarrollo de Aplicaciones Empresariales Diego Seco Material adaptado de: Eduardo Mosqueira y Óscar Pedreira {eduardo, opedreira}@udc.es LIDIA & LBD Universidade da Coruña 2014-1 Desarrollo de Aplicaciones Empresariales Patrones Gangof Four(GOF)

Más detalles

Patrones de Diseño Orientados a Objetos 1 Parte

Patrones de Diseño Orientados a Objetos 1 Parte Patrones de Diseño Orientados a Objetos 1 Parte Idea detrás del Diseño de Patrones "...describa un problema que sucede una y otra vez en nuestro entorno, y luego describa el núcleo de la solución a ese

Más detalles

Patrones de Diseño Orientados a Objetos

Patrones de Diseño Orientados a Objetos Patrones de Diseño Orientados a Objetos Idea detrás del Diseño de Patrones "...describa un problema que sucede una y otra vez en nuestro entorno, y luego describa el núcleo de la solución a ese problema,

Más detalles

Patrones de Diseño. Patrón estructural Composite. Técnicas de Programación - Curso 2007/08

Patrones de Diseño. Patrón estructural Composite. Técnicas de Programación - Curso 2007/08 Patrones de Diseño Patrón estructural Composite Técnicas de Programación - Curso 2007/08 Propósito Componer objetos en estructuras arbóreas para representar jerarquías todo-parte. Manipular todos los objetos

Más detalles

Aplicaciones Móviles. Unidad 2: Patrones de Diseño de Software

Aplicaciones Móviles. Unidad 2: Patrones de Diseño de Software INACAP Universidad Tecnológica de Chile Sede Santiago Centro Aplicaciones Móviles Unidad 2: Patrones de Diseño de Software Ing. Manuel López Ramos Unidad 1 Qué es un Patrón de Diseño de Software? Qué es

Más detalles

UNIDAD 4 IMPLEMENTACION DE PROPIEDADES DE LOS OBJETOS JAVA

UNIDAD 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 detalles

Idiom SimpleFactory Factory Method Abstract Factory Conclusiones

Idiom SimpleFactory Factory Method Abstract Factory Conclusiones Tema 3.3.1 Patrones: Factory Ingeniería del Software II J. Peña (Teoría) Índice Introducción Idiom SimpleFactory Factory Method Abstract Factory Conclusiones Introducción Factory no es un patrón, sino

Más detalles

PATRONES DE DISEÑO. Mtro. Omar Zárate

PATRONES DE DISEÑO. Mtro. Omar Zárate PATRONES DE DISEÑO http://ozarate.net PATRONES DE DISEÑO El concepto promovido por Alexander fue retomado en el software y popularizado en el libro Design Patterns: Elements of Reusable Object Oriented

Más detalles

Patrones de Diseño. Patrones de creación. Técnicas de Programación - Curso 2007/08

Patrones de Diseño. Patrones de creación. Técnicas de Programación - Curso 2007/08 Patrones de Diseño Patrones de creación Técnicas de Programación - Curso 2007/08 Patrones de creación Introducción Abstraen el proceso de instanciación Encapsulan conocimiento sobre qué clases concretas

Más detalles

Concurso: Cuánto sabes de JAVA?

Concurso: Cuánto sabes de JAVA? Concurso: Cuánto sabes de JAVA? Motivación: o Para cambiar el ritmo de las jornadas y que no todas las actividades sean charlas o Recordar conocimientos y aprender algo nuevo. o Las preguntas pueden ayudarnos

Más detalles

Introducción a los Patrones de Diseño de Software

Introducción a los Patrones de Diseño de Software Introducción a los Patrones de Diseño de Software Unidad 1 Patrones de Diseño de Software Introducción Diseño Orientado a Objetos El objetivo del Diseño Orientado a Objetos es resolver un problema No se

Más detalles

Federico Peinado

Federico 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 detalles

Clases abstractas e interfaces en Java

Clases abstractas e interfaces en Java Clases abstractas e interfaces en Java Clases abstractas public abstract class Figura { private String _nombre; public Figura (string nombre) { _nombre = nombre; final public boolean mayor_que (Figura

Más detalles

Patrones 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. 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 detalles

Patrones de Diseño. Diseño y Arquitectura de Software Grado en Ingeniería de Software. Universidad Rey Juan Carlos

Patrones de Diseño. Diseño y Arquitectura de Software Grado en Ingeniería de Software. Universidad Rey Juan Carlos Patrones de Diseño Diseño y Arquitectura de Software Grado en Ingeniería de Software Universidad Rey Juan Carlos Carlos E. Cuesta carlos.cuesta@urjc.es 1 Índice Introducción Clasificación Patrones Creacionales

Más detalles

Programación 4. Diseño Patrones de Diseño

Programación 4. Diseño Patrones de Diseño Programación 4 Diseño Patrones de Diseño Contenido Introducción Patrones de Diseño Singleton Composite State Observer Programación 4 Diseño: Patrones de Diseño www.fing.edu.uy/inco/cursos/prog4 2012 2

Más detalles

Julio Ariel Hurtado Alegría. 8 de abril de 2013

Julio Ariel Hurtado Alegría. 8 de abril de 2013 Julio Ariel Hurtado Alegría 8 de abril de 2013 Julio A. Hurtado A. Universidad del Cauca 1 / 40 Contenido Introducción Julio A. Hurtado A. Universidad del Cauca 2 / 40 La vida real está llena de esquemas

Más detalles

Tema 6 Patrones de Diseño. Programación Orientada a Objetos Curso 2010/2011

Tema 6 Patrones de Diseño. Programación Orientada a Objetos Curso 2010/2011 Tema 6 Patrones de Diseño Programación Orientada a Objetos Curso 2010/2011 Contenido Introducción a los patrones de diseño. Patrón del Método plantilla. Patrón Composición. Patrón Estrategia. Clases anónimas

Más detalles

El patrón Composite (Compuesto) Propósito Componer los objetos a una estructura de jerarquía de relación partetodo.

El patrón Composite (Compuesto) Propósito Componer los objetos a una estructura de jerarquía de relación partetodo. Definición más precisa de los patrones Un patrón del diseño nomina, abstrae y identifica los aspectos claves de un diseño común para crear un diseño orientado a objetos reutilizable. Son descripciones

Más detalles

Universidad Tecnológica Emiliano Zapata Tecnologías De la Información Y comunicación Área Sistemas informáticos

Universidad Tecnológica Emiliano Zapata Tecnologías De la Información Y comunicación Área Sistemas informáticos Universidad Tecnológica Emiliano Zapata Tecnologías De la Información Y comunicación Área Sistemas informáticos Rivera Figueroa Gerardo René Alvares Flores Jairo Ángeles Pastor Luis Eduardo Gonzales Sarabia

Más detalles

Polimorfismo Java y Servicios Web I Master en Ingeniería Matemática

Polimorfismo Java y Servicios Web I Master en Ingeniería Matemática Polimorfismo Java y Servicios Web I Master en Ingeniería Matemática Manuel Montenegro Dpto. Sistemas Informáticos y Computación Desp. 467 (Mat) montenegro@fdi.ucm.es Contenidos Introducción. Conversión

Más detalles

18. Interfaces Declaración de una interfaz

18. Interfaces Declaración de una interfaz Programación orientada a objetos con Java 191 18. Interfaces Objetivos: a) Definir el concepto de interfaz b) Interpretar el código fuente de una aplicación Java donde aparecen interfaces c) Construir

Más detalles

Patrones Creacionales Builder. Patrones Creacionales Abstract Factory. Patrones Creacionales Singleton. Patrones Creacionales Prototype

Patrones Creacionales Builder. Patrones Creacionales Abstract Factory. Patrones Creacionales Singleton. Patrones Creacionales Prototype Temario Patrones de Diseño de Software Fundamentos de Ingeniería de SW Jocelyn Simmonds GOF: Patrones Creacionales Patrones Estructurales ILI-236 (JS) Patrones II 1 / 31 ILI-236 (JS) Patrones II 2 / 31

Más detalles

Programación orientada a objetos

Programació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 detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Centro 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 detalles

Tutorial de C# Delegados y Eventos. Por: Óscar López, M.Sc.

Tutorial de C# Delegados y Eventos. Por: Óscar López, M.Sc. Tutorial de C# Delegados y Eventos Por: Óscar López, M.Sc. olopez@uniandino.com.co DELEGADOS Delegados Son unos objetos que implícitamente extienden de System.Delegate y definen un tipo referencia soportado

Más detalles

Clases Abstractas e Interfaces

Clases Abstractas e Interfaces Clases Abstractas e Interfaces Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Aprender a crear y utilizar clases y métodos abstractos

Más detalles

CLASE 9: DISEÑO CON PATRONES. Universidad Simón Bolívar. Ing. de Software. Prof. Ivette C. Martínez

CLASE 9: DISEÑO CON PATRONES. Universidad Simón Bolívar. Ing. de Software. Prof. Ivette C. Martínez CLASE 9: DISEÑO CON PATRONES Universidad Simón Bolívar. Ing. de Software. Prof. Ivette C. Martínez Diseño de Objetos Identificar requerimientos, crear un modelo del dominio, agregar métodos a las clases

Más detalles

Herencia y Polimorfismo

Herencia 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 detalles

Patrón Façade Patrón Template Method Conclusiones

Patrón Façade Patrón Template Method Conclusiones Tema 3.3.1 Patrones: Façade y Template Method Ingeniería del Software II J. Peña (Teoría) Índice Patrón Façade Patrón Template Method Conclusiones Índice Patrón Façade Patrón Template Method Conclusiones

Más detalles

Derechos de Acceso: COMPOSICION

Derechos de Acceso: COMPOSICION CLASES Una clase es un tipo definido por el usuario que describe los atributos y los métodos de los objetos que se crearan a partir de la misma. class nombre_clase cuerpo de la clase Derechos de Acceso:

Más detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Centro 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 detalles

Taller de Programación I. Tema 10: Herencia en Java

Taller 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 detalles

Tema 1. Herencia y Polimorfismo

Tema 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 detalles

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 3 Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Definición de tipo genérico Hablamos de un tipo genérico cuando el tipo en cuestión depende

Más detalles

Capitulo 2. Marco Teórico

Capitulo 2. Marco Teórico Capitulo 2. Marco Teórico En el presente capítulo se describirán los conceptos utilizados para el desarrollo de ésta tesis. Entre los conceptos a mencionar se encuentran Patrones de Diseño, los Principios

Más detalles

Patrones de Diseño. (...o bien, que tiene que ver la costura con el software...) Universidad de los Andes Demián Gutierrez Marzo

Patrones de Diseño. (...o bien, que tiene que ver la costura con el software...) Universidad de los Andes Demián Gutierrez Marzo Patrones de Diseño (...o bien, que tiene que ver la costura con el software...) Universidad de los Andes Demián Gutierrez Marzo 2010 1 Diseño Arquitectónico Diseño Arquitectónico Arquitectura del Software

Más detalles

Modelado Estructural F E B R E R O,

Modelado Estructural F E B R E R O, Modelado Estructural F E B R E R O, 2 0 1 4 Modelado Estructural Sirve para describir los diferentes tipos y relaciones estáticas existentes entre los diferentes objetos de un sistema. A la hora de desarrollar

Más detalles

Ingeniería del software I Patrones de Diseño

Ingeniería del software I Patrones de Diseño Qué es un Patrón de Diseño? Ingeniería del software I Patrones de Diseño Los patrones de diseño capturan soluciones a problemas particulares de diseño. abstraen estructuras de diseño recurrentes Incorporan

Más detalles

Patrones de Diseño. Patrón de comportamiento Observer. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez)

Patrones de Diseño. Patrón de comportamiento Observer. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Patrones de Diseño Patrón de comportamiento Observer Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Propósito Define una dependencia de uno-a-muchos entre objetos de forma que, cuando

Más detalles

Patrones de Diseño. Patrón de comportamiento Iterator. Técnicas de programación - Curso 2008/09 (Esther Guerra Sánchez)

Patrones de Diseño. Patrón de comportamiento Iterator. Técnicas de programación - Curso 2008/09 (Esther Guerra Sánchez) Patrones de Diseño Patrón de comportamiento Iterator Técnicas de programación - Curso 2008/09 (Esther Guerra Sánchez) Propósito Proporcionar acceso secuencial a los elementos de un agregado, sin exponer

Más detalles

Definición. Mónica E. García García Feb 07

Definición. Mónica E. García García Feb 07 Tema 11: Herencia 0 Definición Cuando inicialmente se modelan dos cosas y se tienen datos duplicados y además pudiera darse que el número de métodos también es similar así como la implementación, se requiere

Más detalles

3.1 Introducción a TDA y OO. Capítulo III. Tipos de Datos Abstractos, Orientación a Objetos y Lenguaje Java

3.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 detalles

Patrones de diseño para C# Los 23 modelos de diseño

Patrones de diseño para C# Los 23 modelos de diseño 38 Patrones de diseño para C# Los 23 modelos de diseño El objeto Catálogo puede utilizar estas subclases concretas para instanciar los productos. No obstante si fuera necesario incluir nuevas clases de

Más detalles

Patrones de Diseño. Patrón estructural Composite. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez)

Patrones de Diseño. Patrón estructural Composite. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Patrones de Diseño Patrón estructural Composite Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Propósito Componer objetos en estructuras arbóreas para representar jerarquías todo-parte.

Más detalles

IMPLEMENTACIÓ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 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 detalles

Clases y Objetos en C++

Clases y Objetos en C++ Informática II Clases y Objetos en C++ Introducción Las variables de los tipos fundamentales de datos no son suficientes para modelar adecuadamente objetos del mundo real. alto, ancho y longitud para representar

Más detalles

El concepto de Java Package Encapsulation

El concepto de Java Package Encapsulation El concepto de Java Package encapsulation no es conocido por todos. Todos los desarrolladores conocemos que existe public, private, protected y package visibility como operadores de ámbito. Sin embargo

Más detalles

Patrones de Diseño. Patrón de comportamiento Strategy. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez)

Patrones de Diseño. Patrón de comportamiento Strategy. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Patrones de Diseño Patrón de comportamiento Strategy Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Propósito Definir una familia de algoritmos, encapsularlos y hacerlos intercambiables

Más detalles

Patrones de Diseño. Patrones de creación. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez)

Patrones de Diseño. Patrones de creación. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Patrones de Diseño Patrones de creación Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Patrones de creación Introducción Abstraen el proceso de instanciación Encapsulan conocimiento sobre

Más detalles

Web Frameworks y patrones de diseño

Web Frameworks y patrones de diseño Web Frameworks y patrones de diseño Ingeniería del software Universidad de Los Andes Nerio Moran, Alvaro Araujo 29 de Enero,2018 Ingenieria del software Universidad de Los Andes 29 de Enero,2018 1 / 26

Más detalles

Patrones de Diseño. Ing. Miguel Angel Cedeño Garcidueñas

Patrones de Diseño. Ing. Miguel Angel Cedeño Garcidueñas Patrones de Diseño Ing. Miguel Angel Cedeño Garcidueñas miguelcedega@correo.fie.umich.mx Patrones de Diseño Diseñar software orientado a objetos es difícil, pero diseñar software orientado a objetos reutilizable

Más detalles

HOJA DE EJERCICIOS 4 INTERFACES Y CLASES ABSTRACTAS EN JAVA Y C++

HOJA DE EJERCICIOS 4 INTERFACES Y CLASES ABSTRACTAS EN JAVA Y C++ Estructura de la Información en Programación I.T.I.G., Matemáticas. Curso 2009/2010 Nombre:... Fecha: / 12 / 2009 HOJA DE EJERCICIOS 4 INTERFACES Y CLASES ABSTRACTAS EN JAVA Y C++ Esta hoja de ejercicios

Más detalles

Clases y herencia. FJP Unidad 8. Diseño de clases

Clases y herencia. FJP Unidad 8. Diseño de clases Clases y herencia FJP Unidad 8 Encapsulamiento Diseño de clases El encapsulamiento provee protección de atributos y métodos definidos en una clase de forma tal que comportamiento de objetos de una clase

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS 10/02/2009. Examen de Java. Nombre: DNI: Titulación:

PROGRAMACIÓN ORIENTADA A OBJETOS 10/02/2009. Examen de Java. Nombre: DNI: Titulación: Examen de Java Nombre: DNI: Titulación: 1. Cómo podemos compilar desde la línea de comandos la clase Java A que utiliza una librería empaquetada bd.jar? 2. Indica si es correcto el siguiente código. Justifica

Más detalles

2. Tratamiento de objetos con JAVA

2. Tratamiento de objetos con JAVA 2. Tratamiento de objetos con JAVA David Contreras Bárcena (ETSI) - Comillas 71 2.1 Ciclo de Vida de los Objetos Los objetos tienen un tiempo de vida y consumen recursos durante el mismo. Cuando un objeto

Más detalles

Programación orientada a objetos. Resumen de Temas Unidad 5: Herencia

Programació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 detalles

Patrones de Diseño. Patrón de comportamiento Iterator. Técnicas de Programación - Curso 2007/08

Patrones de Diseño. Patrón de comportamiento Iterator. Técnicas de Programación - Curso 2007/08 Patrones de Diseño Patrón de comportamiento Iterator Técnicas de Programación - Curso 2007/08 Propósito Proporcionar acceso secuencial a los elementos de un agregado, sin exponer su representación interna

Más detalles

Patrones de Software para la Asignación de Responsabilidades

Patrones de Software para la Asignación de Responsabilidades Patrones de Software para la Asignación de Responsabilidades Unidad 2 Patrones de Diseño de Software Patrones Un patrón es una descripción de un problema y cómo resolverlo Descripción Escenario Solución

Más detalles

Java interface y extensibilidad

Java interface y extensibilidad En Java el uso de interfaces es algo común en la programación del día a día. Sin embargo también es bastante común tener muchas dudas de para que sirve un interface. Normalmente nos podemos encontrar con

Más detalles

Java Singleton. Ejemplo de Java Singleton (Patrones y ClassLoaders)

Java Singleton. Ejemplo de Java Singleton (Patrones y ClassLoaders) Como ya he comentado en varias ocasiones el conocimiento de los patrones de diseño es algo clave a la hora de abordar desarrollos y de solucionar problemas.hoy voy a hablar un poco a detalle de uno de

Más detalles

Unidad 2. Elementos Intermedios del Lenguaje

Unidad 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 detalles

DISEÑAR APLIC I ACIO I N O ES 1

DISEÑAR APLIC I ACIO I N O ES 1 DISEÑAR APLICACIONES 1 El análisis y diseño de sistemas de software es un área amplia y compleja. En este capítulo se expone una pequeña introducción a la metodología de análisis y diseño. El estudio detallado

Más detalles

Reutilización con Delegación y Herencia

Reutilizació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 detalles

A3F. Polimorfismo. Carlos Fontela

A3F. Polimorfismo. Carlos Fontela Polimorfismo Carlos Fontela cfontela@fi.uba.ar Temario Métodos virtuales Métodos abstractos Polimorfismo como concepto Interfaces Clases internas 2c2009 2 Métodos virtuales (1) 2c2009 3 Métodos virtuales

Más detalles

Por ejemplo, considerando la jerarquía de herencia de Figuras Geométricas de la siguiente figura, es posible hacer uso del concepto de polimorfismo.

Por ejemplo, considerando la jerarquía de herencia de Figuras Geométricas de la siguiente figura, es posible hacer uso del concepto de polimorfismo. POLIMORFISMO El polimorfismo es la característica de la programación orientada a objetos que permite modificar la instancia de un objeto en tiempo de ejecución basado en una jerarquía de herencia. De esta

Más detalles

Programación II Tipos Abstractos de Datos(TAD)

Programación II Tipos Abstractos de Datos(TAD) Programación II Tipos Abstractos de Datos(TAD) Definición Un Tipo Abstracto de Datos es un conjunto de valores y de operaciones definidos mediante una especificación independiente de cualquier representación.

Más detalles

Programación Orientada a Objetos con Java

Programación Orientada a Objetos con Java Programación Orientada a Objetos con Java M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx Diseño orientado a objetos El diseño orientado a objetos surge de la idea de traspasar a los sistemas de software,

Más detalles

Abstract Factory (Fábrica abstracta -GoF)

Abstract Factory (Fábrica abstracta -GoF) Franco Guidi Polanco 1 Abstract Factory (Fábrica abstracta -GoF) Descripción Presenta una interfaz para la creación de familias de productos, de forma tal que el cliente que las utiliza no requiera conocer

Más detalles

POO: Clases y objetos

POO: Clases y objetos POO: Clases y objetos Programación de aplicaciones 1 Introducción En los lenguajes de programación orientados a objetos, tenemos la posibilidad de extender el lenguaje mediante la creación de nuevo tipos,

Más detalles

Introducción a Java. Fernando Cerezal López. 24 Noviembre 2005

Introducción a Java. Fernando Cerezal López. 24 Noviembre 2005 24 Noviembre 2005 disponibles de acceso public private protected de tipo static abstract final modificadores más avanzados que no vamos a ver... Clase Sintaxis modificadores class nombreclase{} Tipos primitivos

Más detalles

A3F. Polimorfismo. Carlos Fontela

A3F. 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 detalles

CLASE 9: DISEÑO CON PATRONES. Universidad Simón Bolívar. Ing. de Software. Prof. Ivette C. Martínez

CLASE 9: DISEÑO CON PATRONES. Universidad Simón Bolívar. Ing. de Software. Prof. Ivette C. Martínez CLASE 9: DISEÑO CON PATRONES Universidad Simón Bolívar. Ing. de Software. Prof. Ivette C. Martínez Diseño de Objetos Identificar requerimientos, crear un modelo del dominio, agregar métodos a las clases

Más detalles

PROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; }

PROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; } PROGRAMACIÓN EN JAVA { una línea para definir, crear o ejecutar ; } JFC Y API SPECIFICATIONS OBJECT INTERFACE ABSTRACT IMPLEMENTS EXTENDS NEW EXTENDS (Hasta que una clase derivada deje de ser ABSTRACT)

Más detalles

Java Interfaces y el concepto de simplicidad

Java Interfaces y el concepto de simplicidad El concepto de Java Interfaces es de sobra conocido por todos. Qué son los Java interfaces?. Esta es una muy buena pregunta.la mayor parte de las veces cuando uno mira la definición de interface suele

Más detalles

Federico Peinado

Federico 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 detalles

! Fundamentos de la POO. ! Comportamiento y estado. ! Clases y objetos en Java

! Fundamentos de la POO. ! Comportamiento y estado. ! Clases y objetos en Java Introducción a la programación orientada a objetos Curso de Programación en Java! Fundamentos de la POO! Comportamiento y estado! Clases y objetos en Java Contenidos Luis Guerra l.guerra@upm.es Enero 2012

Más detalles

Algoritmos y Estructuras de Datos Iteradores. Guillermo Román Díez

Algoritmos y Estructuras de Datos Iteradores. Guillermo Román Díez Algoritmos y Estructuras de Datos Iteradores Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Introducción 1/26 Iteradores Es muy común

Más detalles

CC61J / CC Taller de UML Apuntes de Clase

CC61J / CC Taller de UML Apuntes de Clase CC61J / CC5404 - Taller de UML Apuntes de Clase Prof. Andrés Muñoz Ordenes 08/06/2011 Agenda Motivación Diseño del Problema Diagrama de Colaboración Conceptos Notación y Sintaxis Usos Ejemplo: Caja de

Más detalles

PNFSI. Asignatura: Desarrollo de Software. Tema 1: Programación Orientada a Objetos

PNFSI. Asignatura: Desarrollo de Software. Tema 1: Programación Orientada a Objetos PNFSI Asignatura: Desarrollo de Software Tema 1: Programación Orientada a Objetos Ing. Zamantha González Abril, 2008 Contenido Conceptos básicos Clase Objeto o instancia Atributos Métodos Constructores

Más detalles

75-62 Técnicas de Programación Concurrente II 2007

75-62 Técnicas de Programación Concurrente II 2007 FIUBA 75-62 Técnicas de Programación Concurrente II 2007 Trabajo Práctico 1 Repaso General de Java Ing. Osvaldo Clúa Los siguientes proyectos están dirigidos a un repaso de Java básico. En los TP posteriores

Más detalles

Curso de Java orientado a Android Parte 2

Curso de Java orientado a Android Parte 2 Curso de Java orientado a Android Parte 2 Introducción Java es un lenguaje de programación orientado a objetos (OOP). En este post cubriremos las características y principios básicos de la programación

Más detalles

HERENCIA (2ª parte) En Java todas las clases derivan de otra, aunque no se diga explícitamente.

HERENCIA (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 detalles

Patrón Fábrica Abstracta. Julio Ariel Hurtado Alegría Ingeniería de Software II 2015

Patrón Fábrica Abstracta. Julio Ariel Hurtado Alegría Ingeniería de Software II 2015 Patrón Fábrica Abstracta Julio Ariel Hurtado Alegría Ingeniería de Software II 2015 Contenido Descripción General Problema Solución Participantes Ejemplo: Fábrica de Carros Ejemplo: RelojVisual 2 Descripción

Más detalles

Curso de Java POO: Programación orientada a objetos

Curso 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 detalles

UNIVERSIDAD 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) 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 SISTEMAS 1. INFORMACIÓN GENERAL

Más detalles

Tema 6. Patrones de diseño.

Tema 6. Patrones de diseño. Ingeniería del Software II 2011 Tema 6. Patrones de diseño. Introducción. Durante el diseño Orientado a Objetos es frecuente encontrarse repetidamente con ciertos tipos de problemas, para analizar, compartir

Más detalles

Uso de Patrones de diseño

Uso de Patrones de diseño Uso de Patrones de diseño jsr@.upm.es - 1 - Relaciones La importancia de la relaciones en los diseños de orientación a objetos. Identificación de situaciones comunes. Necesidad de reciclar ideas no código

Más detalles

CLASE 9 -HERENCIA Y POLIMORFISMO

CLASE 9 -HERENCIA Y POLIMORFISMO CLASE 9 -HERENCIA Y POLIMORFISMO INTRODUCCIÓN Diferentes tipos de objetos con características y comportamiento comunes. lado1 lado2 lado3 color de línea color de relleno punto Triángulo Círculo radio color

Más detalles

Curso de Java POO: Programación orientada a objetos

Curso 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 detalles

Herencia. public class Persona { private String nombre; private char sexo; public Persona() { nombre = new String(); sexo = ' '; }

Herencia. public class Persona { private String nombre; private char sexo; public Persona() { nombre = new String(); sexo = ' '; } Herencia Al definir una clase, se definen las características o variables y los métodos y conductas que pueden poseer todos los objetos que sean creados a partir de la clase. Sin embargo existen clases

Más detalles

Conceptos Básicos. Programación Orientada a Objetos 2

Conceptos Básicos. Programación Orientada a Objetos 2 Programación Orientada a Objetos Conceptos Básicos de Objetos Ing. Julio Ernesto Carreño Vargas MsC. Conceptos Básicos Las aproximaciones ADOO y POO, proveen a los objetos como el principal medio para

Más detalles

Examen Teórico. Convocatoria de Febrero de 2016

Examen Teórico. Convocatoria de Febrero de 2016 Examen Teórico Convocatoria de Febrero de 2016 Nombre: DNI: Grupo: 1. Responde a las siguientes cuestiones: a) Un programador Java empaqueta el código de un proyecto en el fichero videojuego.jar cuya clase

Más detalles

PRÁCTICA No 4 POO Encapsulación. El alumno conocerá los principios de la encapsulación, y el uso de constructores para la inicialización de datos

PRÁCTICA No 4 POO Encapsulación. El alumno conocerá los principios de la encapsulación, y el uso de constructores para la inicialización de datos Objetivos El alumno conocerá los principios de la encapsulación, y el uso de constructores para la inicialización de datos Introducción En esta práctica se abarcará el concepto de la encapsulación, así

Más detalles

Herencia 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 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 detalles