2.2.- Paradigmas de la POO

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "2.2.- Paradigmas de la POO"

Transcripción

1 2.2.- Paradigmas de la POO Los principios propios de la orientación a objetos son: Abstracción de Datos Encapsulamiento Ocultamiento Herencia Polimorfismo Cualquier lenguaje POO tiene que poseer estos conceptos Abstracción Visión de un problema que extrae la información esencial para un determinado propósito, omitiendo los detalles menos significativos. Puede existir diferentes niveles de abstracción. Existe dos tipos: Funcional De datos Un objeto es una abstracción de la realidad. 58

2 2.2.- Encapsulamiento Es un agrupamiento bajo un mismo nombre de la información y las operaciones que acceden a ella. Materializa la abstracción. Los objetos son encapsulaciones de abstracciones. Paquete de información y operaciones. hora día numserie modelo Ocultamiento de la Información Principio por el cual solo es accesible el interfaz del objeto. Los métodos no son utilizados por su implementación (contenido), sino por su interfaz (aspecto). Concepto complementado con el de encapsulamiento. Objetivo final: Restringir el acceso a los métodos. NOTA: Para más información acerca David de ocultamiento Contreras Bárcena consultar - ICAI el manual de Java. (pág 103) 60

3 2.2.- Ocultamiento de la Información En java se consigue gracias a los modificadores de acceso. Estos pueden afectar a la clase, a los atributos y/o métodos. Modificadores: public: Objetos de todas las clases pueden acceder al método con este modificador. protected: Sólo objetos de las clases heredadas y las del paquete. (defecto): Sólo objetos de las clases del paquete. private: Sólo objetos de la misma clase Herencia La herencia permite crear una clase nueva que tenga el mismo comportamiento que otra, y además extienda o adapte ese comportamiento a unas necesidades específicas. Permite especializar o refinar una clase, y/o generalizar conceptos de otras clase ya existentes. En la especialización, la nueva clase creada tomará o heredará los atributos y métodos de la clase padre, los cuales se añadirán a los definidos por la propia clase. 62

