Código: Salida. Circulo>>(1,2,2.45) Punto >>(1,1)

Documentos relacionados
Clases abstractas e interfaces en Java

PROYECTO FIGURAS DIAGRAMA DE FLUJO

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

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

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

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

Examen de Prácticas de Programación Ingeniería Informática

Programación Tema 7: Relaciones entre clases. Programación DIT-UPM

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Soluciones Ejercicios Tema 3

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

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

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

15. Parámetros o argumentos

Examen Teórico. Convocatoria de Febrero de 2016

Concurso: Cuánto sabes de JAVA?

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

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

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

Prácticas de Programación

Tema 1. Herencia y Polimorfismo

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Práctica No. 2. Tipos de Datos y Entrada/Salida Estándar

Derechos de Acceso: COMPOSICION

Programación II JAVA Dr. Mario Rossainz López

Examen Teórico. Convocatoria de Julio de 2015

Práctica 10a. Práctica 10a. José M. Ordax

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

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

Federico Peinado

Herencia y Polimorfismo

Estructuras de control selectivas

HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA

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

Prueba N o 1. Programación II

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

Interfaces. Amparo López Gaona. Septiembre de Amparo López Gaona () Interfaces Septiembre de / 1

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Programación Orientada a Objetos con Java

int[] nombrearray1; int nombrearray2[];

Informática Lección 5. Arreglos (vectores) Curso Pedro Álvarez y José Ángel Bañares 2/11/2010. Dpto. Informática e Ingeniería de Sistemas.

HERENCIA. Problema: Reparar el el coche. Jesús (Valencia) Luis, Mecánico (Valencia) Antonio, Servicio Técnico Ferrari (Madrid)

POO: Clases y objetos

Examen Teórico. Convocatoria de Febrero de 2018

Programación en JAVA. Ejercicios de SECUENCIA

Soluciones Ejercicios Tema 1

Examen Teórico Convocatoria de Junio de 2012

Prácticas de Programación

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Programación Orientada a Objetos (Grado en Ingeniería Informática y Grado en Ingeniería en Tecnologías de la Información - UNED)

Tema 4. Control de flujo. Programación Programación - Tema 4: Control de Flujo

Qué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +.

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

CURSO 2º GRUPO Junio 2011

2. Tratamiento de objetos con JAVA

Programación Orientada a Objetos en Java

FACULTAD DE INGENIERÍA

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

Práctica 5c. Práctica 5c. José M. Ordax

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

Práctica 2. Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones

Soluciones al Examen de Fundamentos de Computadores y Lenguajes

Curso de Java POO: Programación orientada a objetos

Introducción a Java. Introducción a Java. Programación I

Construcciones del Lenguaje Java

Tema 2: Clase y objetos en C# Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

FUNCIONES O MÉTODOS. Algoritmia y Programación

Curso Introducción JAVA Pág.: 1

Estructura de un programa en Java. Tipos de datos básicos. class miprimerprograma{ // comentario, no es parte del programa

Instrucción de selección múltiple switch.

JAVA 1. Introducción

CLASE 9 -HERENCIA Y POLIMORFISMO

Java ENTRADA ESTÁNDAR

Examen. Programación II

Examen de Fundamentos de Computadores y Lenguajes

Java en 2 horas. Rodrigo Santamaría

Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez

Objective C (Desarrollo con Apple)

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

Introducción a la Programación Orientada a Objetos

El concepto de Java Package Encapsulation

PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas

Recogiendo la basura. Herencia de interfaz Transversal Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

LECTURA 7.1 ENVÍO DE PARÁMETROS A UN MÉTODO: POR VALOR, POR REFERENCIA Y PARÁMETROS DE SALIDA EN C#

Estructura de datos y Programación

INSTITUTO TECNOLOGICO DE VILLAHERMOSA

EXAMEN PARA ALUMNOS PRESENTADOS A LA ASIGNATURA COMPLETA

Cómo se estructura un programa en C#? Qué son las clases y los objetos? Cómo se estructuran los dibujos de AutoCAD?

12. Tipos de atributos

Programación II Práctica 04: Objetos

INTRODUCCION A LA PROGRAMACION EN JAVA

Paquete fundamentos. Lectura

b) Basta con definir una variable de tipo Alumno (a) y otra de tipo CursoExtraescolar (curso) antes de hacer la llamada al método mediante el

Examen de Estructuras de Datos y Algoritmos (Ingeniería Informática)

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

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

Reutilización con Delegación y Herencia

Transcripción:

1- (1,5 Puntos) Dibuje el diagrama de clases de Punto, Círculo y Dibujable. Escriba en código Java los siguiente requerimientos. a) Punto tiene como atributos protegidos x, y inicializados por parámetro en su constructor. Círculo hereda de Punto y añade el atributo protegido radio. El constructor de Círculo inicializa todos los atributos con los valores pasados por parámetro. (0,50) b) Escribe el código de Dibujable y modifica Círculo y/o Punto sin cambiar su herencia para que el siguiente código muestre por pantalla la salida que se muestra. (0,50) c) Modifique Punto para que admita coordenadas de tipos genéricos. (0,50) Código: Salida Solución Diagrama de clases public static void main(string[] args) Dibujable []d = new Dibujable[2]; d[0]= new Circulo(1,2,2.45); d[1] = new Punto(1,1); for (int i =0;i<d.length;i++) d[i].dibuja(); Circulo>>(1,2,2.45) Punto >>(1,1) Punto # int x # int y + Punto(int x,int y) + void Dibuja() Dibujable + void Dibuja() Circulo # float radio + Circulo(int x,int y, double r) + float area()

a) class Punto protected int x; protected int y; public Punto(int x,int y) this.x=x; this.y=y; class Circulo extends Punto protected double radio; public Circulo(int nx, int ny, double r ) super(nx,ny); radio = r; b) interface Dibujable public void dibuja(); class Punto implements Dibujable protected int x; protected int y; public Punto(int x,int y) this.x=x; this.y=y; public void dibuja() System.out.println("Punto>>("+x+","+y+")"); class Circulo extends Punto protected double radio; public Circulo(int nx, int ny, double r ) super(nx,ny); radio = r; public void dibuja() System.out.println("Circulo>>("+x+","+y+","+radio+")");

c) class Punto <T> implements Dibujable protected T x; protected T y; public Punto(T x,t y) this.x=x; this.y=y; public void dibuja() System.out.println("Punto>>("+x+","+y+")"); interface Dibujable public void dibuja(); class Circulo <T> extends Punto protected T radio; public Circulo(T nx, T ny, T r ) super(nx,ny); radio = r; public void dibuja() System.out.println("Circulo>>("+x+","+y+","+radio+")");

2- (1 Punto) Dada la siguiente descripción: un hombre es mamífero, un pájaro es animal, un árbol es vegetal, un mamífero es animal. Se considera que los animales respiran y los vegetales no. Animales y vegetales son seres vivos. En cuanto a reproducción son Vivíparos (mamíferos), ovíparos (pájaros), semilla (árbol). Hombre h1 ( Francisco, 34 años, c/murcia 23 Huelva ); Pajaro p1 ( Colibri, 2 meses ); Arbol ar1 ( Roble, 30 años, Latitud: 37º 12 N, Longitud 6º 54 W ); Mamífero *m; SerVivo **s = new * SerVivo[3]; Vegetal *v; m= &h1; m->edad(); v = &ar1; v->tieneclorofila(); p1.vuela(); s[1]=m; s[2]=p; s[3]=v; for (int i= 1;i<4;i++) s[i]->edad(); s[i]->respira(); s[i]->reproducción(); En vista de la descripción anterior y el código presentado: a) Cree un diagrama de clases utilizando clases abstractas cuando sea posible para que funcione este hipotético pseudocódigo y almacene además las características enumeradas en la clase más adecuada para ello. Los métodos muestran por pantalla la característica nombrada. b) Cree los constructores de cada clase en estilo C++.

SerVivo (abstracta) # char* edad # bool respira # char* denominación, # char* reproduccion + SerVivo(char* edad,bool respira,char* denominación,char *reproduccion) + void respira() + void edad() + void reproduccion() Animal (abstracta) + Animal(char* denominación,char* edad,char reproducción) Vegetal (abstracta) #bool clorofila; + Vegetal(char* denominación,char* edad,char* reproduccion) + void tieneclorofila() Pajaro +bool vuela + pajaro(char* denominación, char* edad) + void tieneclorofila() Mamifero(abstracta) + Mamifero(char* denominación, char* edad) Arbol #char* posicion + arbol(char* denominación, char* edad, char* dirección) Hombre #char* direccion + Hombre(char* denominación, char* edad, char* dirección)

Constructores: SerVivo(int edad,bool respira,char *denominación, char *resproduccion,) this.denominacion = strdup(denominacion); this.edad = strdup(edad); this.reproduccion = strdup(reproduccion); this.respira=respira; Animal(char* denominación,char* edad,char reproducción):servivo(edad,denominacion, reproduccion,true) Vegetal(char* denominación,char* edad,char reproducción):servivo(edad,denominacion, reproduccion,false) clorofila = false; Pajaro(char* denominación,char* edad):animal(denominacion, edad, Oviparo ) vuela= true; Mamifero(char* denominación,char* edad):animal(denominacion, edad, Viviparo ) vuela= trae; Hombre(char* denominación,char* edad,char* direccion):mamifero(denominacion, edad) this.direccion=strdup(direccion); Arbol(char* denominación,char* edad,char* posicion):vegetal(denominacion, edad, semilla ) this.posicion=strdup(posicion);