Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.
Un constructor es el código que se ejecuta cuando instancias una clase.
Aunque en un principio pueda parecer lo contrario, un constructor NO es un método. Un constructor es un elemento de una clase cuyo identificador coincide con el de la propia clase.
¿Para qué sirve un constructor?
Su finalidad es controlar cómo se inicializa una instancia de una determinada clase. Habitualmente, dan valor a las variables miembro de una clase. A diferencia de los métodos, los constructores sólo se ejecutan cuando se quiere crear una nueva instancia.
public class Main {
public static void main(String[] args) {
new Persona("Pepe");
}
}
class Persona{
String nombre;
public Persona(String nombre){
this.nombre = nombre;
}
}
Si no sé cuales son los parámetros que tengo que poner, puedo ponerme sobre el paréntesis de los parámetros y pulsar ctrl + space
Constructor vacío
Generar constructor automáticamente:
Btn dch → Source → Generate Constructor using Fields
public class Main {
public static void main(String[] args) {
new MiClase();
}
}
class MiClase{
public MiClase(){
System.out.println("Hola!!!"); // Hola!!!
}
}
Constructor con parámetros
public class Main {
public static void main(String[] args) {
new Persona("Pepe");
//La siguiente línea genera un error en tiempo de compilación
// new Persona();
}
}
class Persona{
public Persona(String nombre){
System.out.println("Hola" + nombre); // Hola Pepe
}
}
Ejercicio: Constructor y variable static
Para hacer este ejercicio utilizaremos dos ficheros. Cada fichero almacenará su propia clase:
- La clase Persona. Tendrá una propiedad estática llamada numPersonas y una propiedad no estática llamada edad. En el constructor de la clase Persona debemos incrementar tanto la variable estática como la no estática.
- La clase Main. Tendrá un método public static void main que creará 4 personas. A continuación, imprimir el valor de la variable estática de la clase y el valor de las variables no estáticas de cada una de las instancias.