package com.trifulcas.repaso.oop;
// Las clases las definimos con la palabra clave class
// Y el nombre de la clase primera en mayúsculas
// Recordad que en java el nombre del archivo y la clase debe ser el mismo
public class Alumno {
// Lo habitual es que todas las propiedades sean private
// Para evitar que se puedan modificar desde el exterior
private String nombre;
private int nota;
private String mail;
// El constructor es la manera como se construye la instancia
// de la clase. Es el punto de entrada
// Podemos tener parámetros o no y podemos tener sobrecargas
// Un ejemplo típico sería este. Usamos todas las propiedades
public Alumno(String nombre, int nota, String email) {
// La palabra clave this hace referencia al propio objeto
// La usamos para desambiguar entre el nombre de los parámetros
// y de las propiedades de la clase
this.nombre = nombre;
this.nota = nota;
// Aquí no hace falta desambiguar porque se llaman diferente
mail = email;
}
// Yo los constructores los puedo sobrecargar
public Alumno(String nombre, int nota) {
this.nombre = nombre;
this.nota = nota;
mail = "No tiene";
// this(nombre,nota,"No tiene")
}
// Si yo hago sobrecarga lo suyo es que llamemos al otro constructor
public Alumno(String nombre) {
/* Si yo quiero hacer esto
this.nombre = nombre;
this.nota = 0;
mail = "No tiene";
Lo mejor es hacer esto:
*/
this(nombre,0,"No tiene"); // this hace referencia al constructor
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public int getNota() {
return nota;
}
public void setNota(int nota) {
this.nota = nota;
}
public String getMail() {
return mail;
}
public void setMail(String mail) {
this.mail = mail;
}
}
package com.trifulcas.repaso.oop;
public class TestOOP {
public static void main(String[] args) {
// Como el constructor de Alumno tiene parámetros
// Ahora tenemos que pasar los valores que nos piden
// Cada vez que hagamos una instancia del objeto
Alumno ana=new Alumno("Ana",7,"ana@ana.com");
// Como tengo sobrecargado el constructor puedo llamarlo
// solo con dos parámetros
Alumno eva = new Alumno("Eva",6);
}
}