Autor Tema: ¿Cuándo y por qué un método Java debe recibir parámetros y cuándo no? CU00630B  (Leído 7802 veces)

jorge1290

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 22
    • Ver Perfil
Hola, dejo a continuación el ejercicio a resolver del tema CU00630B y abajo las respuesta, espero haber entendido el ejercicio.

Agradezco toda la ayuda que me han brindado  :)


Citar
EJERCICIO

Considera estás desarrollando un programa Java donde necesitas trabajar con objetos de tipo DiscoMusical. Define las signaturas para métodos dentro dicha clase e indica si deberán ser procedimientos o funciones para los siguientes objetivos planteados:

1) Obtener la duración de una canción expresada como un número decimal en minutos (por ejemplo podría ser 3,22 minutos) recibiendo como dato el número de canción dentro del disco.

2) Pedir a un administrador de una compañía discográfica que introduzca la duración de todas las canciones (dichas duraciones se almacenarán como información del objeto). Es decir, el método se encargará de saludar al usuario y pedirle que vaya introduciendo una por una la duración de las canciones.

3) Obtener la duración del disco completo (suma de las duraciones de cada una de las canciones).

4) Añadir una canción al disco recibiendo como información para ello el título de la canción y su duración (se añadirá como última canción en el disco. Si el disco tenía por ejemplo 10 canciones, al añadirse una canción pasará a tener 11).


RESPUESTAS:

1) FUNCION - public float DuracionCancion (int NumeroCancion)

2)PROCEDIMIENTO - public void DuracionTotalCanciones ()

3) FUNCION  - public float SumaCancionesDIsco ()

4)PROCEDIMIENTO - public void AñadirCancionDisco (int NumeroCancion, String TituloCancion, float DuracionCancion)
« Última modificación: 20 de Septiembre 2015, 11:32 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:Ejercicios CU00630B. (Revision)
« Respuesta #1 en: 21 de Julio 2014, 23:29 »
Hola, la respuesta es correcta con las siguientes cosas a mejorar:

- Los nombres de métodos es preferible que comiencen con una letra minúscula. Por ejemplo public float duracionCancion en vez de public float DuracionCancion. No es obligatorio pero así es como lo hace la mayor parte de los programadores.

- Los nombres de parámetros (así como de atributos de clases) igual, mejor int numeroCancion que int NumeroCancion

Comenzar con mayúscula se reserva para nombres de clases, así resulta fácil distinguir qué es una clase de otra cosa.

Aquí hay una cosa mal planteada:

4)PROCEDIMIENTO - public void AñadirCancionDisco (int NumeroCancion, String TituloCancion, float DuracionCancion)

El objeto (instancia de la clase) sabrá cuántas canciones tiene, porque es información "interna" al objeto. Si el objeto lo sabe y la canción se va a poner en último lugar (como dice el enunciado), no debemos pasarle como parámetro int NumeroCancion porque el objeto ya sabe el número de canción que será. Es decir, sólo hemos de pasar como parámetros aquellas cosas que el objeto no es capaz de determinar.

Saludos.

jorge1290

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 22
    • Ver Perfil
Re:Ejercicios CU00630B. (Revision)
« Respuesta #2 en: 22 de Julio 2014, 02:38 »
muchísimas gracias por los concejos Alex, la verdad que me son de gran ayuda.

no sabia nada eso, pero ahora corregire esos errores, muchas gracias  :)

Thieba

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 22
    • Ver Perfil
Re:Ejercicios CU00630B. (Revision)
« Respuesta #3 en: 25 de Agosto 2014, 20:19 »
hola buenas tardes,
yo quería desarrollar un código para hacer este ejercicio pero me esta costando,
quieria preguntar si hacerlo asi es correcto,

1.   Public float  getduracionCancion (int numeroCancion)funcion
2.   Public void setduracionCanciones ()procedimiento
3.   Public float getduracionDisco ()funcion
4.   Public float setañadirCancion (string titulo, int duracionCancion)funcion
 
