Contenido


Accesando a Métodos

Ahora ya sabemos la diferencia entre una clase y un objeto. Recuerda que la clase es el molde donde dejamos la abstracción del objeto que en este caso serán sus atributos y sus métodos. Y gracias al objeto podemos definir datos a esos atributos y mandar llamar los métodos.

//Accesando a los métodos
Doctor myDoctor = new Doctor();
myDoctor.showName();

Métodos static

Hay otra forma de llamar métodos, como usando la clase Math que es una clase estática, usando sus métodos estáticos como .random, .sqrt, .PI para cálculos. Lo hacíamos a través del nombre de la clase . el método estático o la variable estática. Esta es la segunda forma que tenemos de llamar métodos.

  1. A partir del objeto de la instancia que se creo.
  2. Definir ese método/variable como estático y llamarlos a partir del nombre de la clase.
  3. Se pueden usar en toda la clase.
  4. Están definidos por la palabra reservada static.

Los métodos estáticos pueden ser accesados indicando el nombre de la clase, la notación punto y el nombre del método. Siempre vamos a utilizar el nombre de la clase para poder acceder a ellos. Además se invoca en una clase que no tiene instancias de la clase. Recordaremos que los métodos statics o variables statics no es necesario crear un objeto para llamarlos, simplemente con el nombre de la clase.

Untitled

En este caso el método suma es de tipo static, tiene dos parámetros que son int a e int b. La forma de llamar a este método suma, simplemente por tener la palabra static lo puedo llamar a partir del nombre de la clase que es Calculadora.suma

Untitled

Ahora si tuvieramos una variable dentro de calculadora podría definir por ejemplo PI, valor. Y la forma en como voy a estar llamándolas es a través del nombre de la clase.elNombreDeLaVariable.

Scope de las variables statics

Untitled

Imaginemos que la clase C tiene una variable de tipo estático y además un método de tipo estático. Si quiero acceder a la variable valor desde la clase A, lo que tendría que hacer es ClaseC.variable, me imprimirá su valor. Ahora si yo quiero que la ClaseA altere su valor, y si quisiera desde la ClaseB imprimir el valor de la variable después de la modificación de la ClaseA me estaría imprimiendo uno (en caso de aumentar en uno desde ClaseA). Y todas las alteraciones que le haya hecho A van a repercutir en las demás clases.

Pero hay formas de llamar a estos elementos de una manera más directa.

Untitled

En la parte superior en el encabezado usando la palabra import, de esta forma podemos poner miembros estáticos de una forma mucho más resumida, directa, concisa. Podemos utilizar la palabra static dentro de import. Con el * indico todos los miembros de la clase math-calculadora y además le indico que es una clase estática. Así nos ahorramos escribir el nombre de la clase.