Static
Los métodos static no requieren una instancia de la clase, ni pueden acceder a los datos de la clase/objeto de forma implícita.
Un método static se distingue en algunos lenguajes de programación con la palabra clave static colocada en algún lugar en la firma del método.
Los metodos estaticos 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 (.) .metodoEstatico
Suelen emplearse para realizar operaciones comunes a todos los objetos de la clase.
Dado que los métodos estáticos tienen sentido a nivel de clase y no a nivel de objeto (instancia) los métodos estáticos no pueden acceder a datos miembros que no sean estáticos.
C++
Class MyClass {
public:
static float areaCirc (radio){
//do some math here
return area;
}
};
Java
public class Mechanics {
// add an instance variable for the object ID
private int cadence;
private int gear;
private int speed;
//static method
public static double speedURM (int dist, float time){
// do some math here
return urmSpeed;
}
}