La ficha del equipo
Te apuntas al equipo de fútbol del instituto. El entrenador te da una ficha en blanco.
Si la deja vacía, tendrá que rellenarla después a mano. Es más cómodo rellenarla en el momento de apuntarte.
En Java pasa igual. Hoy aprendes a crear un objeto que nace ya relleno.
Palabras clave
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| Constructor | Un trozo de código de la clase que se ejecuta al crear un objeto con new. | Player(String name) |
| Parámetro | Un dato que le das al constructor entre paréntesis. | String name |
| this | Significa este objeto, el que se está creando ahora. | this.name |
| Valor por defecto | Lo que vale un atributo si nadie lo rellena: 0, false o null. | int goals; vale 0 |
| Dos constructores | Una clase puede tener varios. Java elige según los datos que das. | con dorsal y sin dorsal |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Antes: rellenar a mano
class Player {
String name;
int number;
int goals;
}
public class Main {
public static void main(String[] args) {
Player player = new Player();
System.out.println(player.name + " " + player.number + " " + player.goals);
// Hay que rellenarlo a mano, atributo por atributo.
player.name = "Lucía";
player.number = 9;
System.out.println(player.name + " " + player.number + " " + player.goals);
}
}
Un objeto vacío vale cero y nada
Habrás visto null 0 0 en la primera línea. Un texto sin rellenar vale null, que significa nada.
Un número sin rellenar vale 0. Un boolean sin rellenar vale false.
Es fácil olvidarse de un dato. Un constructor lo evita.
El constructor se llama como la clase
Un constructor es como un método, pero sin tipo y con el mismo nombre que la clase.
Recibe datos entre paréntesis. Dentro los guarda en los atributos.
Hay un detalle. El parámetro y el atributo se llaman igual. Con this.name dices: el atributo de este objeto.
Pruébalo: el jugador nace relleno
class Player {
String name;
int number;
int goals;
// Se ejecuta con new, justo al crear el jugador.
Player(String name, int number) {
this.name = name;
this.number = number;
goals = 0;
}
}
public class Main {
public static void main(String[] args) {
Player player = new Player("Lucía", 9);
System.out.println(player.name + " lleva el " + player.number);
System.out.println("Goles: " + player.goals);
// Crea otro jugador con tus datos.
}
}
Ejemplo resuelto: new Player("Lucía", 9)
| Paso | Qué ocurre | name | number | goals |
|---|---|---|---|---|
| 1 | new fabrica el objeto vacío | null | 0 | 0 |
| 2 | this.name = name | Lucía | 0 | 0 |
| 3 | this.number = number | Lucía | 9 | 0 |
| 4 | goals = 0 | Lucía | 9 | 0 |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Repaso rápido
Inténtalo
Repaso rápido
3 preguntasTus respuestas se corrigen aquí y no se guardan. Una cuenta guarda tus resultados.
Una clase, dos constructores
A veces no tienes todos los datos. Por ejemplo, un jugador nuevo aún no tiene dorsal.
Puedes escribir dos constructores con distintos parámetros. Java elige el que encaja con lo que escribes en new.
Así, new Player("Leo") usa el corto y new Player("Leo", 7) usa el largo.