Alterar datos dentro de un constructor java
Frecuentes
Visto 157 veces
0
Estoy haciendo algo de programación Java básica donde tengo que crear clases que tienen constructores vinculados a otros constructores de clases. Por ejemplo, consulte mi siguiente código...
public class Friend {
private String name;
private Date dateOfBirth;
private String phoneNum;
public Friend(String name){
this.name=name;
this.dateOfBirth = null;
}
public Date setDOB(Date input){
return dateOfBirth;
}
}
public class Date {
final int MINDAYSINMONTH=1;
final int MAXDAYSINMONTH=30;
final int MINMONTHSINYEAR=1;
final int MAXMONTHSINYEAR=12;
private int day;
private int month;
private int year;
//constructor
public Date(int day, int month, int year){
this.day=day;
this.month=month;
this.year=year;
}
}
Estoy tratando de crear un nuevo Friend
, luego modifique el dateOfBirth
valor que está dentro del Friend
clase, así...
Friend trial = new Friend(input);
trial.setDOB(new Date(2, 15, 1991));
Pero mi salida sugiere que he creado un nuevo Friend
pero el dateOfBirth
no cambió a los valores que proporcioné arriba. ¿Podría alguien por favor ayudarme a entender lo que estoy haciendo mal?
3 Respuestas
1
porque tú setDOB
el método solo devuelve el valor
public Date setDOB(Date input){
return dateOfBirth;
}
¿Dónde está poniendo algo? Deberías cambiar el nombre de ese método. getDOB
, ya que eso es lo que está haciendo, y escribir un public void setDOB
que establece el valor.
contestado el 03 de mayo de 12 a las 15:05
0
Tus setDOB
El método es incorrecto: en realidad no está configurando nada en absoluto.
Intenta cambiar esto ...
public void setDOB(Date input){
this.dateOfBirth = input;
}
Probablemente también debería tener un método getter para que pueda verificar el valor después de que se haya configurado ...
public Date getDOB(){
return dateOfBirth;
}
contestado el 03 de mayo de 12 a las 15:05
-1, dar la respuesta en la tarea es contraproducente. Guíelos a la respuesta. - codigoshvgot
Lamento discrepar en esto: siempre encontré que la mejor manera de aprender Java era estudiar el código de otras personas. Si tienes código de otra persona que funciona correctamente, puedes estudiarlo para ver por qué funciona y así aprender de él. Al menos eso es lo que me parece lo mejor. Además, para un método simple de setter/getter, es difícil revelar algo. - wattostudios
las tres respuestas me ayudaron, después de leer las dos primeras de hvgotcodes y sp00m ya obtuve la respuesta, y leer la respuesta de WATTO me ayudó a saber si lo hice bien, no veo ningún problema si hay quienes dan pistas y aquellos que guían a través del método, ambas son buenas maneras, por cierto, gracias a todos los que respondieron, ahora finalmente puedo terminar mi programa. - Licuado
0
Pista: tu colocador se toma a sí mismo como captador.
contestado el 03 de mayo de 12 a las 15:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas java constructor or haz tu propia pregunta.
Vuelva a leer su código de establecimiento. ¿Asigna algo al campo dateOfBirth en este setter? ¿Por qué devuelve algo? - JB Nizet