Informática Industrial I

Documentos relacionados
Programación orientada a objetos I

Unidad Didáctica 1. Introducción a la Programación Orientada a Objetos (POO) Conceptos de clase, objeto e interfaz. Atributos y métodos

PROGRAMACIÓN ORIENTADA A OBJETOS

PROGRAMACIÓN EN JAVA

PROGRAMACIÓN ORIENTADA A OBJETOS

10 -Herencia Y Polimorfismo. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Programación Avanzada CONCEPTOS BÁSICOS DE IMPLEMENTACIÓN EN C++

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

CONTENIDOS. La herencia permite: - Adoptar automáticamente características ya implementadas. Ahorro de tiempo y esfuerzo

Unidad Didáctica 5: Introducción a la Programación Orientada a Objetos

7.3. Estructura de un programa

18. Interfaces Declaración de una interfaz

Tema: Sobrecarga de Operadores Unarios. Sobrecarga de Funciones.

FUNDAMENTOS DE INFORMÁTICA

Tema: Funciones Virtuales y Polimorfismo.

Tema: Funciones Virtuales y Polimorfismo.

EJERCICIO Y EJEMPLO RESUELTO: USO DE LA INTERFAZ CLONEABLE DE JAVA. MÉTODO CLONE() PARA CLONAR OBJETOS. (CU00912C)

3. LA HERENCIA. Necesidad de la herencia

La Herencia: Teoría (1)

Tema 7.- Fundamentos de la Programación Orientada a Objetos

Examen Junio- Grupo B Lunes 17 de Junio - Programación en C++ Pág. 1

HOJA DE EJERCICIOS 3 HERENCIA ENTRE CLASES Y POLIMORFISMO DE MÉTODOS

Curso de Java POO: Programación orientada a objetos

Prof. Dr. Paul Bustamante

PROGRAMACIÓN EN JAVA

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

NETBEANS JAVA PROGRAMACIÓN ORIENTADA A OBJETOS

PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA

INTRODUCCIÓN A LA POO EN C++

Herencia y Polimorfismo en C++

Curso de Java POO: Programación orientada a objetos

Formato para prácticas de laboratorio

Estructuras de control selectivas

Java. Introducción a la Programación Orientada a Objetos

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E

Bloque II. Elementos del lenguaje de programación Java

Necesidad de la herencia pertenencia variedad is a has a herencia variedad definir una clase modificando una o más clases añadir nuevos miembros

Programación Orientada a Objetos con Java. Elementos Básicos del Lenguaje Java. Relación entre clases. Ejemplo de Clase: Punto !

FACULTAD DE ECONOMIA Y ADMINISTRACION DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION CÁTEDRA PROGRAMACION GENERAL. Trabajo Práctico Nº 4

Guía del Curso IFCD052PO PROGRAMACIÓN EN JAVA

TEMA 8: Gestión dinámica de memoria

Prueba N o 1. Programación II

INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA con BlueJ

Examen de Métodos de Programación Ingeniería Informática Primera Parte

o Una clase es un tipo al cual pertenecen objetos o instancias de la clase.

Bloque práctico 2: Java

PROGRAMACION ORIENTADA A OBJETOS EN C++

Unidad IV. Este tipo de codificación nos es permitido gracias a la sobrecarga, la cual se aplica a métodos y constructores.

Objetivos. El alumno empleará el concepto de excepción en la programación orientada a objetos para el manejo de errores de ejecución.

Escuela Politécnica Superior de Elche

Introducción al Lenguaje "C++"

HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA

Polimorfismo. Métodos virtuales

Programación Orientada a Objetos Clases, métodos, atributos. Concepto de herencia, clases derivadas, tipos de herencia.

Ejercicios De Programación De C++ Algoritmos. Lenguaje De Programación C++:

Tema: Funciones Virtuales y Polimorfismo.

Tema 1. Herencia y Polimorfismo

