3UiFWLFD. 3URJUDPDFLyQ-DYD



Documentos relacionados
Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

Programación Orientada a Objetos con Java

Prof. Dr. Paul Bustamante

Numerofonía de Aschero: Método de Instrumentación (1)

Modulo 1 El lenguaje Java

PROGRAMACIÓN EN JAVA

Tipos primitivos y clases de interés

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

ISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA

Introducción a la Programación Orientada a Objetos

9. Objetos y clases Clases

11. Algunas clases estándar de Java (II)

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

1. Introducción. 1.1 Ejercicio 1: Estación Meteorológica (4.0 pts.) Ejercicio 2: Gestión Académica: Alumnos (5.0 pts.)...

Examen Septiembre Curso Programación en C++ Pág. 1

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.

Programación Orientada a Objetos en Java

Java Inicial (20 horas)

Tema: Clases y Objetos en C++.

Introducción al lenguaje JAVA

Práctica 2: Simón dice

Java: Clases Abstractas e Interfaces

Introducción al lenguaje Java

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

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

FACULTAD DE INGENIERÍA

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

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

ANÁLISIS DE VALORES UNITARIOS SOBRE INSTRUMENTOS MUSICALES SINFÓNICOS

Prof. Dr. Paul Bustamante

2. Estructura de un programa en Java

Ejercicio 1 (3 puntos).-

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

MANUAL DE USUARIO. Webservice simple para la exportación rápida de información proveniente de una base de datos. Versión 0,1,1

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación

Compiladores e Intérpretes Proyecto N 1 Sintaxis de MiniJava Segundo Cuatrimestre de 2015

Taller de Programación I. Tema 04: Arreglos y Matrices en Java

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

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

Prof. Dr. Paul Bustamante

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

TEMA 3. CLASES. EJERCICIOS

Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación Algoritmia y Programación

Introducción a Java III. Prof. MSc. Pedro Shiguihara

8. Sentencia return y métodos

Programación orientada a objetos

Caso práctico Alquiler de películas en un vídeo-club

LOS INSTRUMENTOS DE LA ORQUESTA

Solución al Examen de Prácticas de Programación (Ingeniería Informática)

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

INTRODUCCIÓN AL TIPO COMPUESTO CADENA CONTENIDOS

Prof. Dr. Paul Bustamante

Clases abstractas e interfaces

INGENIERÍA DEL SOFTWARE. 4º ING. INFORMÁTICA (UPV/EHU) 29 de MAYO de 2006

Práctica 5: Common Object Request Broker Architecture CORBA

Tutorial básico del entorno de desarrollo Eclipse.

Administración Local Soluciones

Programación Orientada a Objetos en C#.NET CAPÍTULO 5 H E R E N C I A. Ing. Bruno López Takeyas, M.C.

1 ELEMENTOS BASICOS DEL LENGUAJE

La clase estándar Scanner

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

Tema 3 Elementos básicos de programación

Programación Orientada a Objetos: Arreglos en Java

LA FAMILIA CLARINETE

10. Algunas clases estándar de Java (I)

CONCEPTOS BASICOS DEL LENGUAJE JAVA

En la actualidad la orquesta la conocemos como una agrupación instrumental que incluye instrumentos de viento, cuerda frotada y percusión.

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

Lenguaje musical 5º - 1º TRIMESTRE

Primer Parcial Septiembre 6 de 2008

Computación III. Objetivo de aprendizaje del tema

Patrones de diseño. Patrón básico Handler. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez)

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005

Práctica 4: Herencia. Objetivos:

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J.

ORQUESTA II. Asignatura: Orquesta II

Elementos léxicos del lenguaje de programación Java

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador).

Fue entonces que comencé a idear el modo de presentar mi propuesta de manera tal que pudiera atrapar el interés y la curiosidad de todos mis niños.

LAS FAMILIAS INSTRUMENTALES

Índice ÍNDICE EJERCICIO 1: CÁLCULO FINANCIERO (5 PTOS.) EJERCICIO 2: AGENCIA DE COLOCACIONES (5 PTOS.)...4

Introducción al lenguaje de programación java

En la Escuela de Música CRC somos un grupo de profesores titulados, con muchos años de experiencia, comprometidos con la investigación constante en

ELO329: Diseño y Programación Orientados a Objetos 20 de Junio de Certamen Final

Examen escrito de Programación 1

Tema 1. Introducción a JAVA

- ANEXO II - ESCUELA MUNICIPAL DE EDUCACIÓN MUSICAL CURSO 2015/2016 NUEVA ADMISIÓN

Almacenamiento en Android

Aquí se declaran los. Aquí se declaran los métodos de la clase. *Atributos de la clase

FACULTAD DE INGENIERÍA

Programación Orientada a Objetos en JAVA

1. Manejo de memoria estática 2. Manejo de memoria dinámica

CONSTRUCCIÓN DE INSTRUMENTOS DE VIENTO EN CARTÓN Y PAPEL

Notación UML para modelado Orientado a Objetos

Estructura de datos tipo vector.

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

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

FACULTAD DE INGENIERÍA

Uso de excepciones en Java