gracias por su atencion 

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:Ejercicios CU00630B. (Revision)
« Respuesta #4 en: 25 de Agosto 2014, 23:51 »
Hola Thieba, las cosas a corregir son las siguientes: public debe escribirse en minúsculas; Cuando escribes varias palabras la primera es minúsculas y cada vez que empiece una nueva debe ser mayúsculas, por ejemplo getDuracionCancion; el último método que has puesto sería public void setAñadirCancion (String titulo, int duracionCancion) y es de tipo procedimiento. ¿Por qué es un procedimiento? Porque no devuelve nada, simplemente se encarga de recibir una información que va a ser almacenada, pero no tiene que devolver una información que se le pide.

No te preocupes si te cuesta, trata de seguir avanzando y haciendo los ejercicios. Si no sabes cómo hacerlos pregunta para que te echemos una mano o te digamos lo que tienes que repasar.

Saludos

Thieba

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 22
    • Ver Perfil
Re:Ejercicios CU00630B. (Revision)
« Respuesta #5 en: 26 de Agosto 2014, 00:30 »
muchas gracias Alex,
es que estaba intentando traducir el ejercicio en codigo para ver si se compilaba pero me he confundido mucho.
gracias por tu disponibilidad
buenas noches

christagary

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 4
    • Ver Perfil
Re:Ejercicios CU00630B signaturas para métodos java
« Respuesta #6 en: 20 de Septiembre 2015, 07:04 »
Buenas noches,

Mirando las respuestas al ejercicio planteado, no entiendo porque el procedimiento y funcion del numeral 2 y 3 respectivamente no tienen parámetros.

Gracias por su atención

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:Ejercicios CU00630B signaturas para métodos java
« Respuesta #7 en: 20 de Septiembre 2015, 11:31 »
Hola christagary

Para determinar qué parámetros debe recibir un método debes pensar si el objeto dispondrá de dicha información o si es necesario aportársela porque no la conoce.

Imagínate que eres un objeto taxi. Tú dispondrás de una placa de matrícula donde figure tu matrícula. Por tanto un método como getMatricula() irá sin parámetros porque tú ya tienes la información de tu matrícula. En cambio setMatricula(String nuevaMatricula) sería un método para cambiar tu matrícula y poner otra nueva. En este caso el método requiere que se le pase cuál es la nueva matrícula.

En el ejercicio planteado estamos suponiendo que el objeto DiscoMusical dispone de una lista de canciones cada una con su nombre y duración. Ahora si con un método pretendemos establecer una nueva duración de canciones (por ejemplo porque hayamos detectado que existía un error) podemos hacer varias cosas. Podríamos usar un método donde le pasemos el número de canción y la nueva duración como parámetro. Pero en este caso el enunciado nos dice "el método se encargará de saludar al usuario y pedirle que vaya introduciendo una por una la duración de las canciones." Por tanto el método no recibe como parámetros información, sino que se encargará de pedir la información.

En el caso del taxi, en lugar de setMatricula(String nuevaMatricula) podríamos tener un método pedirNuevaMatriculaAlUsuario() de modo que en vez de pasársele al método la nueva matrícula sea el usuario quien la introduzca.

¿Cuándo usar métodos con parámetros y cuando no? De momento guíate por los enunciados de los ejercicios, a medida que avances programando en java irás siendo capaz de decidir cuándo es más adecuado que un método reciba parámetros y cuándo no.

Saludos.

christagary

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 4
    • Ver Perfil
Entendido.

En el numeral 2 ya metiendome en el codigo del procedimiento (que entiendo no hace parte de la signatura) se necesitaría crear un vector (donde se almacenaría la duración de cada canción) que iría hasta el número de canciones del disco, donde el número de canciones del disco debería ser un atributo del objeto DiscoMusical el cual previamante debería ser solicitado en otro procedimiento.

De igual forma metiendome en el código del numeral 3, como ya se conoce la duración de las canciones y el número de canciones, en este procedimiento se realizaría la suma de las canciones del disco (almacenadas en el vector).

Muchas gracias por su atención,

Christiann

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola christagary, para este ejercicio no es necesario definir el código, sino únicamente la signatura. A medida que avances con el curso se irán realizando ejercicios con creación de código. Saludos.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".