4 2.2.- Herencia Nos piden crear un modelo informático de mostrarmarca una fábrica de relojes. Su modelo de reloj es marca -- único: solo muestra la hora hora y el día día traducirfrecuencia numserie incrementardía: mostrardía mostrarhora limpiarpantalla Para ello, diseñaremos este nuevo modelo de reloj apoyándonos en el concepto de herencia, el cual nos permite la reutilización de software Clase Reloj HERENCIA Clase RelojCrono Dicha fábrica desea sacar al mercado un nuevo modelo de reloj con cronómetro Definiremos la nueva clase con las nuevas características que introduce al reloj ya existente cronohora cronomin Las instancias que cronseg creemos de la clase mostrarcrono RelojCrono tendrán inicicializarcrono como datos y métodos activarcrono los de la clase Reloj y los de su clase Herencia class Reloj { //atributos static String MARCA; //atributo de clase String hora; //Tomamos un tipo String para simplificar String dia; //idem int numserie; //métodos... } class RelojCrono extends Reloj { //atributos int cronohora; int cronomin; int cronseg; //métodos... } Únicamente se definen los atributos y métodos que añaden o refinan el comportamiento. Las ocurrencias de la clase RelojCrono dispondrán de los atributos y métodos definidos en su clase más los de la clase padre. 64

5 2.2.- Herencia Múltiple Se da este concepto cuando una clase hereda de varias superclases. La mayoría de los lenguajes no soportan esta característica. Clase MAMIFERO Clase HOMBRE Clase LOBO Clase HOMBRE LOBO Polimorfismo Consiste en utilizar un mismo símbolo para fines distintos. Respuesta distinta frente a un mensaje dependiendo de la naturaleza del objeto. 66

6 2.2.- Polimorfismo Supongamos que tenemos relojes, uno analógico y otro digital. Cada reloj tiene un método para adelantar una hora. No tiene ningún sentido que si los dos hacen lo mismo (cada uno a su manera), se tenga que llamar con nombres distintos. Cada vez que invoquemos el método adelantarhora de cada reloj, cada uno lo hará a su manera. Tenemos distintos objetos gráficos (cuadrados, circunferencias, triángulos,...) y todos tienen un método pintar. Cuando yo lance un mensaje sobre cada objeto invocando el método pintar, cada uno se pintará a su manera Polimorfismo en la herencia: Redefinición Cuando se crea una clase heredada de una superclase, heredará todos los métodos. Si la implementación de uno de los métodos no se ajusta al comportamiento de la nueva clase, se podrá variar dicha implementación. Se dice entonces que se está redefiniendo el método. Habrá que diferenciar esta idea del concepto de sobrecarga. Se dice que se está sobrecargando un método cuando se define otro con el mismo nombre pero con argumentos diferentes. 68

7 2.2.- Polimorfismo en la herencia: Redefinición Cuando el polimorfismo se produce entre las clases heredadas, los mensajes son tratados de la siguiente forma: A pintar() A pintar() B C mic es una ocurrencia de la clase C B pintar() C pintar() mic.pintar(); mic.pintar(); Clases Abstractas Las clases abstractas son aquellas que se utilizan en la herencia y sólo las utilizaremos para que definan el interfaz (qué hacen) y/o la implementación (cómo lo hacen) de las clases heredadas. No se podrá crear ocurrencias de ellas. Se utilizan para que las características de esta clase estén disponibles para sus clases heredadas. Es una forma de generalizar un comportamiento y, por lo tanto, reutilizar código. 70

8 Abstractas Supongamos que queremos modelizar todos los vehículos a motor (coches, motos, lanchas,...). VehículosAMotor herencia Coches Motos Lanchas NOTA: Para ver David ejemplos Contreras en Bárcena JAVA. (pág - ICAI 73) Existe en la vida real algún objeto que sea un vehículo a motor? NO Existen coches, motos, etc... La clase VehiculosAMotor nos servirá para reutilizar sus métodos y datos, pero no para crear ocurrencias de ella. 71 Abstractas - Interfaz Las clases abstractas nos presentarán el interfaz, es decir, a qué métodos son capaces de responder las ocurrencias de sus clases heredadas. La implementación de ese interfaz podrá estar definida en la clase abstracta o en la subclase. Si una clase abstracta sólo define el interfaz, se dice que es una clase abstracta pura (en Java se denominan interfaces). Se permite la herencia múltiple de clases interfaces. 72

9 Abstractas - Clases y tipos Se habla que una clase define la clase o el tipo... Clase, cuando se defina cómo se implementa el objeto (estado interno y operaciones). Tipo, cuando se haga referencia solamente a su interfaz, conjunto de peticiones a las que puede responder. Por lo tanto, la clase define también el tipo de objeto. 73 Abstractas - Clases y tipos Se podrá hablar también de herencia de clase y tipo: Herencia de Clase: Mecanismo para compartir código y representación (comportamiento). Herencia de Tipo: Un objeto puede ser usado en lugar de otro, ya que define lo que hace y no cómo lo hace. La herencia de tipo tiene que llevar asociado el concepto de polimorfismo en la herencia, ya que si sólo se define lo que va a hacer, alguna clase tendrá que redefinir dicho método e implementarlo. Estos métodos deberán ser definidos como abstractos. 74

10 Abstractas - Clases y tipos Si nos basamos en la herencia de tipo, vemos que podemos utilizar objetos en lugar de otros (define lo que va a hacer, pero no cómo). Yo podré referirme a la clase abstracta, aun cuando desee VehículosAMotor referirme a alguno de sus hijos. La clase abstracta se utiliza en lugar de las clases heredadas. Estos conceptos se aclararán cuando se vea el diseño (DOO). Herencia de tipo Clase Abstracta Pura (sólo interfaz) Coches Motos Lanchas NOTA: Para ver David ejemplos Contreras en Bárcena JAVA. (pág - ICAI 73) 75 Abstractas Puras - Interfaces A las clases abstractas puras, en JAVA, las denominamos interfaces. Todos los métodos de un interface son abstractos, por lo que deberán ser implementados por las clases heredadas. Permiten hacer visible las similitudes entre dos clases sin modificar la jerarquía de clase. Fuerza a las clases a implementar ciertos métodos. Las interfaces proporcionan el mecanismo necesario para implementar la herencia múltiple. NOTA: Para ver David ejemplos Contreras en Bárcena JAVA. (pág - ICAI 74) 76

11 Bibliografía Introducción a la programación con JAVA-Un enfoque orientado a objetos David Arnow (Adisson Wesley) Perdita Stevens - Utilización de UML (Adisson Wesley) Craig Larman - UML y Patrones (Prentice Hall)

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 02830. Programación en Java Marzo 2010 Índice 1 Introducción a la POO 2 Herencia y polimorfismo 3 Empaquetado de proyectos

Más detalles

Programación Orientada a Objetos en Java

Programación Orientada a Objetos en Java Programación Orientada a Objetos en Java Curso 2006-2007 Tema 4 Herencia y Polimorfismo Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Herencia

Más detalles

Introducción a la Programación Orientada a Objetos

Introducción a la Programación Orientada a Objetos Introducción a la Programación Orientada a Objetos El paradigma imperativo. En un programa se tienen una serie de variables con las cuales operamos y modificamos mediante sentencias y funciones para producir

Más detalles

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS GUIA PROGRAMACIÓN ORIENTADA A OBJETOS 1. Por qué la P.O.O? R= A medida que se van desarrollando los lenguajes, se va desarrollando también la posibilidad de resolver problemas más complejos. En la evolución

Más detalles

Diseño orientado a los objetos

Diseño orientado a los objetos Diseño orientado a los objetos El Diseño Orientado a los Objetos (DOO) crea una representación del problema del mundo real y la hace corresponder con el ámbito de la solución, que es el software. A diferencia

Más detalles

POLIMORFISMO "una interfaz, múltiples métodos".

POLIMORFISMO una interfaz, múltiples métodos. "una interfaz, múltiples métodos". 20/02/2007 Polimorfismo 2 Indice Definición y caracteristicas Objetivos. SOBRRESCRITURA-SOBRECARGA SOBRECARGA Clases y métodos abstractos INTERFACES (herencia múltiple)

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 Sobrecarga de métodos Java permite la definición de dos o más métodos que tengan el mismo nombre, dentro de la

Más detalles

2. Conceptos básicos Abstracción La abstracción como un proceso mental natural La abstracción en el desarrollo de software

2. Conceptos básicos Abstracción La abstracción como un proceso mental natural La abstracción en el desarrollo de software 2. Conceptos básicos Hoy en día las aplicaciones son demasiado voluminosas y complejas para ser manejadas por una sola persona. Las aplicaciones de software son complejas porque modelan la complejidad

Más detalles

Yalù Galicia Hernàndez. Yalú Galicia Hdez. (FCC/BUAP)

Yalù Galicia Hernàndez. Yalú Galicia Hdez. (FCC/BUAP) Yalù Galicia Hernàndez Yalú Galicia Hdez. (FCC/BUAP) 1 Introducción Qué es la Programación Orientada a Objetos? Conceptos básicos Abstracción Jerarquía Encapsulación Objeto Clase Herencia Polimorfismo

Más detalles

Pilares de la Orientación a Objetos

Pilares de la Orientación a Objetos Pilares de la Orientación a Objetos Pilares de la Orientación a Objetos Abstracción Relaciones Herencia Encapsulamiento Abstracción La Abstracción es la propiedad que permite seleccionar las características

Más detalles

Programación en Java. Programación en OO

Programación en Java. Programación en OO Programación en OO Lección 4:Programación en OO 1. Herencia 2. Modificadores de Acceso 3. Interfaces Herencia Es la acción en la que una clase obtiene los métodos y propiedades definidos en otra clase,

Más detalles

CONCEPTOS FUNDAMENTALES DE LA ORIENTACION A OBJETOS

CONCEPTOS FUNDAMENTALES DE LA ORIENTACION A OBJETOS CAPITULO 3 CONCEPTOS FUNDAMENTALES DE LA ORIENTACION A OBJETOS 3.1. QUE ES LA PROGRAMACIÓN ORIENTADA A OBJETOS? La POO no es un lenguaje de programación. La POO es una nueva manera de "atacar" los problemas

Más detalles

Patrones de Diseño Orientados a Objetos 2 Parte

Patrones de Diseño Orientados a Objetos 2 Parte Patrones de Diseño Orientados a Objetos 2 Parte Patrón Observador Observer (Patrón de Comportamiento) Patrón Observador Observer Observador (en inglés: Observer) es un patrón de diseño que define una dependencia

Más detalles

PROGRAMACION ORIENTADA A OBJETOS CON PHP

PROGRAMACION ORIENTADA A OBJETOS CON PHP PROGRAMACION ORIENTADA A OBJETOS CON PHP COMO SE DEFINE EN PHP La programación orientada a objetos es una metodología de programación avanzada y bastante extendida, en la que los sistemas se modelan creando

Más detalles

Java Inicial (20 horas)

Java Inicial (20 horas) Java Inicial (20 horas) 1 Temario 1. Programación Orientada a Objetos 2. Introducción y Sintaxis Java 3. Sentencias Control Flujo 4. POO en Java 5. Relaciones entre Objetos 6. Polimorfismo, abstracción

Más detalles

Notación UML para modelado Orientado a Objetos

Notación UML para modelado Orientado a Objetos 1 Notación UML para modelado Orientado a Objetos 2 Notación UML para modelado Orientado a Objetos Índice 1.1. Qué es UML?.. 3 1.2. Por qué interesa UML en la asignatura de Programación Orientada a Objetos?3

Más detalles

Universidad de Cantabria corcuerp@unican.es

Universidad de Cantabria corcuerp@unican.es Herencia Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Aprender los conceptos de herencia Comprender la forma de derivar una

Más detalles

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Tipos de herencia Herencia y niveles de visibilidad Herencia y creación Redefinición de métodos Conversión

Más detalles

PHP y MySQL. Inicio: - Herencia - Palabra clave Final - Polimorfismo - Type Hinting - Abstracción de clases

PHP y MySQL. Inicio: - Herencia - Palabra clave Final - Polimorfismo - Type Hinting - Abstracción de clases PHP y MySQL Inicio: - Herencia - Palabra clave Final - Polimorfismo - Type Hinting - Abstracción de clases Herencia de Objetos La herencia permite crear muchas clases que son similares entre si, sin tener

Más detalles

UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS

UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS CURSO: JAVA BASICO PROFESOR: EMERSON CASTAÑEDA SANABRIA TEMA: Programación Orientada a Objetos OBJETIVOS: Familiarizarse con la Programación

Más detalles

Diagramas de Clase en UML 1.1

Diagramas de Clase en UML 1.1 Diagramas de Clase en UML. Francisco José García Peñalvo Licenciado en Informática. Profesor del Área de Lenguajes y Sistemas Informáticos de la Universidad de Burgos. fgarcia@.ubu.es Carlos Pardo Aguilar

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

Prácticas de Programación

Prácticas de Programación Prácticas de Programación Tema 1. Introducción al análisis y diseño de programas Tema 2. Clases y objetos Tema 4. Tratamiento de errores Tema 5. Aspectos avanzados de los tipos de datos Tema 6. Modularidad

Más detalles

Clases abstractas e interfaces

Clases abstractas e interfaces Clases abstractas e interfaces Clases abstractas Una clase abstracta es una clase que no se puede instanciar se usa únicamente para definir subclases Cuándo es una clase abstracta? En cuanto uno de sus

Más detalles

Repaso de las características más importantes de la programación Java y su adaptación a Android

Repaso de las características más importantes de la programación Java y su adaptación a Android Repaso de las características más importantes de la programación Java y su adaptación a Android 1. Entorno de programación en java 2. Variables y tipos de datos 3. Operaciones y operadores 4. Clases y

Más detalles

Índice. http://www.dicampus.es

Índice. http://www.dicampus.es Módulo 2 UML Índice Introducción a UML Lenguaje Unificado de Modelado (UML) Diagramas UML Diagramas de casos de uso Diagramas estructurales: Clases Diagramas estructurales: Objetos Diagramas de interacción:

Más detalles

Programación Orientada a Objetos INTRODUCCIÓN Y CONCEPTOS

Programación Orientada a Objetos INTRODUCCIÓN Y CONCEPTOS Programación Orientada a Objetos INTRODUCCIÓN Y CONCEPTOS Programación OO Vista Macro: La programación orientada a objetos trata sobre el desarrollo de software utilizando un paradigma que descompone el

Más detalles

Conceptos. ELO329: Diseño y Programación Orientados a Objetos. ELO 329: Diseño y Programación Orientados a Objetos

Conceptos. ELO329: Diseño y Programación Orientados a Objetos. ELO 329: Diseño y Programación Orientados a Objetos Conceptos ELO329: Diseño y Programación Orientados a Objetos 1 Paradigmas de Programación Historia: Los computadores parten cableados por hardware, Luego se introduce la programación en binario, Se desarrolla

Más detalles

INDICE. 2.2. Uso de la composición (I). Preservación de la ocultación... 11. 3.3. Utilización de miembros heredados (I). Atributos...

INDICE. 2.2. Uso de la composición (I). Preservación de la ocultación... 11. 3.3. Utilización de miembros heredados (I). Atributos... TEMA 9 INDICE 1. Relaciones entre clases.... 4 1.1. Composición... 5 1.2. Herencia... 6 1.3. Herencia o composición?... 7 2 Composición... 9 2.1. Sintaxis de la composición.... 9 Ejercicio resuelto...

Más detalles

Carrera: SCM - 0426 3-2-8. Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

Carrera: SCM - 0426 3-2-8. Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos. 1.- DATOS DE LA ASIGNATURA Nombre de la asignatura: Carrera: Clave de la asignatura: Horas teoría-horas práctica-créditos Programación orientada a objetos Ingeniería en Sistemas Computacionales SCM - 0426

Más detalles

Programación Orientada a Objetos

Programación Orientada a Objetos Programación Orientada a Objetos E.T.S.I. Telecomunicación Universidad de Málaga http://www.lcc.uma.es/ Contenido Introducción histórica Conceptos básicos de la Programación O. O. Conceptos avanzados de

Más detalles

Tutorial de UML. Introducción: Objetivos: Audiencia: Contenidos:

Tutorial de UML. Introducción: Objetivos: Audiencia: Contenidos: Tutorial de UML Introducción: El Lenguaje de Modelamiento Unificado (UML - Unified Modeling Language) es un lenguaje gráfico para visualizar, especificar y documentar cada una de las partes que comprende

Más detalles

Repetir el proceso para cada abstracción identificada hasta que el diseño este expresado en términos sencillos

Repetir el proceso para cada abstracción identificada hasta que el diseño este expresado en términos sencillos I. INTRODUCCIÓN El reciente aumento de aplicaciones en donde se utiliza la computadora ha sido posible debido a un hardware de bajo costo, por lo cual la demanda de software ha crecido de forma exponencial.

Más detalles

Introducción. Herencia y Polimorfismo. Ejemplos (I) Ejemplos (II) Control de Acceso. Herencia

Introducción. Herencia y Polimorfismo. Ejemplos (I) Ejemplos (II) Control de Acceso. Herencia Introducción Herencia y Polimorfismo Se pueden definir jerarquías de clases, con clases generales que definen el comportamiento común a unos objetos y clases específicas que sólo añaden o redefinen el

Más detalles

Tema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código

Tema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código Tema 6 Reutilización de código Programación 2015-2016 Programación - Tema 6: Reutilización de código 1 Tema 6. Reutilización de código Modularidad. Implementación de métodos. Uso de métodos. Programación

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! Clase! Objeto! Atributo o variable de instancia! Método! Instanciar/crear un objeto!

Más detalles

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011 EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011 1. (0,75 PUNTOS) Identificad a continuación las sentencias que son ciertas, descartando

Más detalles

Modelado Estático Avanzado (Generalizaciones) Diseño de Software Avanzado Departamento de Informática

Modelado Estático Avanzado (Generalizaciones) Diseño de Software Avanzado Departamento de Informática Modelado Estático Avanzado (Generalizaciones) Generalización y Clasificación Principio de sustitución: Extensión: todos los objetos de la subclase son también de la superclase. Intensión: la definición

Más detalles

Java: Clases Abstractas e Interfaces

Java: Clases Abstractas e Interfaces Clases abstractas e interfaces Java: Clases Abstractas e Interfaces Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile fguidi@ucv.cl A nivel conceptual,

Más detalles

Clases. Java: Clases y Objetos. Clases. Clases. Modificadores de clase. Definición de una clase. Cada objeto es un ejemplar de una clase

Clases. Java: Clases y Objetos. Clases. Clases. Modificadores de clase. Definición de una clase. Cada objeto es un ejemplar de una clase Java: Clases y Objetos Clases La unidad fundamental de programación en Java es la clase Un programa Java está formado por un conjunto de clases Una clase es una plantilla que describe un conjunto de objetos

Más detalles

Tema 2. Técnicas básicas de POO. Técnicas de Programación - Curso 2007/08

Tema 2. Técnicas básicas de POO. Técnicas de Programación - Curso 2007/08 Tema 2 Técnicas básicas de POO Técnicas de Programación - Curso 2007/08 Contenido Principios de POO Encapsulación Herencia Polimorfismo Ejemplos Técnicas básicas Delegación Uso de interfaces Interfaces

Más detalles

Analizar, diseñar, desarrollar e implementar soluciones orientadas a objetos utilizando encapsulamiento, herencia, polimorfismo y archivos.

Analizar, diseñar, desarrollar e implementar soluciones orientadas a objetos utilizando encapsulamiento, herencia, polimorfismo y archivos. Nombre de la asignatura: Programación Orientada a Objetos Créditos: 2-3- 5 Aportación al perfil Desarrollar, implementar y administrar software de sistemas o de aplicación que cumpla con los estándares

Más detalles

Principios de Diseño Orientado a Objetos

Principios de Diseño Orientado a Objetos Principios de Diseño Orientado a Objetos PRINCIPIOS DE DISEÑO DE CLASES PRINCIPIO ABIERTO- CERRADO (OCP): Un módulo debe ser abierto para extensión pero cerrado para modificación. Wikipidia: La noción

Más detalles

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida } REUTILIZACIÓN DE CLASES:MODELO DE HERENCIA EN JAVA Java soporta herencia simple pero no múltiple. Lo hace mediante el mecanismo de extensión de clase. A partir de él, una subclase se extiende (hereda)