class identificador{ //Bloque de propiedades (datos miembro, atributos, propiedades) //Bloque de métodos (comportamientos) }

Tema: Herencia en C#.

ALGORITMICA Y PROGRAMACION POR OBJETOS I

Lenguaje C, tercer bloque: Funciones

INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA

EXAMEN PROGRAMACIÓN 21 de Septiembre de 2007 INGENIERÍA INFORMÁTICA Primera parte: Cuestiones 1,5 horas

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.

Herencia y Clases Abstractas

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

Examen Teórico Convocatoria de Junio de 2012

Introducción a la Programación orientada a objetos con C++

En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.

Hoja de ejercicios del Tema 9

Introducción a OOP. Programación Orientada a Objeto

Tema 1. Introducción a la Programación Orientada a Objetos

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

Herencia en Java. Agustín J. González Diseño y Programación Orientados a Objetos

Tema 2. Diseño Modular.

ASP.NET MVC 3 ofrece una serie de herramientas y funciones para construir una aplicación utilizando sólo la definición de los objetos del modelo.

Macros LENGUAJE DE PROGRAMACIÓN ESTRUCTURADO

Programación 1. Tema I. Conceptos y elementos básicos de Programación. Lección 2. Lenguaje de programación y ejecución de un programa

Cómo implementar tus propias funciones en Lenguaje C?

! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes

Algoritmos y Programación Orientada a Objetos I. Contenedoras de tamaño variable y uso de ciclos en otros contextos

Clasificación de las Herramientas CASE

Procedimientos y funciones

Sobre Carga de Operadores

Tema: Programación Dinámica.

Tema: Plantillas en C++.

Transcripción:

Informática Industrial I Grado en Ingeniería en Electrónica Industrial y Automática Álvaro Castro González Nicolas Burus Mohamed Abderrahim José Carlos Castillo Montoya Práctica 4 Herencia A lo largo de los últimos años, han colaborado en impartir las prácticas presenciales, y por tanto proporcionar comentarios para mejorar algunos aspectos de este documento los profesores siguientes: Ioannis Douratsos Fares Abu-Dakka Juan Carlos González Victores Raúl Perula Avinash Ranganath

Práctica 4 Herencia. La herencia es una funcionalidad de los lenguajes orientados a objetos que permite reutilizar el código de clases existentes y extenderlo. 1. Herencia para extender En C++ se puede declarar una clase (llamada clase hija o derivada) que derive de otra clase (clase padre o base). Esto implica que la clase hija recuperará todos los miembros de la clase padre y puede ampliarse con nuevas funciones miembro. El siguiente ejemplo muestra cómo se puede definir una clase punto con color (el color se representará con un entero) derivada de la clase Point para recuperar la gestión de las coordenadas que ya se ha implementado. Poniendo el siguiente código en el.h de la clase Point: class Point { Point(int x, int y); void set(int x, int y); int getx() const {return _x; int gety() const {return _y; void display () const; int _x, _y; Y el siguiente en el.h de la nueva clase ColorPoint: class ColorPoint : public Point { ColorPoint(int x, int y, int c) : Point(x, y) {_color = c; int getcolor() const {return _color; int _color; Para el siguiente código de prueba: Informática Industrial I, 2017 2/7 Práctica 4

int main() { ColorPoint CP(10, 20, 255); CP.getX(); CP.display(); CP.getColor(); // viene de la clase Point // viene de la clase Point, display x and y // viene de la clase PointColor. Gracias a la herencia, la clase ColorPoint sólo tiene que definir su miembro adicional (getcolor), y recuperar de la clase Point los miembros relacionados con las coordenadas. Notad como el constructor de PointColor llama al constructor de Point que tomará dos parámetros. 2. Redefinición de una función miembro Esta solución todavía no es completamente satisfactoria ya que la función display, heredada de Point no muestra el color del punto. Por ello se puede redefinir las funciones miembros cuyo comportamiento queremos cambiar en la clase hija. Así, la clase Point quedará: class Point { Point(int x, int y); // set, getx, gety void display() const {cout << _x << _y; ; int _x, _y; Y la clase ColorPoint: class ColorPoint : public Point { ColorPoint(int x, int y, int c) : Point(x, y) {_color = c; int getcolor() const {return _color; void display() const {cout << _x << _y << _color; ; int _color; De este modo, se puede cambiar el comportamiento de una clase hija con la redefinición de sus propios métodos. Con lo que el main quedaría: Informática Industrial I, 2017 3/7 Práctica 4

int main() { ColorPoint CP(10, 20, 255); CP.display(); // come from PointColor class, display x, y and color Point P(10, 20); P.display(); // come from Point class, display x and y Nota: En este momento la clase ColorPoint no compilaría. Encontrar el error y proponer una solución. Informática Industrial I, 2017 4/7 Práctica 4

Ejercicios Realizar un simulador de ordenador: o Para ilustrar los conceptos de la programación orientada a objetos en C++, se va a realizar un pequeño proyecto a lo largo de las prácticas. Este se basará en desarrollar un simulador de ordenador. El programa deberá simular teclados, procesadores, programas, pantallas, etc. Para que el programa quede sencillo, nuestro ordenador solo será capaz de manejar cadenas de caracteres. De momento se propone implementar el código que corresponde al diagrama UML del anexo. o En concreto, el programa deberá poder leer caracteres desde el teclado, transmitirlos al procesador para que los transforme y enviarlos a una pantalla que muestre la cadena procesada. El diseño deberá estar pensado para que sea modular, es decir, que sea relativamente sencillo añadir o modificar cualquier elemento de las clases. o Para cada clase se debe crear un fichero de cabecera nombre_clase.h y un fichero fuente nombre_clase.cpp. o La descripción de los métodos a implementar se puede encontrar en la tabla del anexo. Informática Industrial I, 2017 5/7 Práctica 4