Definición de métodos de instancia y métodos de clase.
Al declarar un método, el tipo de método que no se modifica con la palabra clave static es un método de instancia, y el tipo de método que se modifica con la palabra clave static es un método de clase, también llamado método estático.
Por ejemplo:
classMain{inta;floatmax(floatb,floatc){//Método de instancia...}staticfloatmax(floatd,floate){//Método de clase...}}
La diferencia entre métodos de instancia y métodos de clase.
1. El objeto llama al método de instancia:
Cuando el archivo de código de bytes de una clase se carga en la memoria, al método de instancia de la clase no se le asignará una dirección de entrada. Solo después de que la clase cree un objeto, al método de instancia de la clase se le asignará una dirección de entrada, de modo que el archivo de código de bytes de una clase se cargue en la memoria. El método de instancia puede ser utilizado por cualquier objeto creado por la clase para la ejecución de llamadas a objetos.
Aviso:
Cuando creamos el primer objeto, al método de instancia en la clase se le asigna una dirección de entrada. Cuando el objeto se crea nuevamente, la dirección de entrada ya no está asignada, es decir, la dirección de entrada del método es compartida por todos los objetos. Cuando todos los objetos no existen, se cancela la dirección de entrada del método.
Los métodos de instancia no solo pueden operar variables de instancia, sino también variables de clase. Cuando un objeto llama a un método de instancia, las variables de instancia y las variables de clase que aparecen en el método son variables asignadas al objeto, pero las variables de clase se comparten con todos los demás objetos.
2. Llame al método de clase usando el nombre de la clase:
Para los métodos de clase en una clase, cuando la clase se carga en la memoria, se asigna la dirección de entrada correspondiente, de modo que el método de clase no solo puede ser llamado y ejecutado por cualquier objeto creado por la clase, sino que también puede llamarse directamente a través de nombre de la clase. La dirección de entrada del método de clase no se cancela hasta que se cierra el programa.
Aviso:
Los métodos de instancia no pueden ser llamados por el nombre de la clase, sólo por los objetos. Y debido a que las variables miembro de instancia no han asignado memoria antes de que la clase cree el objeto, el método de la clase no puede operar las variables de instancia.
3. Principios de diseño de métodos de clase:
Si un método no necesita operar ninguna variable de instancia en la clase para satisfacer las necesidades del programa, puede considerar diseñar dicho método como un método estático.
Para los métodos estáticos, puede llamarlo directamente con el nombre de la clase sin crear un objeto. La creación de un objeto hará que se asigne espacio de memoria a las variables de instancia en la clase.