Más detalles

Herencia e Interfaces

Herencia e Interfaces Herencia Introducción En C# cualquier dato es un objeto porque todos los tipos derivan implícitamente de este tipo, y heredan los métodos y campos definidos en dicha clase. Cada nuevo tipo tiene todo lo

Más detalles

Definición de clases: Herencia, polimorfismo, ligadura dinámica

Definición de clases: Herencia, polimorfismo, ligadura dinámica Tema 7 Definición de clases: Herencia, polimorfismo, ligadura dinámica Con alguna frecuencia es necesario definir clases de objetos entre las cuales hay elementos comunes. En una aplicación en la cual

Más detalles

MODULO DE PROGRAMACION JAVA Nivel Básico-Intermedio

MODULO DE PROGRAMACION JAVA Nivel Básico-Intermedio MODULO DE PROGRAMACION JAVA Nivel Básico-Intermedio Objetivo general: Introducir al participante en los conceptos y herramientas más importantes del lenguaje javo para la programación de objetos. Duración

Más detalles

2.1. Introducción al lenguaje Java

2.1. Introducción al lenguaje Java Bloque II. Elementos del lenguaje de programación Java 1.Introducción a los lenguajes de programación 2. Estructura de un programa 3. Datos y expresiones simples 4. Instrucciones de control 5. Entrada/salida

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez Encapsulamiento: Control de Acceso Clases en Java (1) UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO En Java se organizan las clases en paquetes

