Duda con método consultable
Publicado por Jose_Romero (10 intervenciones) el 05/11/2018 18:49:50
Buenas tardes, estoy realizando una clase con sus propiedades, constructor, toString, etc, pero tengo el siguiente problema. Le tengo puesto algunas restricciones a algunas propiedades y cuando llamo al constructor haciendo que salten alguna restricción lo hace bien, el problema es cuando cambio el valor de la variable en el set y luego lo llamo para comprar su valor y me lo da como bueno cuando tendría que saltar la restricción. Os adjunto mi codigo y mis pruebas:
Al ejecutar me muestra lo siguiente:
Nombre: Jose
Apellido1: Romero
Apellido2: Ruiz
Edad: 23
Estatura: 1.8
Peso: 75.0
Estado: 1
ToString: Persona2{nombre=Jose, apellido1=Romero, apellido2=Ruiz, edad=23, estatura=1.8, peso=75.0, estado=1}
Valor estado modificado: 6
Mi problema es que al llamar al nuevo valor de getEstado me devuelve 6, pero le paso la restricción de que devuelva -1, ¿que me podría fallar?
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
public class Persona2 {
private String nombre;
private String apellido1;
private String apellido2;
private Integer edad;
private double estatura;
private double peso;
private Integer estado;
private void checkEdad(Integer edad){
if(this.edad<0 || this.edad>100){
this.edad = -1;
}
}
public void setEdad(Integer edad) {
checkEdad(edad);
this.edad = edad;
}
private void checkEstatura(double estatura){
if(this.estatura<0.50 || this.estatura>2.10){
this.estatura = -1;
}
}
public void setEstatura(double estatura) {
checkEstatura(estatura);
this.estatura = estatura;
}
private void checkPeso(double peso){
if(this.peso<35 || this.peso>150){
this.peso = -1;
}
}
public void setPeso(double peso) {
checkPeso(peso);
this.peso = peso;
}
public void setEstatura(int estatura) {
this.estatura = estatura;
}
public void setPeso(int peso) {
this.peso = peso;
}
private void checkEstado(Integer estado){
if(this.estado<0 || this.estado>5){
this.estado = 0;
}
}
public void setEstado(Integer estado) {
checkEstado(estado);
this.estado = estado;
}
public String getNombre() {
return nombre;
}
public String getApellido1() {
return apellido1;
}
public String getApellido2() {
return apellido2;
}
public Integer getEdad() {
return edad;
}
public double getEstatura() {
return estatura;
}
public double getPeso() {
return peso;
}
public Integer getEstado() {
return estado;
}
public Persona2(String nombre, String apellido1, String apellido2, Integer edad, double estatura, double peso, Integer estado) {
this.nombre = nombre;
this.apellido1 = apellido1;
this.apellido2 = apellido2;
this.edad = edad;
this.estatura = estatura;
this.peso = peso;
this.estado = estado;
checkEdad(edad);
checkEstatura(estatura);
checkPeso(peso);
checkEstado(estado);
}
@Override
public String toString() {
return "Persona2{" + "nombre=" + nombre + ", apellido1=" + apellido1 + ", apellido2=" + apellido2 + ", edad=" + edad + ", estatura=" + estatura + ", peso=" + peso + ", estado=" + estado + '}';
}
public static void main(String[] args) {
Persona2 p = new Persona2("Jose", "Romero", "Ruiz", 23, 1.80, 75, 1);
System.out.println("Nombre: "+p.getNombre());
System.out.println("Apellido1: "+p.getApellido1());
System.out.println("Apellido2: "+p.getApellido2());
System.out.println("Edad: "+p.getEdad());
System.out.println("Estatura: "+p.getEstatura());
System.out.println("Peso: "+p.getPeso());
System.out.println("Estado: "+p.getEstado());
System.out.println("ToString: "+p.toString());
p.setEstado(6);
System.out.println(p);
}
}
Al ejecutar me muestra lo siguiente:
Nombre: Jose
Apellido1: Romero
Apellido2: Ruiz
Edad: 23
Estatura: 1.8
Peso: 75.0
Estado: 1
ToString: Persona2{nombre=Jose, apellido1=Romero, apellido2=Ruiz, edad=23, estatura=1.8, peso=75.0, estado=1}
Valor estado modificado: 6
Mi problema es que al llamar al nuevo valor de getEstado me devuelve 6, pero le paso la restricción de que devuelva -1, ¿que me podría fallar?
Valora esta pregunta


0