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()); } }