Más detalles

Asignaturas antecedentes y subsecuentes Programación III, Programación V

Asignaturas antecedentes y subsecuentes Programación III, Programación V PROGRAMA DE ESTUDIOS Programación IV Área a la que pertenece: Área Sustantiva Profesional Horas teóricas: 3 Horas prácticas: 2 Créditos: 8 Clave: F0166 Asignaturas antecedentes y subsecuentes Programación

Más detalles

Métricas. Valentin Laime. Calidad de Software

Métricas. Valentin Laime. Calidad de Software Calidad de Software: Métricas Valentin Laime Calidad de Software 10/29/2014 1 Métricas Que miden Beneficios Medidas Productividad Calidad Futuras Estimaciones Directas Indirectas Defecto/fallo Vs. Error

Más detalles

BASE DE DATOS: ENFOQUE ORIENTADO A OBJETOS. Dámaso López Aragón

BASE DE DATOS: ENFOQUE ORIENTADO A OBJETOS. Dámaso López Aragón BASE DE DATOS: ENFOQUE ORIENTADO A OBJETOS Dámaso López Aragón Introducción En la actualidad, la orientación a objetos es una nueva forma de comprender los problemas y modelar el negocio de una empresa,

Más detalles

Fundamentos de Programación Orientada a Objetos ( POO ) - Parte 3 Desarrollo de Software

