Curso de Java | Modificador static

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.

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

static int restar...

static int multiplicar...

static int dividir...

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

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