Código PHP:
Ver originalfunction rectangulo_area($a, $b)
{
return $a * $b;
}
class Rectangulo {
public static function area($a, $b)
{
return $a * $b;
}
}
echo rectangulo_area(5, 5) . '<br>';
echo Rectangulo::area(5,5);
Funcionalmente hablando es lo mismo. conceptualmente el segundo es un objeto sin estado lo cual queda fuera de lugar con las definiciones de objeto; tener estado y comportamiento.
Los métodos estáticos no son parte del paradigma orientado a objetos, son una conveniencia que te proporciona el lenguaje.
tiene uso por que hay operaciones que no requieren una instancia de objeto para hacer su trabajo es al caso tipico de las utilerías o helpers (Clase Math en Java).
Cita:
Iniciado por Benderzuelo Para mi por ejemplo que no tengo excesivos conocimientos me parece mucho más cómodo usar los métodos estáticos porque no tengo que instanciarlos.
Tener un archivo con funciones y lo que tu haces es lo mismo. No es programación orientado a objetos, solo estas haciendo uso de funciones de una forma mas elegante.
Te sugiero que primero comprendas bien el paradigma, si lo haces, determinar si necesitas un método estático es sencillo.
Asi que toma tu tiempo para familiarizarte con los siguientes conceptos:
- Objeto
- Clase
- Abstracción y Encapsulamiento (Si están relacionados)
- generalización (herencia)
- Polimorfismo
- Interfaz
- Clase Abstracta
Espero que esto aclare un poco el tema.