Fundamentos de Programación Orientada a Objetos ( POO ) - Parte 3 Desarrollo de Software República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Trimestre I Fundamentos de Programación Orientada a Objetos ( POO ) - Parte 3 1 Pilares fundamentales de la programación

Más detalles

Space Invaders Práctica de la Asignatura de Programación Orientada a Objetos Escenario para el Curso 2011/2012 Febrero de 2012 Versión 1.

Space Invaders Práctica de la Asignatura de Programación Orientada a Objetos Escenario para el Curso 2011/2012 Febrero de 2012 Versión 1. Space Invaders Práctica de la Asignatura de Programación Orientada a Objetos Escenario para el Curso 2011/2012 Febrero de 2012 Versión 1.1 Departamento de Lenguajes y Sistemas Informáticos Escuela Técnica

Más detalles

Programación Orientada a Objetos Analista Programador Universitario Plan 2008 Año 2010

Programación Orientada a Objetos Analista Programador Universitario Plan 2008 Año 2010 INTRODUCCION Un concepto fundamental que debemos tener en cuenta a la hora de modelar la realidad por medio de objetos es que los mismos no son entidades aisladas. Los objetos interactúan entre ellos constantemente

Más detalles

Relaciones entre clases: Diagramas de clases UML

Relaciones entre clases: Diagramas de clases UML Relaciones entre clases: Diagramas de clases UML Las relaciones existentes entre las distintas clases nos indican cómo se comunican los objetos de esas clases entre sí: Los mensajes navegan por las relaciones

Más detalles

Tema X: Introducción al Paradigma Orientado. a Objetos. Diana Marcela Sánchez Fúquene Ingeniería del Software de Gestión. www.kybele.urjc.

