Ver Mensaje Individual
  #5 (permalink)  
Antiguo 12/09/2015, 15:45
Kritik
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años, 1 mes
Puntos: 31
Respuesta: Cuando utilizar metodos estaticos ???

Un método estático es aquel que no se puede instanciar.

Cuando se instancia un objeto, se hace una copia de todos los atributos y métodos que tiene. Hace una copia porque distintos objetos de la misma clase pueden tener diferentes valores para sus atributos.

Ejemplo.
Objeto persona.
Atributo String colorDeOjos.
Un objeto persona llamado Sara tiene el atributo colorDeOjos en valor "verde".
Otro objeto persona llamado Lucia tiene el atributo colorDeOjos en valor "azules".

Como se necesita que ambos objetos tengan distintos valores para sus atributos se necesita que se hayan copiado los objetos.

Una vez dicho esto, hay ocasiones en las que un objeto, un atributo o un método no puede ser copiado. Por su propia naturaleza sería incoherente tener una copia de un mismo objeto. Y por eso se declara como estático. No hay normas en cuanto a la elección de cuando se ha de declarar el objeto como estático, porque es algo que depende de como se quiera resolver el problema para el cual se desarrolla el programa.

Ejemplo:

Se hace un programa para controlar distintas cosas de un hospital. Una de las cosas que se quieren controlar es lo relacionado con las habitaciones. Para ello se crea una clase habitación. Se sabe que las habitaciones tienen 2 camas, así pues habrá 2 atributos llamados cama1 y cama2.

Las habitaciones pueden tener un paciente en la cama1, otro en la cama2, o pueden no tener ningún paciente en la cama1, o ninguno en la cama2, o ninguno en ninguna cama. Además, cada habitación tendrá distintos valores para cama1 y cama2 con los nombres de los pacientes.

Por eso es necesario hacer una instanciación para cada 1 de las habitaciones, porque cada habitación tiene un número de habitación que la distingue del resto de instanciaciones de las habitaciones. Y además, sus atributos pueden ir cambiando según los nombres de los pacientes y sus necesidades.

Sin embargo, otra de las cosas que se quieren controlar es el aire acondicionado. El aire acondicionado en un hospital no puede ser controlado desde las habitaciones. Todas las habitaciones deben de hacer uso si o si de él. Y además ninguna de las habitaciones, ni de los pasillos, ni de los quirófanos, etc puede hacer el más mínimo cambio en él.

Por eso se puede decidir que el objeto aire acondicionado sea un objeto a parte. Desde el objeto aire acondicionado puede tener los atributos de quierofanoX, o quirófanos o habitaciones para controlar, desde la clase de aire acondicionado sus atributos si se quieren. Pero no al revés. Y por lo tanto sería ilógico hacer copias de este objeto. Porque única y exclusivamente hay 1 único aire acondicionado en todo el hospital.

Como ves, es una cuestión de abstracción del problema, de la manera en la que uno enfoque la manera de arreglar el problema.