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