Autor Tema: duda entrega CU00636B ¿se puede duplicar un método?  (Leído 2946 veces)

Thieba

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 22
    • Ver Perfil
duda entrega CU00636B ¿se puede duplicar un método?
« en: 29 de Agosto 2014, 13:01 »
queria hacer el ejemplo del apunte antes de iniciar con el ejercicio pero tengo unas dudas sin resolver en mi cabeza,
miradme el codigo y ayudadme a aclarar mis dudas por favor,
gracias.

Código: [Seleccionar]
public class Ejemplo
{
    //declaracion atributos
    boolean admitido;
    int desplazamientoX;
    int desplazamientoY;

    //constructor
    public Ejemplo ()
    {//inicializacion atributos
        admitido = false;
        desplazamientoX = 0;
        desplazamientoY = 0;
    }//cierre constructor

    public void setAdmitido (boolean valorAdmitido)
    {
        admitido = valorAdmitido;
        //if sencillo
        if ( admitido == true) { System.out.println ("Se ha admitido el valor"); }
    }

    public void chequearAdmision ()
    { 
        boolean valoracionAdmision;
        valoracionAdmision = admitido;
        //if else sencillo
        if ( admitido == true)
        {System.out.println ("Se ha admitido el valor");}
        else
        {System.out.println ("No se ha admitido el valor");}
    }

    public void setDesplazamiento (int valorDesplazamientoX,int valorDesplazamientoY)
    {
        desplazamientoX = valorDesplazamientoX;
        desplazamientoY = valorDesplazamientoY;
        //if con else if y cláusula final else
        if (desplazamientoX == 0 && desplazamientoY == 1)
        {System.out.println ("Se procede a bajar el personaje 1 posición");}

        else if (desplazamientoX == 1 && desplazamientoY == 0)
        {System.out.println ("Se procede a mover el personaje 1 posición a la derecha"); }

        else if (desplazamientoX == -1 && desplazamientoY == 0)
        {System.out.println ("Se procede a mover el personaje 1 posición a la izquierda");}
        else
        {System.out.println ("Los valores no son válidos");}
    }
}

se pùede duplicar un metodo?
por ejemplo en vez de :
Código: [Seleccionar]
public void chequearAdmision ()
    { 
        boolean valoracionAdmision;
        valoracionAdmision = admitido;
        //if else sencillo
        if ( admitido == true)
        {System.out.println ("Se ha admitido el valor");}
        else
        {System.out.println ("No se ha admitido el valor");}
    }
podria ser :

Código: [Seleccionar]
public void setAdmitido (boolean valorAdmitido)
    { 
             admitido =valorAdmitido;
        //if else sencillo
        if ( admitido == true)
        {System.out.println ("Se ha admitido el valor");}
        else
        {System.out.println ("No se ha admitido el valor");}
    }
Y de paso decir si el codigo en si es correcto respecto al ejemplo dado.
gracias.
« Última modificación: 30 de Agosto 2014, 11:17 por Alex Rodríguez »

dongo

  • Intermedio
  • ***
  • Mensajes: 177
    • Ver Perfil
Re:EJEMPLO CU00636B
« Respuesta #1 en: 29 de Agosto 2014, 14:07 »
Hola bueno intento explicarte tu duda, la cual no se si he entendido correctamente.

Por norma general, consenso, estandarización o como quieras llamarlo los métodos que tienen como sus tres primeras letras de inicio get o set, simplemente son métodos que en la mayoría de los casos solo tendrán dentro una instrucción, O establecer el valor del atributo(set) para el cual fue creado, O devolver el valor de atributo(get) para el que fue creado.

Por ejemplo, imagina que tenemos un atributo llamado edad de tipo int, pues este atributo llevaría asociados sus métodos set y get, que serían:

Código: [Seleccionar]
public int getEdad(){
     return edad;
}

public void setEdad(int paramEdad ){
     edad=paramEdad;
}


Como siempre digo... todo método debe tener una única funcionalidad. La funcionalidad del get es devolver el valor de un atributo, pues todo el código contenido en el método get debe ir dirigido a devolver el valor de la edad y ya esta.

Con el set lo mismo, la función de un método set, es la de establecer el valor de un atributo, pues todo su código debe ir dirigido nada mas a establecer el valor del atributo y ya esta.

Esto que comento anteriormente es lo ideal a la hora de programar, es decir cumplir una serie de normas que se suelen exigir despues en un entorno profesional.

Por otro lado tu a cada método le puedes poner el código que quieras, como si le quieres meter 1000 lineas a un método set, pero como comento no es lo ideal.



Por otro lado analizando tu ejercicio creo que la forma correcta es tal y como lo tienes.
Excepto por el método setDesplazamiento, yo para ajustarme a los estándares, partiría ese método en 2 y crearía los métodos setDesplazamientoX(...) y setDesplazamientoY(...)
y cuyo código sería:

Código: [Seleccionar]
public void setDesplazamientoX(int param){
desplazamientoX=param;
}
public void setDesplazamientoY(int param){
desplazamientoY=param;
}

Por otro lado, si te dicen también que imprimas por pantalla, pues lo incluyes, pero no mucho mas.

Ahora otra cosa... sobre la sobrecarga de métodos("duplicar")...Creo que lo verás dentro de un par de lecciones, pero te adelanto algo:

Esto se puede hacer siempre y cuando entre los métodos a sobrecargar, haya una diferencia en los parámetros de entrada, te pongo un ejemplo:

Código: [Seleccionar]
public void checkAdmitido(boolean valor){
if(valor==true){
System.out.println("Admitido");
}
else{
System.out.println("No Admitido");
}
}

public void checkAdmitido(){
if(admitido==true){
System.out.println("Admitido");
}
else{
System.out.println("No Admitido");
}
}
public void checkAdmitido(String valor){
        if(valor.equals("true")){
System.out.println("Admitido");
}
else{
System.out.println("No Admitido");
}
}

Estos tres métodos anteriores si te fijas, se llaman igual, pero pueden coexistir en una misma clase, ya que los tres presentan diferencias entre los parámetros de entrada, uno tiene un parámetro de tipo boolean, otro  tiene un parámetro de tipo String, y el ultimo no tiene parámetros. Por lo cual este método checkAdmitido(...) se dice que está sobrecargado.

Y bueno nada mas, espero que te sirva la lección, jeje.

Un salduo!!

NOTA: Por cierto, una buena indentación(orden en el código) también es muy importante.
« Última modificación: 29 de Agosto 2014, 14:13 por dongo »

Thieba

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 22
    • Ver Perfil
Re:EJEMPLO CU00636B
« Respuesta #2 en: 29 de Agosto 2014, 16:40 »
muchas gracias dongo, tu contribucion me es muy util.

 

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".