Java - Explicación de Método Intermedio

 
Vista:
Imágen de perfil de Ermest

Explicación de Método Intermedio

Publicado por Ermest (13 intervenciones) el 30/09/2016 16:57:33
Hola comunidad.

Me gustaría que me ayudaran a entender cómo esta trabajando este método, la verdad no entiendo mucho.
Soy algo novaton.

Estoy confundido con la parte "GatoSentado" <-- Esto es una clase o un objeto cómo tal?
Se que el nombre del método es gatoServicio y static, que lo puedo invocar sin necesidad de hacer una instancia.

public static GatoSentado gatoServicio(String nombre, String raza, Habilidades [] habilidades){

}

Estoy intentado trabajar con Junit, haciendo pruebas a mi clase llamada Gato; ¿cómo le hagó la prueba correctamente al método gatoServicio?

Por decir tengo mi clase GatoTest y el método para hacerle test es gatoServicioTest. Es por eso que pregunto lo de arriba.

Otra cosas que no entiendo muy bien es la parte de los parámetos más especifícamente el "Habilidades [] habilidades". Se que es un arreglo llamado "habilidades" pero lo que no entiedo es si Habilidades es objeto o clase y ¿cómo lo puedo setear en el gatoSerivicioTest?

Habilidades [] habilidades= ????? cómo identifico de que tipo es o que lleva oq ue ponerle?


Espero me ayuden. Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Explicación de Método Intermedio

Publicado por YYanes (144 intervenciones) el 30/09/2016 17:23:54
Hola amigo:

GatoSentado en este caso es una clase, ahora bien, las clases pueden ser al mismo tiempo "tipos de datos", por ejemplo:

1
2
3
4
5
6
7
8
9
10
11
public class Grupo {
 
    int Id;
    String nombre;
 
    //--------------------
    public Grupo() {
     Id = 0;
     nombre = "";
    }
}

En este caso "Grupo" es una clase, ahora bien:

Grupo g = new Grupo(); // Aquí "g" es un Objeto de la clase "Grupo", es decir, "g" es el nombre del objeto y "Grupo" es su tipología.

En el caso que planteas el método se llama gatoServicio(...) y como resultado devuelve un objeto de tipo GatoSentado, donde "GatoSentado" es una clase previamente implementada.
-------------------------------

Ahora, bien, lo otro que preguntas es con respecto al parámetro "Habilidades [] habilidades", pasa semejante al caso de GatoSentado, pues "Habilidades" (así, con H mayúscula) es una clase previamente implementada, y al decir Habilidades [] habilidades estás declarando un arreglo de objetos de tipo "Habilidades", en donde el nombre del arreglo sería "habilidades" (con h minúscula), luego, en ese mismo ejemplo podrías decir:

Habilidades h1= new Habilidades(); //Aquí cras un objeto de tipo Habilidades
h1 = habilidades[1]; // al objeto "h1" le asignas el valor del 2do elemento (posición 1) del arreglo "habilidades"

Espero haberle aclarado la duda.
Un GigaSaludo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Ermest

Explicación de Método Intermedio

Publicado por Ermest (13 intervenciones) el 30/09/2016 19:34:09
Gracias YYanes, me ayudaste a comprender más lo que esta pasando en ese método.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Explicación de Método Intermedio

Publicado por YYanes (144 intervenciones) el 01/10/2016 14:03:21
Me alegra haberle servido de algo.
Un GigaSaludo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Explicación de Método Intermedio

Publicado por ctmy (47 intervenciones) el 30/09/2016 18:16:24
Tu test seria basado en el resultado que estas esperando comparado con el resultado que el metodo de devuelve. Si son iguales entonces paso el test.

No creo que haya un tipo de dato llamado Habilidades, primero porque es español y los nombres de tipo de datos son todos en ingles en java. Ese arrego(array?) lleva datos de tipo 'Habilidades'.

Setealo como lo haces en una clase normal. Si es un arreglo tenes que usar un ciclo(loop) para setear cada valor en el arreglo.
1
Habilidades h = new Habilidades(); //si el constructor no tiene ningun parametro.

Test usando Dr. Java IDE. Esto no es una solucion al problema pero creo que te puede ayudar y aplicarlo a tus necesidades.
1
2
3
4
5
public class TuClase{
  public static GatoSentado gatoServicio(String nombre, String raza, Habilidades [] habilidades){
 
}
}

La clase donde se hace el test
1
2
3
4
5
6
7
8
9
10
11
12
13
import org.junit.Test;
import org.junit.Ignore;
import static org.junit.Assert.assertEquals;
 
public class  TuClaseTest{
//setear tus variables abajo.
 @Test
 public void primerTest() {
   //Por ejemplo. Si los valores de las variables aplicadas a tu metodo de devuelven 2, paso este tes
      assertEquals("2", TuClase.gatoServicio( nombre, raza, habilidades));
   }
 
//Crea mas test con diferentes datos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar

Explicación de Método Intermedio

Publicado por YYanes (144 intervenciones) el 30/09/2016 18:57:46
Amigo ctmy: por supuesto que los tipos de datos en Java tienen nombres en inglés, pero los "tipos de datos" puros son aquellos que todos conocen: int, String, boolean, float.... etc. Los demás son simplemente Objetos de clases, que también tienen nombres en inglés (aquellos que son típicos de Java), Ej: File, JOptionPane, LinkedList... entre muchos... muchos otros. Pero está claro que "Habilidades" es una Clase, por supuesto, una clase que fue previamente implementada por alguien de acuerdo a las características particulares de este proyecto, y por tanto no la encontrarás en ninguna de las librerías de Java.

Amigo Ermest, le recomiendo que si usted tiene todo el código fuente de ese proyecto, le dé Ctrl+Clik a "Habilidades" para que el compilador le lleve directamente hasta donde está la declaración e implementación de dicha clase.

Un GigaSaludo a todos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar