package com.trifulcas.herencia.estatico;
public class Cliente {
private String nombre;
public static double iva=.21;
public Cliente(String nombre) {
super();
this.nombre = nombre;
}
/**
* @return the nombre
*/
public String getNombre() {
return nombre;
}
/**
* @param nombre the nombre to set
*/
public void setNombre(String nombre) {
this.nombre = nombre;
}
@Override
public String toString() {
return "Cliente [nombre=" + nombre + ", iva=" + iva + "]";
}
// Método estático compartido por todas las instancias
// Igual que la propiedad
public static void saludo() {
// Yo desde un método estático no puedo acceder
// a propiedades no estáticas
// Error: System.out.println(nombre);
System.out.println("Hola que tal");
// A las propiedades estáticas, sí
System.out.println(iva);
}
}
package com.trifulcas.herencia.estatico;
public class Utils {
public static String saludo(String nombre) {
return nombre;
}
public static boolean esPrimo(int numero) {
for(int i=2;i<numero;i++) {
if (numero %i==0) {
return false;
}
}
return true;
}
}
Cliente ana = new Cliente("Ana");
Cliente eva = new Cliente("Eva");
Cliente pep = new Cliente("Pep");
// Yo puedo acceder vía la clase porque es estático
Cliente.iva=.10;
// Esto no tiene sentido: Cliente.setNombre("www");
ana.iva=.21;
System.out.println(ana);
System.out.println(eva);
System.out.println(pep);
pep.saludo();
// Al ser un método estático no hace falta que tenga
// una instancia para invocarlo
Cliente.saludo();
// No hace falta: Utils misutilidades=new Utils();
System.out.println(Utils.saludo("Ana"));
System.out.println(Utils.esPrimo(17));