Tema X: Introducción al Paradigma Orientado. a Objetos. Diana Marcela Sánchez Fúquene Ingeniería del Software de Gestión. www.kybele.urjc. Tema X: Introducción al Paradigma Orientado Diana Marcela Sánchez Fúquene Ingeniería del Software de Gestión a Objetos Índice Introducción Elementos Clases y Objetos Mensajes y Métodos Atributos y Estado

Más detalles

Diagrama de Clases. Diagrama de Clases

Diagrama de Clases. Diagrama de Clases Diagrama de Clases 1 Diagrama de Clases El propósito de este diagrama es el de representar los objetos fundamentales del sistema, es decir los que percibe el usuario y con los que espera tratar para completar

Más detalles

Introducción a la Programación Orientada a Objetos (POO) Introducción a la Programación Orientada a Objetos (POO)

Introducción a la Programación Orientada a Objetos (POO) Introducción a la Programación Orientada a Objetos (POO) Diseño Orientado a Objetos. Metodología enfocada a la solución de problemas complejos. Complejidad del software. Problemas difíciles de precisar. Definición de requerimientos vago y cambio en el desarrollo

Más detalles

Curso de Doctorado: Tecnologías de Objetos

Curso de Doctorado: Tecnologías de Objetos Curso de Doctorado: Tecnologías de Objetos Grupo IMO Área de Lenguajes y Sistemas Informáticos Departamento de Informática J. Baltasar García Perez-Schofield http://webs.uvigo.es/jbgarcia/ Implementación

Más detalles

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos 2.1. Principios básicos del Modelado de Objetos UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos Hoy en día muchos de los procesos que intervienen en un negocio o empresa y que resuelven

Más detalles

1.- DATOS DE LA ASIGNATURA. Nombre de la asignatura: Programación Orientada a Objetos. Carrera: Ingeniería en Sistemas Computacionales.

1.- DATOS DE LA ASIGNATURA. Nombre de la asignatura: Programación Orientada a Objetos. Carrera: Ingeniería en Sistemas Computacionales. 1.- DATOS DE LA ASIGNATURA. Nombre de la asignatura: Carrera: Clave de la asignatura: (Créditos) SATCA 1 Programación Orientada a Objetos. Ingeniería en Sistemas Computacionales. SCD-1020 2-3 - 5 2.- PRESENTACIÓN.

Más detalles

Tema: Patrones de Diseño.

Tema: Patrones de Diseño. Programación II. Guía 13 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Patrones de Diseño. Objetivos Específicos Implementar la aplicación de patrones de diseño como herramientas

Más detalles

POO en Java IV: Herencia (Parte 1)

POO en Java IV: Herencia (Parte 1) Herencia POO en Java IV: Herencia (Parte 1) Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile fguidi@ucv.cl Es la derivación de una clase a partir de otra existente.

Más detalles

INFORMÁTICA II. Clase 1: Presentación- Introducción. Semestre 2012/1

INFORMÁTICA II. Clase 1: Presentación- Introducción. Semestre 2012/1 INFORMÁTICA II Clase 1: Presentación- Introducción 1 Semestre 2012/1 CONTENIDO 2 1 Presentación del Curso 2 Introducción C++ 3 PROFESOR John Byron Buitrago Paniagua Oficina: 21-428 L-J 14:30 16:00 E mail:

Más detalles

Programación Orientada a Objetos

Programación Orientada a Objetos 1 Ficha de Identificación 1.1 Código y Nombre del Curso Universidad del Magdalena Vicerrectoría de Docencia Programación Orientada a Objetos 1.2 Unidad Académica Responsable del Curso 1.3 Ubicación curricular

Más detalles

Estructura de las Aplicaciones Orientadas a Objetos Herencia y Polimorfismo

Estructura de las Aplicaciones Orientadas a Objetos Herencia y Polimorfismo Estructura de las Aplicaciones Orientadas a Objetos Herencia y Polimorfismo Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad Complutense

Más detalles

M III ABSTRACCIÓN Y CLASIFICACIÓN

M III ABSTRACCIÓN Y CLASIFICACIÓN M III ABSTRACCIÓN Y CLASIFICACIÓN COMPLEJIDAD Y ABSTRACCIÓN La abstracción en el desarrollo del programario En todo el proceso de abstracción siempre hay una parte de la situación o del problema que se

Más detalles

Lenguajes de Programación Curso 04-05. Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces 1. 2. Clases abstractas 2

Lenguajes de Programación Curso 04-05. Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces 1. 2. Clases abstractas 2 Objetivos Herencia. Utilización de interfaces y clases abstractas. Índice 1. Interfaces 1 2. Clases abstractas 2 3. Collections Framework 3 3.1. Collection........................................... 3

Más detalles

Inteligencia Artificial II. Razonamiento con ontologías

Inteligencia Artificial II. Razonamiento con ontologías Inteligencia Artificial II Curso 2008 09 Trabajo de curso Razonamiento con ontologías Antonio Jiménez Mavillard Enunciado Una ontología es una representación formal de un determinado dominio o área de

Más detalles

Elabore el diagrama de clases en UML y la codificación de un programa para resolver los siguientes problemas:

Elabore el diagrama de clases en UML y la codificación de un programa para resolver los siguientes problemas: OBJETIVO: El estudiante elaborará diagramas de clases en UML que apliquen relaciones de herencia y polimorfismo MATERIAL Y EQUIPO NECESARIO: Se recomienda la utilización de software para elaborar diagramas

