Tu portal de
formación online

Infórmate
Inicio » Catálogo » Curso de Programación en Java » Métodos estáticos o de clase

Curso de Programación en Java

Métodos estáticos o de clase

Igual que las variables, los métodos también pueden utilizar el modificado static. En ese caso se denominan métodos estáticos o métodos de clase.

Se cargan en memoria en tiempo de compilación y no a medida que se ejecutan las líneas de código del programa. Van precedidos del modificador static.

Para invocar a un método estático no se necesita crear un objeto de la clase en la que se define:

  • Si se invoca desde la clase en la que se encuentra definido, basta con escribir su nombre.
  • Si se le invoca desde una clase distinta, debe anteponerse a su nombre, el de la clase en la que se encuentra seguido del operador punto (.) <NombreClase>.metodoEstatico

Suelen emplearse para realizar operaciones comunes a todos los objetos de la clase. No afectan a los estados de los mismos (a los valores de sus variables de instancia). Por ejemplo, si se necesita un método para contabilizar el número de objetos creados de una clase, tiene sentido que sea estático ya que su función (aumentar el valor de una variable entera) se realizaría independientemente del objeto empleado para invocarle.

No conviene usar muchos métodos estáticos, pues si bien se aumenta la rapidez de ejecución, se pierde flexibilidad, no se hace un uso efectivo de la memoria y no se trabaja según los principios de la Programación Orientada a Objetos.

 

 class Hucha{
    static int numHuchas=0;
    double ahorros=0.0;
    public static void main(String args[]){
            Hucha hucha1=new Hucha();
            contarHuchas();
            hucha1.ahorros=2500;
            hucha1.modificarAhorros();
            Hucha hucha2=new Hucha();
            contarHuchas();
            hucha2.ahorros=5000;
            hucha2.modificarAhorros();
            System.out.println("Numero de huchas="+numHuchas);
        }
        //La funcionalidad del método varía en función de si es invocado
        //por el objeto hucha1 o por hucha2.
        //No tendría sentido considerarlo estático.
        public void modificarAhorros(){
            if(ahorros>4000){
                ahorros=ahorros-0.1*ahorros;
            }
               System.out.println("Ahorros="+ahorros);
        }
        //La funcionalidad del método es la misma,
        //independientemente del objeto empleado para invocarlo.
        //Sí tiene sentido declararlo estático.
        public static void contarHuchas(){
            numHuchas++;
        }
}

Muchas clases de la API disponen de métodos estáticos.
Por ejemplo, la clase Math del paquete java.lang cuenta con multitud de ellos. Estos métodos se emplean para realizar operaciones matemáticas.
La clase Thread, del mismo paquete, cuenta con varios: uno que se emplea para retardar la ejecución de código es “void sleep(long retardo)”.
Consultar la API.
Lo importante de estos métodos es que para su utilización no es necesario instanciar un objeto de las clases en las que se encuentran ya que son estáticos.
 public class MetodosEstaticosAPI{
    public static void main(String args[]){
        int num=100;
        System.out.println("La raiz cuadrada de "+num+" es "+Math.sqrt(num));
        
        //Bloque try ... catch. Se estudiará más adelante. A nivel de 
        //ejecución no afecta.
        //Se introduce un retardo en la ejecución del código de 3 sg
        try{
            Thread.sleep(3000);
        }catch(InterruptedException e){}
        System.out.println("La potencia de 2 elevado a 8 es "+Math.pow(2,8));
    }
}

  

Variables locales y variables globales

 

Si desea obtener un acceso sin restricciones a los contenidos del curso de Programación en Java y disfrutar de todas las herramientas del aula virtual (Videos explicativos streaming, acceso a los foros, chat, ejercicios resueltos, la ayuda del tutor, audioconferencia, estudio de grabación, test y actividades de autoevaluación, etc...) puede inscribirse completamente gratis y comenzar a realizar de forma inmediata el curso.
Este sitio web utiliza cookies de terceros con la finalidad de analizar el uso que hace de nuestra web y personalizar el contenido de los anuncios. Si continúa navegando entendemos que acepta su uso. Más información × Cerrar