Java - Objetos y el null

 
Vista:
sin imagen de perfil

Objetos y el null

Publicado por Sabino (1 intervención) el 15/05/2017 02:19:45
Hola buenas, tengo una duda en mi programa.
creo 2 objetos null y cuando le pregunto si son iguales me dice que es falso. El problema está en que el objeto "o" no es null segun mi programa y queria saber por que.
es un metodo de mi clase.
pd:(no tengo que cambiar el encabezado)

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
Equipo e = new Equipo(null); //Le paso un null en vez de un nombre por ej ("Argentina");
Equipo f = new Equipo(null);
.
.
.
public boolean equals(Object o){
	if(Nombre==null) {
	    if(o==null){                     // aca es donde está el problema cuando igualo e con f
	        return true;
	        }
	    else{
	        return false;
	        }
	   }
	else{
	    if(o==null){
	      return false;
	    }
	    else{
	        if(o.equals(Nombre)){
	           return true;
	        }
	        else{
	           return false;
	        }
	    }
	}
}
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
sin imagen de perfil
Val: 190
Ha disminuido su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Objetos y el null

Publicado por preguntas (70 intervenciones) el 15/05/2017 06:21:24
Tu problema es que aun no tienes claro el tema de "objetos", "atributos", "referencias", "instancias".

Al principio esto te rompe la cabeza, pero repasa un poco mas lo teórico, revisa la documentación de java y cuando lo entiendas el código no será un problema.

Te dejo un ejemplo para que veas algunas diferencias:

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
59
public class Fichero {
 
    String nombreFichero;
    String extensionFichero;
 
    public Fichero() {
        this.nombreFichero = "";
        this.extensionFichero = "";
    }
 
    public String getNombreFichero() {
        return nombreFichero;
    }
 
    public void setNombreFichero(String nombreFichero) {
        this.nombreFichero = nombreFichero;
    }
 
    public String getExtensionFichero() {
        return extensionFichero;
    }
 
    public void setExtensionFichero(String extensionFichero) {
        this.extensionFichero = extensionFichero;
    }
 
    public static void main(String[] args) {
        Fichero f1 = new Fichero();
        System.out.println(f1);
 
        Fichero f2 = new Fichero();
        System.out.println(f2);
 
        System.out.println(f1.equals(f2));
 
        f1 = f2;
 
        System.out.println(f1);
        System.out.println(f2);
 
        System.out.println(f1.equals(f2));
 
        //Otra idea...
        Fichero f3 = null;
        Fichero f4 = new Fichero();
        if (f3 == null) {
            System.out.println("f3 es null");
        }
        else{
            System.out.println("f3 NO es null");
        }
        if(f4==null){
            System.out.println("f4 es null");
        }
        else{
            System.out.println("f4 NO es null");
        }
    }
}

Cualquier consulta, no dudes en escribir.
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