Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: mzamora60 en 27 de Abril 2015, 00:12

Título: Ejercico CU00630B del tutorial Java signaturas de métodos
Publicado por: mzamora60 en 27 de Abril 2015, 00:12
buena tarde. estoy en la practica 30 en donde se me pide hacer un desarrollo donde un usuario introduzca "n" numero de duración de canciones pero al momento de querer asignar los métodos a un objeto que cree en otra clase me devuelve que necesito un int. duda 2), si al momento en que el usuario tenga que introducir el numero de duracion uno tendria que meter una instruccion como System.out.println(" buen dia. Por favor Introduzca el no. de duracion 1:"); . Primero cree un proyecto nuevo llamado ProyectoMusical y posterior otra clase DuracionDeCanciones donde genero el objecto. Los codigos en cada clase se muestran a continuación:

Código: [Seleccionar]
package proyectomusical;

public class ProyectoMusical {

    private int duracion = 0;
    private int numerocancion = 0;
   

public ProyectoMusical(){   
   
    duracion = 0;
    numerocancion = 0;
}
public void setDuracion(int valorDuracion){
    duracion =  valorDuracion;
}
public void setNumeroCancion(int valorNumeroCancion){
    numerocancion = valorNumeroCancion;
}

public int getDuracion(){
 return duracion;}
   
public int getNumeroCancion()
{ return numerocancion;}

}

(Nota: los sets se metieron para que se conserven los numeros de duracion de las canciones en el objeto si bien entendi y posterior los gets para retornar la información)
y el codigo de la clase DuracionDeCanciones es el siguiente:

Código: [Seleccionar]
package proyectomusical;

public class DuracionDeCanciones {
   public static void main(String[] args){
   
     ProyectoMusical ObtenerDuracion = new ProyectoMusical ();
     ObtenerDuracion.setDuracion(valorDuracion); /[b]/[u] es aquí donde no se porque me pide un int[/b][/u]
     ObtenerDuracion.getDuracion();
     
     ProyectoMusical Cancion1 = new ProyectoMusical();
     Cancion1.getNumeroCancion();
     
     
  }
   
}

Gracias y espero sus comentarios.
Título: Re:Ejercico CU00630B del tutorial Java signaturas de métodos
Publicado por: Dan_SB en 27 de Abril 2015, 04:58
Hola mzamora60!

Mira, al parecer tienes una especie de confusión... miremos estas lineas:

Citar
public static void main(String[] args){
   
     ProyectoMusical ObtenerDuracion = new ProyectoMusical ();
     ObtenerDuracion.setDuracion(valorDuracion); // es aquí donde no se porque me pide un int[/u]
     ObtenerDuracion.getDuracion();
     
     ProyectoMusical Cancion1 = new ProyectoMusical();
     Cancion1.getNumeroCancion();
     
     
  }

1.Creaste un objeto ProyectoMusical llamado ObtenerDuracion. "ObtenerDuracion" tan solo es un nombre al objeto, no un llamado de método (Te escribo esto por si acaso! )

2. Esta parte del código:

Citar
ObtenerDuracion.setDuracion(valorDuracion);

Cuando escribiste esta parte del código:
Citar
public void setDuracion(int valorDuracion){
    duracion =  valorDuracion;
}

¿Ves esa parte que esta dentro del paréntesis?. . . int valorDuracion, eso se llama parámetros.

¿Que es esa cosa?  :o

Son las variables que necesita el método para poder funcionar, en este caso se pedía la duración de la canción cada vez que la vas a llamar. La variable dentro del método esta definida como int, es por eso que te pide el int, porque para poder arrancar, necesita dicho dato. Los tipos de datos en los parámetros se definirán depende del problema que estas desarrollando:

Ejemplo:

Quiero un método que cargue nombre de personas:
Citar
public void setNombre(String dato){
nombre = dato;
}

Quiero un método que cargue la edad:
Citar
public void setEdad(int dato){
edad = dato;
}

Quiero un método que cargue decimales:
Citar
public void setDecimal(double dato){
numero = dato;
}

Hasta operaciones con complejidad... por ejemplo

Quiero una funcion que me diga si soy feo o lindo: ::)
Citar
public String FeoOLindo(int numero){
        numw = numero;
        int num = new Random().nextInt(10);
        if(numw == numero) return "Eres lindo.";
        else return "Eres feo.";     
    }
}

Un método bastante estúpido a simple vista, pero un poco complejo a la vez ¿verdad?

Todos requerirán del dato que el parámetro pida para poder funcionar!  :D

Citar
si al momento en que el usuario tenga que introducir el numero de duracion uno tendria que meter una instruccion como System.out.println(" buen dia. Por favor Introduzca el no. de duracion 1:");

Si, hacerlo dinámico con el usuario! lo mayor posible y claro!
Saludos!!
Título: Re:Ejercico CU00630B del tutorial Java signaturas de métodos
Publicado por: Alex Rodríguez en 28 de Abril 2015, 09:26
Hola mzamora, para una mejor organización de los foros

- Lee por favor https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0 donde se explica cómo pegar código y cómo poner título a los temas

- Cada hilo (tema) del foro debe tratar sobre un asunto, por ejemplo "ejercicio CU00624B". Cuando se quiera pasar a otro asunto debe abrirse un nuevo tema. De esta forma mantenemos una mejor organización.

En este caso como se pasa de CU00624B a CU00630B voy a dividir el tema en dos temas, uno para CU00624B y otro para CU00630B

Gracias a todos por la colaboración  ;)