Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: vgrisales en 06 de Febrero 2015, 02:27

Título: Ejercicio concepto de signatura de metodos en java CU00630B
Publicado por: vgrisales en 06 de Febrero 2015, 02:27
Buenas  noches a todos los de aprender a programar. Aquí adjunto el entregable de signatura de metodos pues no se si esta bien, pero ps tengo una duda en la parte donde el administrador ingresa las duraciones de las canciones una por una no se si es de esta forma,
lo otro es que  al realizar la solicitud en el objeto introducir duraciones no me aparece el mensaje de texto que le indica al administrador que ingrese las duraciones de  las canciones una por una ,
tambien cuando creo los objectos en blueJ y compilo se borran los objetos creados y hay que volver a colocarlos cada que haya compilado.

agradeco mucho la ayuda prestada
att: victor 

Código: [Seleccionar]
public class DiscoMusical {

    private float obtenerDuracion;
    private float cancion1;
    private float cancion2;
    private float cancion3;
    private float cancion4;
    private float cancion5;
    private float cancion6;
    private float cancion7;
    private String tituloCancion;

    public DiscoMusical (){
        cancion1 = (float) 5.41;
        cancion2 = (float) 3.53;
        cancion3 = (float) 3.59;
        cancion4 = (float) 4.37;
        cancion5 = (float) 3.39;
        cancion6 = (float) 4.36;
        cancion7 = (float) 0;
    }

    //Metodo para obtener la duracion de las canciones a traves del numero de la cancion dentro del disco
    public void setObtenerDuracion (float valorObtenerDuracion){

        obtenerDuracion = valorObtenerDuracion;

        if (obtenerDuracion == 1) { obtenerDuracion = cancion1; }
        else if (obtenerDuracion == 2){ obtenerDuracion = cancion2;}
        else if (obtenerDuracion == 3){ obtenerDuracion = cancion3;}
        else if (obtenerDuracion == 4){ obtenerDuracion = cancion4;}
        else if (obtenerDuracion == 5){ obtenerDuracion = cancion5;}
        else if (obtenerDuracion == 6){ obtenerDuracion = cancion6;}
        else if (obtenerDuracion == 7){ obtenerDuracion = cancion7;}
        else {obtenerDuracion = (float) 0;}
    }//cierre metodo

    //Metodo para solicitarle al administrador que introdusca cada una de las duracion de las canciones
    public void setIntroducirDuracion(float valorCancion1,float valorCancion2,float valorCancion3,float valorCancion4,float valorCancion5,float valorCancion6) {

        System.out.println("Buenas señor administrador por favor introduzca una por una la duracion de las canciones. ");
       
        cancion1 = valorCancion1;
        cancion2 = valorCancion2;
        cancion3 = valorCancion3;
        cancion4 = valorCancion4;
        cancion5 = valorCancion5;
        cancion6 = valorCancion6;

    }//cierre metodo

    //metodo para ingresar cancion nueva su titulo
    public void setAñadirTituloCancion (String valorTituloCancion){
        tituloCancion = valorTituloCancion;
    }//cierre metodo

    //metodo para ingresar cancion nueva su duracion
    public void setAñadirDuracionCancion (float valorDuracion){
        cancion7 = valorDuracion;
    }//cierre metodo

    //Metodo devuelve el valor de obtener la duracion de las canciones
    public float getObtenerDuracion (){ return obtenerDuracion; }//cierre metodo

    //metodo devuelve el valor de la cancion añadida titulo de la cancion
    public String getAñadirTituloCancion (){ return tituloCancion; }//cierre metodo

    //metodo devuelve el valor de la cancion añadida duracion de la cancion
    public float getAñadirDuracionCancion(){ return cancion7; }//cierre metodo

}//cierre de la clase
Título: Re:Entregable concepto de sigantura de metodos en java CU00630B
Publicado por: toni_apr en 06 de Febrero 2015, 22:36
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#msg6413 (https://www.aprenderaprogramar.com/foros/index.php?topic=1059.msg6413#msg6413)

Saludos
Título: Re:Entregable concepto de sigantura de metodos en java CU00630B
Publicado por: vgrisales en 07 de Febrero 2015, 03:31
Gracias por la respuesta me pondré a repasar ahora mismo. y agradecerles a todos por estar pendiente de nuestras inquietudes gracias.