Hola Víctor
En primer lugar he de decirte que es encomiable el ímpetu con que has emprendido el ejercicio.
Es un intento muy bueno. Sirve como práctica para descubrir cosas que de momento no funcionan, pero funcionarán en el futuro.
Transcribo aquí uno de los métodos que has enviado.
public void setAñadirDuracionCancion (float valorDuracion){
cancion7 = valorDuracion;
}//cierre metodo
El método anterior tiene una signatura como todos los métodos. La signatura de éste es:
public void setAñadirDuracionCancion (float valorDuracion)
Y nada más.
La palabra reservada 'public' especifica el alcance del método.
'void' es el retorno del método, significa vacío. Así pues este es un método de tipo procedimiento. Si devuelve otro tipo de dato, será un método de tipo función.
'setAñadirDuracionCancion' es el nombre del método
'valorDuracion' es el nombre del parámetro que se aporta al método, en este caso es de tipo float.
Así pues, para cada método solicitado, tienes que crear sus signaturas.
Nota: el método que llamas
public void setObtenerDuracion (float valorObtenerDuracion)
tiene una incongruencia
la particula set indica que se trata de un setter (establecer un valor para el atributo). Y en el nombre incluyes la palabra Obtener.
Estas juntando los conceptos establecer y obtener. Un método solo hará una cosa, o bien establecer o bien obtener.
Te sugiero que repases la lección, se explica muy bien el concepto de signatura de método.
En este ejercicio, no hay que practicar con código, sino aplicar la teoría para crear las signaturas.
Te adjunto un enlace a este ejercicio creado por otro usuario del foro. Espero que te sirva.
https://www.aprenderaprogramar.com/foros/index.php?topic=1059.msg6413#msg6413Saludos