Más detalles

CONTENIDOS. 1. Completar el ejemplo de Herencia: Superclase Persona-Subclase Alumno

CONTENIDOS. 1. Completar el ejemplo de Herencia: Superclase Persona-Subclase Alumno CONTENIDOS 1. Completar el ejemplo de Herencia: Superclase Persona-Subclase Alumno 2. Redefinición de métodos. 3. Jerarquía de clases. 4. Ejecución de los pasos de mensajes con Herencia. 5. Problemas con

Más detalles

Capítulo 6. Introducción a la POO

Capítulo 6. Introducción a la POO Capítulo 6. Introducción a la POO 6. 1. Clases, Objetos y Métodos Definición La Programación Orientada a Objetos (POO) es una forma especial de programar, más cercana a cómo expresaríamos las cosas en

Más detalles

Objetivo del Curso Aspectos Claves O-O. Técnicas para trabajo en equipo Asignación 1

Objetivo del Curso Aspectos Claves O-O. Técnicas para trabajo en equipo Asignación 1 Dpto. de Computación y T.I. Taller de Ingeniería de Software http://ldc.usb.ve/~jtcadenas/ci3715/ Sección 1 : Prof. Alfonso Reinoza jareinozacg@gmail.com Sección 2: José Tomás Cadenas jtcadenas@ldc.usb.ve

Más detalles

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 Introducción Java es un lenguaje basado en la programación orientada a objetos (POO), este tipo de programación va más allá del tipo de programación

Más detalles

Introducción a la P.O.O. Patrick Hernández Cuamatzi

Introducción a la P.O.O. Patrick Hernández Cuamatzi Introducción a la P.O.O. Patrick Hernández Cuamatzi Introducción } Debemos diferenciar entre Programación Orientada a Objetos (P.O.O.) y Lenguaje Orientado a Objetos (L.O.O.). } La P.O.O. es una filosofía,

Más detalles

Introducción al UML. Domingo Hernández H. Escuela de Ingeniería de Sistemas Departamento de computación

Introducción al UML. Domingo Hernández H. Escuela de Ingeniería de Sistemas Departamento de computación Introducción al UML Domingo Hernández H. Escuela de Ingeniería de Sistemas Departamento de computación Contenido Qué es UML?. Diagramas Utilizados en UML. Ejemplos. Qué es UML UML es un Lenguaje de Modelado

Más detalles

CONTENIDO. Programación orientada a objetos - POO. Clases. Constructores y destructores. Definiciones. Entrada y salida

CONTENIDO. Programación orientada a objetos - POO. Clases. Constructores y destructores. Definiciones. Entrada y salida INFORMÁTICA II 1 CONTENIDO 2 1 Programación orientada a objetos - POO 2 Clases 3 Constructores y destructores 4 Definiciones 5 Entrada y salida PROGRAMACIÓN ORIENTADA A OBJETOS Los lenguajes de programación

Más detalles

Modelado arquitectónico con UML

Modelado arquitectónico con UML Modelado arquitectónico con UML Qué es la arquitectura de software El modelo de 4+1 vistas arquitectónicas Cohesión y acoplamiento Cómo lograr una descomposición modular eficaz Criterios para la selección

Más detalles

Java en 3 horas. Ampliación de Sistemas Operativos. Rodrigo Santamaría

Java en 3 horas. Ampliación de Sistemas Operativos. Rodrigo Santamaría Java en 3 horas Ampliación de Sistemas Operativos Rodrigo Santamaría Generalidades Desarrollado por Sun Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas

Más detalles

CAPÍTULO 6. El Software Orientado a Objetos (OO) es fundamentalmente distinto del

CAPÍTULO 6. El Software Orientado a Objetos (OO) es fundamentalmente distinto del CAPÍTULO 6 Métricas para Sistemas Orientados a Objetos El Software Orientado a Objetos (OO) es fundamentalmente distinto del software que se desarrolla utilizando métodos convencionales. Las métricas para

Más detalles

3. DIAGRAMAS DE CLASES...19 3.1. INTRODUCCIÓN... 19 3.2. DIAGRAMAS DE CLASES... 19 3.2.1. Perspectivas...20 3.2.2. Clases...20 3.2.2.1.

3. DIAGRAMAS DE CLASES...19 3.1. INTRODUCCIÓN... 19 3.2. DIAGRAMAS DE CLASES... 19 3.2.1. Perspectivas...20 3.2.2. Clases...20 3.2.2.1. 3. DIAGRAMAS DE CLASES...19 3.1. INTRODUCCIÓN... 19 3.2. DIAGRAMAS DE CLASES... 19 3.2.1. Perspectivas...20 3.2.2. Clases...20 3.2.2.1. Compartimento del nombre...21 3.2.2.2. Compartimento de la lista

Más detalles

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS AUTORÍA JOSEFA PÉREZ DOMÍNGUEZ TEMÁTICA NUEVAS TECNOLOGIAS ETAPA CICLOS FORMATIVOS DE GRADO SUPERIOR DE INFORMÁTICA Resumen En esta publicación se

Más detalles

Tema: Herencia Simple y Múltiple en C++.

Tema: Herencia Simple y Múltiple en C++. Programación II. Guía 9 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Herencia Simple y Múltiple en C++. Objetivos Específicos Crear clases a través de la herencia de clases

Más detalles

Modelado de datos Relacional Modelado de datos Orientado a Objeto Modelado de datos Objeto-Relacional

