Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: BelCrow en 08 de Septiembre 2014, 21:47
-
favor revisar....
Profesor:
//clase
public class Profesor {
private String nombre;
private String apellido;
private int edad;
private boolean casado;
private boolean especialista;
//constructor sin parametr
public Profesor () {
this("", "", 0, false, false);
}
//constructor con parametros
public Profesor (String nombre, String apellido, int edad, boolean casado, boolean especialista) {
this.nombre = nombre;
this.apellido = apellido;
this.edad = edad;
this.casado = casado;
this.especialista = especialista;
}
//setters
public void setNombre (String nombre) {
this.nombre = nombre;
}
public void setApellido (String apellido) {
this.apellido = apellido;
}
public void setEdad (int edad) {
this.edad = edad;
}
public void setCasado (boolean casado) {
this.casado = casado;
}
public void setEspecialista (boolean especialista) {
this.especialista = especialista;
}
//getters
public String getNombre () {return nombre;}
public String getApellido () {return apellido;}
public int getEdad () {return edad;}
public boolean getCasado () {return casado;}
public boolean getEspecialista () {return especialista;}
}
-
Hola, el código está perfecto. Además es un buen ejemplo de diferentes usos de la palabra clave this en java.
En este fragmento:
public Profesor () {
this("", "", 0, false, false);
}
La palabra clave this seguida de paréntesis y parámetros lo que hace es invocar un constructor (al constructor que recibe cinco parámetros). En este caso invoca al constructor pasándole como nombre "", como apellido "", como edad 0, como casado false y como especialista false. También podía haberse escrito con iguales resultados:
public Profesor () {
nombre = "";
apellido = "";
edad = 0;
casado = false;
especialista = false;
}
Esta forma, aunque es igualmente válida, consume más líneas de código.
En cambio this en otras partes del código como: this.nombre = nombre; lo que hace es diferenciar entre el atributo (this.nombre) y el parámetro que recibe la función (nombre).
Resulta un ejemplo interesante.
Saludos
-
Gracias Alex, esa forma la vi en el ejercicio CU00652B que la usaste para invocar un constructor, me pareció super practico, fácil y ademas con menos lineas, así que decidí implementarlo en este ejercicio...
Quiero hacer algunas pruebas y luego hacer preguntas sobre este modo de crear constructores, las haré en este mismo tema pero cuando llegue a mi casa y las realice..
-
Ya hice las pruebas y ellas solas respondieron mis dudas...
Hay que usas this en el constructor siguiendo el orden en las que fueron puestas las variables.. si te falta una variable, te tira error y si no lo haces en orden también... incluso si las variables fueron introducidas de un solo golpe sigue teniendo las mismas reglas... ejp.
public class Profesor2 {
private String nombre, apellido;
private int edad;
private boolean casado, especialista;
//constructor sin parametr
public Profesor2 () {
this("", "", 0, false, false);
}
}
........