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;
private String password;
// Si no se pueden modificar desde el exterior no servirían para nada
// Las podemos modificar pero desde setters y getters
// Son métodos públicos que nos sirven para obtener el valor o
// modificarlo pero que son una capa entre mis propiedades
// y el exterior
// password es una propiedad de solo escritura
/**
* @param password the password to set
*/
public void setPassword(String password) {
this.password = password;
}
/**
* @return the nombre
*/
public String getNombre() {
return nombre;
}
/**
* @param nombre the nombre to set
*/
public void setNombre(String nombre) {
this.nombre = nombre;
}
/**
* @return the nota
*/
public int getNota() {
return nota;
}
/**
* @param nota the nota to set
*/
public void setNota(int nota) {
// Como yo tengo un setter puedo comprobar los valores
// antes de ponerlos
if (nota>0 && nota <=10) {
this.nota = nota;
}
}
// Mail es de solo lectura
/**
* @return the mail
*/
public String getMail() {
return mail;
}
// Esto es una propiedad virtual
public boolean getAprobado() {
return nota>=5;
}
}
package com.trifulcas.repaso.oop;
public class TestOOP {
public static void main(String[] args) {
Alumno ana=new Alumno();
// Pongo los valores con set
ana.setNombre("Ana");
ana.setNota(8);
// Puedo poner password
ana.setPassword("1234");
// Obtengo con get
System.out.println(ana.getNombre());
// Pero no leerlo
// System.out.println(ana.getPassword());
// No puedo poner el mail
// ana.setMail("sss");
System.out.println(ana.getMail());
// Yo no sé si esa propiedad existe de verdad o no
// Ni me importa: La idea es que de una clase solo conocemos
// los métodos que publicamos. Su organización interna
// No nos preocupa
System.out.println(ana.getAprobado());
}
}