Computación - Consulta Java

 
Vista:
sin imagen de perfil

Consulta Java

Publicado por franco (3 intervenciones) el 14/05/2017 01:08:22
Hola, tengo que hacer un trabajo en Java, estoy empezando, y no entiendo porque no me funciona.
adjunto el archivo fuente y las pruebas que le van a realizar, y aunque logra pasar el test que especifica, no cumple otros, cuales podrian ser esos otros? ya que no logro darme cuenta. Gracias de antemano!.
Utilizo BlueJ, si hay alguna duda o algo que no agrege, avisenme!.

Implemente los siguientes metodos de la clase Equipo (puede agregar las variables de instancia o clase que considere necesario):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
public boolean equals (Object o)
public Equipo (String nombre)
public String getNombre()
 
------------------------
public class Equipo {
	public String name;
	/**
	 * Constructor con parametros. El nombre del equipo debe 
	 * convertirse a minusculas y sin prefijos o sufijos en blanco. 
	 * Imprime el nombre no es correcto cuando el nombre es
	 * null o vacio y asigna un String vacio
	 * @param nombre El nombre del equipo
	 */
	public Equipo (String nombre) {
 
	    if ( nombre == null || nombre.trim().length()==0)
	     {
	         this.nombreincorrecto();
	       }
		else {
		    name= nombre.trim().toLowerCase();
		  }
 
	}
 
 
	/**
	 * Retorna el nombre de este equipo
	 * @return el nombre del equipo
	 */
	public String getNombre(){
 
		return name.toString();
	}
 
	/**
	 * Retorna true cuando el nombre de este Equipo
	 * coincide con el nombre del otro equipo
	 * @return true cuando el nombre coincide
	 */
	public boolean equals (Object o){
	    if (o.toString().equals(toString()))
	    {return true;}
	    else{
	    return false;
	   }
 
	}
 
	public String toString(){
	    return name.toString();
	   }
	private void nombreincorrecto(){
	    System.out.println("El nombre es incorrecto");
	    name="";
	   }
}


Test:
Equipo e = new Equipo ("ManChester United");
System.out.println(e.toString());

Resultado: manchester united. ((Esto esta bien)).

Your code failed one or more hidden tests.
Your code must pass all tests to earn any marks. Try again.

Cuales podrian llegar a ser esos errores? 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
Imágen de perfil de Alejandro

Revisión del código Java

Publicado por Alejandro (562 intervenciones) el 03/10/2023 18:46:24
¡Claro, Franco! Vamos a analizar tu código y ver si podemos identificar posibles errores o mejoras.

1. Comparación de nombres:
- En el método `equals`, estás comparando los nombres directamente utilizando `toString()`. Sería más seguro verificar si el objeto `o` es una instancia de `Equipo` y luego comparar los nombres. Esto evitará problemas si `o` no es un `Equipo`.

1
2
3
4
5
6
7
public boolean equals(Object o) {
    if (o instanceof Equipo) {
        Equipo otroEquipo = (Equipo) o;
        return this.toString().equals(otroEquipo.toString());
    }
    return false;
}

2. Uso de `toString()`:
- En el método `equals`, estás usando `o.toString()`. Sería más claro y seguro comparar directamente el nombre del equipo.

1
2
3
4
5
6
7
public boolean equals(Object o) {
    if (o instanceof Equipo) {
        Equipo otroEquipo = (Equipo) o;
        return this.name.equals(otroEquipo.name);
    }
    return false;
}

3. Nombre del equipo:
- En el método `getNombre`, no es necesario usar `toString()`. Puedes simplemente devolver `name`.

1
2
3
public String getNombre() {
    return name;
}

4. Impresión de mensaje de error:
- En el método `nombreincorrecto`, aunque imprimes un mensaje de error, sería bueno lanzar una excepción para indicar claramente que algo está mal.

1
2
3
private void nombreincorrecto() {
    throw new IllegalArgumentException("El nombre es incorrecto");
}

5. Consistencia en nombres:
- Asegúrate de utilizar el mismo nombre para el atributo (`name`) en todos los lugares.

Haz estos ajustes y vuelve a ejecutar tus pruebas. Además, verifica si hay requisitos adicionales en las pruebas ocultas que puedan no cumplirse con la implementación actual. ¡Espero que esto te ayude a mejorar tu código!
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