Modificador static en Java

Curso de Java

11.  
22.  

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.

Métodos estáticos

No precisan de una instancia para ser invocados.

public class MetodosStatic {
 public static void main(String[] args) {
  ClaseConMetodoStatic.saludar("Pepe");
 }
}

class ClaseConMetodoStatic{
 public static void saludar(String nombre){
  System.out.println("Hola " + nombre);
 }
}

Si llamo a un método static desde una instancia, me da un warning, pero compila.

public class MetodosStatic {
 public static void saludar(String nombre){
  System.out.println("Hola " + nombre);
 }
 public static void main(String[] args) {
  MetodosStatic metodosStatic = new MetodosStatic();
  metodosStatic.saludar("Pepe");
 }
}

Los métodos static no pueden usar las características no static de una clase. El siguiente código no compila.

public class I_notaMetodosStaticII {

 String variableNoEstatica = null;
 public static void saludar(String nombre){
  variableNoEstatica = "Rodolfo";
 }
}

Variables estáticas

Van precedidas del modificador static.

El modificador static permite acceder a las variables y métodos aunque no tengamos una instancia del objeto que los contiene.

Al contrario que con las variables no static, no habrá una por cada instancia de una clase, sino una para todas las instancias de la clase.

public class VariableStatic {
 static int variableEstatica = 0;
 int variableNoEstatica = 0;
 public static void main(String [] args){
  //Incrementamos la variable estática
  VariableStatic.variableEstatica++;
  VariableStatic.variableEstatica++;

  //Incrementamos la variable no estática
  VariableStatic  variableStatic_1 = new VariableStatic();
  VariableStatic  variableStatic_2 = new VariableStatic();

  variableStatic_1.variableNoEstatica++;
  variableStatic_2.variableNoEstatica++;

  //Mostramos resultados
  
  System.out.println(VariableStatic.variableEstatica); // 2
  System.out.println(variableStatic_1.variableNoEstatica); // 1
  System.out.println(variableStatic_2.variableNoEstatica); // 1 
 }
}
Ver preguntas

Ejercicio: calculadora con métodos static

Rehacer la calculadora, pero convirtiendo sus cuatro métodos en static.

public static void main(String [] args){
    BufferedReader br = ...
    ...
    
    int n1 = ...
    int n2 = ...
    String op = ...
    int resultado = 0;
    if( op ...){
        resultado = sumar(...);
    }else if(op ...){

    }...

    System.out.println(resultado);
}

static int sumar(a,b){
    return ...
}

static int restar...

static int multiplicar...

static int dividir...

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.