Java - Hacer atributos privados

 
Vista:
Imágen de perfil de mINI
Val: 22
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

Hacer atributos privados

Publicado por mINI (8 intervenciones) el 10/11/2020 23:32:12
Buenas chicos, muchas gracias por sus respuestas en anteriores post.

Bien, pues resulta que tengo una duda que me reclama el profesor. Me pide que los atributos sean privados en este archivo. El problema viene en que cuando la entrada los intenta llamar desde main estos están como privados y no dan respuesta. Dejo abajo las entradas.

Como comprenderán el error me lo da en la última al no ser privadas, y no se como seguir.

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
public class Nombre {
    String nom;
    String apel1;
    String apel2;
     Nombre(String nom, String apel1, String apel2) {
        this.nom = nom;
        this.apel1 = apel1;
        this.apel2 = apel2;
    }
 
    public String getNombre() {
        return nom;
    }
 
    public void setNombre(String nom) {
        this.nom = nom;
    }
 
    public String getApellido1() {
        return apel1;
    }
 
    public void setApellido1(String apel1) {
        this.apel1 = apel1;
    }
 
    public String getApellido2() {
        return apel2;
    }
 
    public void setApellido2(String apel2) {
        this.apel2 = apel2;
    }
}

Son estas:
1
2
Nombre n = new Nombre("Luis", "Perez", "Rodriguez");
System.out.println(n.getNombre());

1
2
Nombre n = new Nombre("Luis", "Perez", "Rodriguez");
System.out.println(n.getApellido1());

1
2
Nombre n = new Nombre("Luis", "Perez", "Rodriguez");
System.out.println(n.getApellido2());

Y la última

1
2
3
4
5
6
7
try {
    Field f = Nombre.class.getDeclaredField("nom");
    System.out.println("Nombre.nom es privado = " + Modifier.isPrivate(f.getModifiers()));
}
catch(NoSuchFieldException e) {
    System.out.println(e);
}
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 Billy Joel
Val: 2.497
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Hacer atributos privados

Publicado por Billy Joel (708 intervenciones) el 11/11/2020 02:04:21
No se que es lo que estas tratando de hacer con tu clase Nombre, pero mis instintos me indican que debo dejarla así:
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
public class Nombre {
 
    private String nom;
    private String apel1;
    private String apel2;
 
    public Nombre(String nom, String apel1, String apel2) {
        this.nom = nom;
        this.apel1 = apel1;
        this.apel2 = apel2;
    }
 
    public String getNombre() {
        return nom;
    }
 
    public void setNombre(String nom) {
        this.nom = nom;
    }
 
    public String getApellido1() {
        return apel1;
    }
 
    public void setApellido1(String apel1) {
        this.apel1 = apel1;
    }
 
    public String getApellido2() {
        return apel2;
    }
 
    public void setApellido2(String apel2) {
        this.apel2 = apel2;
    }
}

Entonces cuando he probado con las entradas de abajo así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Nombre n = new Nombre("Luis", "Perez", "Rodriguez");
System.out.println(n.getNombre());
 
Nombre n1 = new Nombre("Luis", "Perez", "Rodriguez");
System.out.println(n1.getApellido1());
 
Nombre n2 = new Nombre("Luis", "Perez", "Rodriguez");
System.out.println(n2.getApellido2());
 
try {
    Field f = Nombre.class.getDeclaredField("nom");
    System.out.println("Nombre.nom es privado = " + Modifier.isPrivate(f.getModifiers()));
} catch (NoSuchFieldException e) {
    System.out.println(e);
}

El resultado ha sido este:
1
2
3
4
Luis
Perez
Rodriguez
Nombre.nom es privado = true
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
Imágen de perfil de Mini
Val: 22
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

Hacer atributos privados

Publicado por Mini (8 intervenciones) el 11/11/2020 09:34:22
Muchas gracias. Me estaba complicando demasiado!
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