Objetivo de aprendizaje del tema

Transcripción:

3UiFWLFD 3URJUDPDFLyQ-DYD

Ë1',&( PRACTICA N 7...2 1. EJERCICIO 1: DESARROLLAR UN PROGRAMA JAVA PARA UNA PEQUEÑA ORQUESTA...2 CLASE INSTRUMENTO...2 INTERFACE IDENTIFICABLE...3 CLASE VIENTO...3 CLASE PERCUSIÓN...3 CLASE CUERDA...4 CLASE MUSICA (PROGRAMA PRINCIPAL)...4 2. EJERCICIO 2: CAMBIAR EL PROGRAMA PRINCIPAL...5 35$&7,&$1 El guión de esta práctica recoge GRVHMHUFLFLRV: el primero de ellos es el más importante, mientras que el segundo es solamente una ampliación. No deberás pasar a este segundo ejercicio más que en el caso de que hayas concluido satisfactoriamente el primero. (-(5&,&,2'(6$552//$581352*5$0$-$9$3$5$81$3(48(f$2548(67$ abstract class Instrumento String sonido, String nombre, double precio static numeroinstrumentos abstract void afinar() interface Identificable String queinstrumentoeres() class Viento boolean esdemetal Static numinstrvientometal Static numinstrvientomadera class Percusion static numinstrpercusion class Cuerda static numinstrcuerda Se desea crear una SHTXHxD RUTXHVWD GH FiPDUD que pueda ofrecer información de sí misma, incluso sin disponer de tarjeta de sonido (en futuras versiones se desea que pueda ser audible). La figura anterior muestra la jerarquía de clases. En la misma figura se incluyen las variables miembro y métodos que es necesario considerar. &ODVH,QVWUXPHQWR La clase,qvwuxphqwres una clase DEVWUDFWD, esto es, una clase de la que no se pueden crear objetos y sirve como marco o modelo para las otras clases que deriven de ella. Se declara como: SXEOLFFODVVDEVWUDFW,QVWUXPHQWR^«` Las YDULDEOHVPLHPEUR de la clase son las siguientes: 1. Variable VRQLGR: un 6WULQJ que trata de reproducir el sonido del correspondiente instrumento.

2. Variable QRPEUH: un 6WULQJ con el nombre o tipo del instrumento concreto de que se trate: piano, timbal, violín, flauta, etc. 3. Variable SUHFLR: un GRXEOH con el precio aproximado del instrumento en euros ( 4. Variable QXPHUR,QVWUXPHQWRV: una variable VWDWLF LQW con el número total de instrumentos que componen la orquesta. Los PpWRGRV públicos de,qvwuxphqwr son los siguientes: 1. Un FRQVWUXFWRU (no mostrado en la figura) con el KHDGHU siguiente, public Instrumento(String name, String sound, double price) {... 2. Método YRLG DILQDU. Se trata de un método para afinar los instrumentos de la orquesta. Básicamente emite de alguna manera el sonido propio del instrumento. A la espera de una futura versión audible, en la presente versión imprime por consola con un método SULQWOQ el sonido típico del instrumento, representado por la variable VRQLGR. Como es natural, en esta clase este método es DEVWUDFW.,QWHUIDFH,GHQWLILFDEOH La interface,ghqwlilfdeoh declara un único método 6WULQJ TXH,QVWUXPHQWR(UHV. En cada clase que implemente esta interface, este método describe con detalle el tipo de instrumento de que se trata, incluyendo el nombre, el sonido, el precio y en el caso de que sea un instrumento de vientosi es de PHWDO o no. Ver la salida por consola mostrada más adelante para cada clase Esta interface es implementada por todas las clases que descienden de,qvwuxphqwr. &ODVH9LHQWR La clase 9LHQWR desciende de,qvwuxphqwr e implementa la interface,ghqwlilfdeoh. Define una nueva variable miembro de tipo ERROHDQ llamada HV'H0HWDO. Como su mismo nombre sugiere, esta variable indica si el instrumento de viento correspondiente es de metal, como por ejemplo la trompeta y el trombón, o de madera como la flauta y el oboe. La clase 9LHQWR define además dos variables miembro VWDWLF de tipo LQW, llamadas QXP,QVWU9LHQWR0HWDO y QXP,QVWU9LHQWR0DGHUD, que llevan cuenta del número de instrumentos de viento de metal y madera, respectivamente, de que dispone la orquesta. La clase 9LHQWR debe definir los métodos siguientes: 1. Un FRQVWUXFWRU que reciba valores para las cuatro variables miembro (las tres heredadas de la clase,qvwuxphqwr y HV'H0HWDO). &ODVH3HUFXVLyQ La clase 3HUFXVLRQ desciende de,qvwuxphqwr e implementa la interface,ghqwlilfdeoh. Define una nueva variable miembro VWDWLF de tipo LQW llamada QXP,QVWU3HUFXVLRQ. La clase 3HUFXVLRQ define los métodos siguientes: 1. Un FRQVWUXFWRU que reciba valores para las tres variables miembro heredadas de,qvwuxphqwr.

&ODVH&XHUGD La clase &XHUGD desciende de,qvwuxphqwr e implementa la interface,ghqwlilfdeoh. Define una nueva variable miembro VWDWLF de tipo LQW llamada QXP,QVWU&XHUGD. La clase &XHUGD define los métodos siguientes: 1. Un FRQVWUXFWRU que reciba valores para las tres variables miembro heredadas de,qvwuxphqwr. &ODVH0XVLFDSURJUDPDSULQFLSDO Esta clase contiene el SURJUDPDSULQFLSDO, que realiza las siguientes funciones: 1. Crea un DUUD\ de 6 referencias de la clase,qvwuxphqwr. 2. Crea seis objetos, dos de cada clase. 3. Imprime una serie de datos sobre la orquesta. El HVTXHOHWR del programa principal, contenido en el fichero 0XVLFDMDYD, será como sigue. Este programa está completo en lo que se refiere a la definición de los objetos del array de instrumentos, pero hay que definir los métodos VWDWLF YRLG LPSULPLU'DWRV,QVWUXPHQWR>@ RU y VWDWLF YRLG DILQDU7RGRV,QVWUXPHQWR>@RU. ILFKHUR0XVLFDMDYD LPSRUWMDYDXWLO SXEOLFFODVV0XVLFD^ PpWRGRVVWDWLF SXEOLFVWDWLFYRLGPDLQ6WULQJ>@DUJV^ Instrumento[] orquesta = new Instrumento[6]; int i = 0; FUHDFLyQGHREMHWRV orquesta[i++] = new Cuerda("violín", "nii-ñiiiiii-ñeee", 2000); orquesta[i++] = new Percusion("tambor", "porrom-pom-pom", 800); orquesta[i++] = new Cuerda("guitarra", "glin-glan-glin-glin", 500); orquesta[i++] = new Viento("trompeta", "ta-ra-riiiii", 1000, true); orquesta[i++] = new Viento("flauta", "tua-tua-tu-tuuuu", 1200, false); orquesta[i++] = new Percusion("platillos", "chin-chun-chin", 200); LPSULPLUGDWRVGHODRUTXHVWD LPSULPLU'DWRVRUTXHVWD DILQDU7RGRVRUTXHVWD VWDWLFYRLGLPSULPLU'DWRV,QVWUXPHQWR>@RUTXHVWD^ System.out.println("\nLa orquesta tiene :" +...); &203/(7$5(67(0e72'2 System.out.println("\nPasando revisión a la orquesta:"); for (int i=0; i<orquesta.length; i++) {... &203/(7$5(/&Ï',*2'((67(%8&/()25

VWDWLFYRLGDILQDU7RGRV,QVWUXPHQWR>@H^ for(int i = 0; i < e.length; i++) {... &203/(7$5(/&Ï',*2'((67(%8&/()25 ILQFODVH0XVLFD Como ayuda adicional se incluye a continuación el UHVXOWDGRTXHGHEHDSDUHFHUSRUFRQVROD: La orquesta tiene : 1 instrumentos de viento (metal) 1 instrumentos de viento (madera) 2 instrumentos de percusión 2 instrumentos de cuerda Pasando revisión a la orquesta: Soy un instrumento de cuerda, del tipo violín. Mi sonido es: "niiñiiiiii-ñeee" 1 y valgo 2000.0 Soy un instrumento de percusión, del tipo tambor. Mi sonido es: "porrompom-pom" y valgo 800.0 Soy un instrumento de cuerda, del tipo guitarra. Mi sonido es: "glinglan-glin-glin" y valgo 500.0 Soy un instrumento de Viento, de metal. Soy del tipo trompeta. Mi sonido es: "ta-ra-riiiii" y valgo 1000.0 Soy un instrumento de Viento, pero no soy de metal. Soy del tipo flauta. Mi sonido es: "tua-tua-tu-tuuuu" y valgo 1200.0 Soy un instrumento de percusión, del tipo platillos. Mi sonido es: "chin-chun-chin" y valgo 200.0 Afinando todos los instrumentos: Afinando violín: nii-ñiiiiii-ñeee Afinando tambor: porrom-pom-pom Afinando guitarra: glin-glan-glin-glin Afinando trompeta: ta-ra-riiiii Afinando flauta: tua-tua-tu-tuuuu Afinando platillos: chin-chun-chin (-(5&,&,2&$0%,$5(/352*5$0$35,1&,3$/ Crea un nuevo programa principal similar al de la clase 0XVLFD, llamado 0XVLFD, que utilice la clase $UUD\/LVW en vez de un DUUD\ para almacenar los distintos instrumentos musicales. El método PDLQ deberá ser similar al anterior. Haz este ejercicio en un directorio llamado (MHU. Las clases 9LHQWR, 3HUFXVLyQ y &XHUGD pueden ser idénticas a las del ejercicio anterior. 1 Para incluir el carácter dobles comillas ( ) en una cadena de caracteres se debe incluir la secuencia?. Por ejemplo, para imprimir +ROD³-DYD, habrá que utilizar la sentencia 6\VWHPRXWSULQWOQ³+ROD? -DYD?.