Modelado de datos Relacional Modelado de datos Orientado a Objeto Modelado de datos Objeto-Relacional 2. 1 Modelado de Datos El manejo de información implica el saber como organizar los datos. Un apoyo lo encontramos en las herramientas de bases de datos que a su vez se apoyan en el modelo de datos. Para

Más detalles

Capítulo 10. Subtipos y Herencia.

Capítulo 10. Subtipos y Herencia. Capítulo 10. Subtipos y Herencia. Lenguajes de Programación Carlos Ureña Almagro Dpt. Lenguajes y Sistemas Informáticos ETSI Informática y de Telecomunicación Universidad de Granada Curso 2009-10 Autor:

Más detalles

1. Qué tipos de relación hay entre las siguientes clases?

1. Qué tipos de relación hay entre las siguientes clases? Ejercicios Tema 8: Herencia 1. Qué tipos de relación hay entre las siguientes clases? Personal de la Universidad PAS Profesor 1 n Estudiante a) herencia y asociación b) herencia y dependencia c) dependencia

Más detalles

Patrones para persistencia (I) Ingeniería del Software II

Patrones para persistencia (I) Ingeniería del Software II Patrones para persistencia (I) Ingeniería del Software II 1 Patrones para la construcción del esquema relacional En todos los ejemplos realizaremos transformaciones del siguiente diagrama de clases: Figura

Más detalles

CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA

CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA PROGRAMACIÓN DIDACTICA ANUAL Parte específica del módulo: 0485. Programación Departamento de Familia Profesional de Informática Curso: 2014-15

Más detalles

[CASI v.0310] Pág. 1

[CASI v.0310] Pág. 1 I. DATOS INFORMATIVOS II. SUMILLA Carrera : COMPUTACIÓN E INFORMATICA Especialidad : Ingeniería de Software Ingeniería de Redes y Comunicaciones Curso : Técnicas de Programación Orientada a Objetos A JAVA

Más detalles

Tema 1. Conceptos de Java para Estructuras de Datos: interfaces y programación genérica

Tema 1. Conceptos de Java para Estructuras de Datos: interfaces y programación genérica Tema 1. Conceptos de Java para Estructuras de Datos: interfaces y programación genérica Duración: 3 semanas aprox. Índice General: 1. Clases y objetos en Java: el modelo TIENE UN(A) 2. El principio POO

Más detalles

FORMACIÓN Principios de la programación orientada a objetos

FORMACIÓN Principios de la programación orientada a objetos FORMACIÓN Principios de la programación orientada a objetos En un mercado laboral en constante evolución, la formación continua de los profesionales debe ser una de sus prioridades. En Galejobs somos conscientes

Más detalles

Software Reutilizable. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 1

Software Reutilizable. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reutilizable Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 1 Objetivos Para explicar los beneficios del software reutilizable y algunos de sus problemas Para discutir

Más detalles

Clases y funciones amigas: friend

Clases y funciones amigas: friend 1. Introducción a las funciones amigas (Funciones friend) 2. Funciones amigas 3. Clases amigas 4. Ejemplo: La clase fraccional. Métodos operadores amigos 5. Ejemplo: Las clases Coche y Camión. 1 Introducción:

Más detalles

Principios Básicos de Orientación a Objetos. Orientación a Objetos

Principios Básicos de Orientación a Objetos. Orientación a Objetos Principios Básicos de Orientación a Objetos Orientación a Objetos Abstracción Encapsulación Modularidad Jerarquia Qué es Abstracción? Es la capacidad de conceptualizar entidades genéricas de información

Más detalles

Tema 3: Genericidad en Java. Tema 3: Genericidad en Java. Objetivos y Bibliografía. Modelos de Datos Genéricos

Tema 3: Genericidad en Java. Tema 3: Genericidad en Java. Objetivos y Bibliografía. Modelos de Datos Genéricos Tema 3: Genericidad en Java Tema 3: Genericidad en Java Germán Moltó Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia Índice general: 1. Definición y Ventajas de la

Más detalles

vusar clases previamente implementadas. vdefinir e implementar nuevas clases.

vusar clases previamente implementadas. vdefinir e implementar nuevas clases. Ejemplo: consultar estado Posibilidades de la POO vusar clases previamente implementadas. obtenersaldo () Ejemplos: BufferedReader String Opción consultar estado 1200 obtenertransacciones() vdefinir e

Más detalles

TEMA 8: DIAGRAMA DE CLASE EN UML

TEMA 8: DIAGRAMA DE CLASE EN UML TEMA 8: DIAGRAMA DE CLASE EN UML Diagramas en UML El bloque de construcción básico de UML es un Diagrama Introducción a UML 2 1 Diagrama de Clase Los diagramas de clases son los más utilizados en el modelado

Más detalles

TEMA 7: DIAGRAMAS EN UML

TEMA 7: DIAGRAMAS EN UML TEMA 7: DIAGRAMAS EN UML Diagramas en UML El bloque de construcción básico de UML es un Diagrama Introducción a UML 2 1 Modelo de Casos de Uso (MCU) Todos los casos de uso constituyen el MCU que describe

Más detalles

Curso de programación Java III Artículo publicado originalmente en la revista Sólo Programadores

Curso de programación Java III Artículo publicado originalmente en la revista Sólo Programadores Curso de programación Java III Artículo publicado originalmente en la revista Sólo Programadores Hasta ahora en este curso de programación Java hemos introducido los tipos de datos primitivos del lenguaje

Más detalles