Está en la página 1de 4

.

Figueroa Vera Silvia Azucena

112511

K065 (20) PROGRAMACIÓN ORIENTADA A OBJETOS

Mtro. Emmanuel Hernández Ortiz

Actividad de aprendizaje 3. Interfaces y Herencia

Estado de México, 20 de Septiembre, 2020


Instrucciones:
Instrucciones:
Lee con atención los siguientes requerimientos:
Se dispone de una orquesta que puede tener instrumentos de viento, cuerda o percusión. Diseñar las
correspondientes clases sabiendo que todas tienen un método en común que es tocar, que visualizará el
mensaje “Estoy soplando/rascando/golpeando el instrumento” según sea de viento, cuerda o percusión,
seguido del nombre de instrumento. Crear una clase Orquesta que contenga una lista (atributo de la
clase de tipo ArrayList) con un instrumento de cada tipo. La lista rellenada se le pasará al constructor de
Orquesta como parámetro. Dicha aplicación dispondrá, además, de un método llamado afinar (que
deberá ser estático) que recibirá como parámetro el instrumento a afinar y que invocará al
correspondiente método tocar del instrumento, de forma que aparecerá algo así como: Afinando…Estoy
soplando/rascando/golpeando el instrumento….

Como instrumentos será necesario desde el programa principal, crear una flauta, un violín y un bombo,
necesarios para crear la lista y poder instanciar un objeto de la clase Orquesta. Inicialmente se llamará al
método estático afinar, pasándole cada uno de los instrumentos y posteriormente, se sacará un mensaje
“EMPEZAMOS EL CONCIERTAZO” y a través del objeto orquesta, llamaremos a un método concierto,
que haga que toquen todos los instrumentos.

abstract class Instrumento {


public void tocar1 () {}
public static void afinarInstrumento (Instrumento i) {
if (i instanceof Viento)
afinarViento (i);
else if (i instanceof Cuerda)
afinarCuerda (i);
i.tocar1();

}
public static void afinarCuerda(Instrumento i) {

}
public static void afinarViento(Instrumento i) {

}
class Viento extends Instrumento {
public void tocar () { soplar1();
}
private void soplar1() {

}
class Cuerda extends Instrumento {public void tocar () { rascar (); }
private void rascar() {
}
public class Orquesta {ArrayList<Instrumento> instrumentos; public class
Orquesta { instrumentos = new ArrayList<Instrumento>(3); }
public void tocar(){for(int i=0; i<instrumentos.size(); i+
+)instrumentos.get(i).tocar();
}
}
public void main(String[] args) {instrumentos.add(new Viento());
instrumentos.add(new Cuerda());
for(int i=0; i<instrumentos.size(); i+
+)Instrumento.afinarInstrumento(instrumentos.get(i));tocar();}}

}
private void soplar() {

}
abstract class Instrumento {
public void tocar () {}
public void afinar () { }
class Percusion extends Instrumento {public void tocar() { golpear(); }
private void golpear() {

}
public void afinar() { golpear(); golpear(); }
}

class Orquesta {ArrayList<Intrumento> instrumentos;


public Orquesta { instrumentos = new ArrayList<Intrumento>(3); }
public void tocar () {for(int i=0; i<instrumentos.size(); i+
+)instrumentos.get(i).tocar();}
}
public void afinar (Instrumento i) {i.afinar();
i.tocar(); }}public PruebaOrquesta {public void main(String[] args)
{Orquesta orquesta= new Orquesta();orquesta.instrumentos.add(new
Viento());
orquesta.instrumentos.add(new Cuerda());orquesta.instrumentos.add(new
Percusion());
for(int i=0; i<instrumentos.size(); i+
+)orquesta.afinar(instrumentos.get(i));orquesta.tocar();}
public void tocar() {

class Orquesta {privateArrayList<Instrumento> instrumentos;


public Orquesta {instrumentos = newArrayList<Instrumento>(3);
public boolean add void Instrumento(Instrumento i) {return
instrumentos.add(i);}public boolean removeInstrumento(Instrumento i) {return
instrumentos.remove(i);}
public void tocar() {for(inti=0; i<instrumentos.size(); i+
+)instrumentos.get(i).tocar();}
public void afinar (Instrumento i) {i.afinar();i.tocar(); }}
}
public void afinar() {
}
class PruebaOrquesta{public void main(String[] args) {Orquesta
orquesta= new Orquesta();orquesta.add Instrumento(new
Viento());orquesta.addInstrumento(newCuerda());orquesta.addInstrumento(newPercusion()
);
for(inti=0; i<orquesta.instrumentos.size(); i+
+)afinar(instrumentos.get(i));orquesta.tocar();}}
class PruebaOrquesta1{public void main(String[] args) {Orquesta
orquesta= new Orquesta();
orquesta.add Instrumento(new
Viento());orquesta.addInstrumento(newCuerda());orquesta.add Instrumento1(new
Percusion();
for(int i=0; i<orquesta.instrumentos.size(); i+
+)afinar(instrumentos.get(i));orquesta.tocar();}}

class Orquesta implementsIterable<Instrumento>


{privateList<Instrumento> instrumentos;
public Orquesta { int newArrayList;
instrumentos = newArrayList<Intrumento>(3);
public boolean addInstrumento(Instrumento i) {return
instrumentos.add(i);}
public boolean removeInstrumento(Instrumento i) {return
instrumentos.remove(i);}
public Iterator<Instrumento> iterator() {return
instrumentos.iterator();}public void tocar() {
for(Instrumento i: this)i.tocar();}
}
public void afinar (Instrumento i) {i.afinar();i.tocar(); }}
class PruebaOrquesta{public static void voidmain(String[] args)
{Orquesta orquesta= new Orquesta();orquesta.addInstrumento(new
Viento());orquesta.addInstrumento(new Cuerda());orquesta.add Instrumento(new
Percusion());
for(Instrumento i: orquesta)afinar(i);orquesta.tocar();}}

}
}

}
}
public void afinar() {

También podría gustarte