Herramientas de usuario

Herramientas del sitio


bloque2:metodosstatic

¡Esta es una revisión vieja del documento!


Métodos estáticos

Un método es un bloque de instrucciones definidas dentro de una clase que realizan una determinada tarea y a las que podemos invocar (llamar) mediante un nombre identificador.

Los métodos pueden ser de dos tipos:

  • Métodos estáticos: se definen como static
  • Métodos de instancia

Algunos de los métodos estáticos que hemos usado hasta ahora:

//Se ejecutan desde la clase
System.out.println("Introduce un valor");
Math.random();

También hemos creado objetos y usado métodos no estáticos (de instancia):

//Es necesario construir un objeto
String cadena = "Fernando";
Scanner input = new Scanner(System.in);
 
//se llama a sus métodos a partir del objeto creado
cadena.charAt(4);
input.nextLine();

Si usamos métodos:

  • Se modulariza el código
  • Se permite reutilizar el código, sin tener que volver a escribirlo.

Estructura de un método

[modificadores] tipoRetorno identificadorMetodo([lista parametros])
{
   // instrucciones 
   [return valor;] 
}
  • Modificadores: public, private, static
  • Tipo retorno: Tipo de datos que devuelve el método. Puede devolver un tipo concreto, o no devolver nada: void
  • Identificador: El identificador que usaremos para ejecutarlo, igual que el de una variable. Su forma de escribir el identificador de un método es lowerCamelCase
  • Lista de parámetros: Los tipos de datos que necesita el método para operar.
  • Return: se usa para devolver el valor de retorno. El tipo retornado tiene que coincidir con el tipo retorno del método.
static int sumar(int entero1, int entero2){ 
   int resultado; 
   resultado = entero1 + entero2; 
   return resultado; 
}

Tipo void

Definimos como void los métodos que no devuelven un valor. Harán cosas pero no devuelven un valor. Normalmente muestran datos por pantalla.

void es una palabra reservada usada cuando no hay valor de retorno. No se pueden crear variables void.

static void sumar(int entero1, int entero2){ 
   int resultado; 
   resultado = entero1 + entero2; 
   System.out.println("La suma es: " + resultado); 
}

Aunque no devuelva nada, podemos seguir usando la instrucción return, si hay algún caso especial en el que queremos que el método termine.

Modificador static

Por ahora, la principal característica que nos interesa de la cláusula static es, que para usarlo no necesitamos crear un objeto de la clase en la que se encuentra definido.

Por ejemplo: todos los métodos de la clase Math, son estáticos, y no necesitamos crear una variable de tipo Math para ejecutarlos.

La clase String tiene algunos métodos que también son estáticos, pero otros que solo los puedo ejecutar desde una variable de tipo String.

Modificador public

Se indicará al comienzo de la definición de un método, cuando quiero poder usarlo desde clases que se encuentran en otros packages.

package sumar;
 
public class Ejercicio1 { 
   public static void main(String[] args) { 
      int num1=3, num2=5; 
      System.out.println("La suma es: " +
      sumar(num1, num2)); 
   } 
 
   public static int sumar(int entero1, int entero2){ 
      int resultado; 
      resultado = entero1 + entero2; 
      return resultado; 
   }
}

Y lo usamos desde una clase en otro package:

package ejercicios;
 
public class Ejercicio1 { 
   public static void main(String[] args) { 
      int num1 = 3;
      int num2 = 5; 
      System.out.println("La suma es: " + sumar(num1, num2)); 
   } 
}

Sobrecarga de Métodos

Java nos permite crear métodos dentro de la misma clase y con el mismo identificador. Esto se conoce como sobrecarga overloading.

Para que dos métodos puedan tener el mismo nombre debe haber alguna de estas diferencias entre ellos:

  • Diferencia en la cantidad de parámetros que reciben.
  • Diferencia en el tipo de parámetros que reciben.

Ejemplos de clases con sobrecarga de métodos son las clases Math o String:

Como vemos hay varios métodos repetidos, pero tienen alguna diferencia entre el tipo del parámetro o la cantidad de parámetros que reciben.

Recursividad

Se conoce con el nombre de recursividad a la técnica en la que un método hace una llamada a sí mismo. Es una técnica muy potente, pero también muy pesada (consumo de recursos).

Método recursivo para obtener el valor factorial de un entero positivo

static int factorial(int entero){ 
   if (entero == 0){
      return 1; 
   }    
   return factorial(entero - 1) * entero; 
}

© 2025 Fernando Valdeón

bloque2/metodosstatic.1544826466.txt.gz · Última modificación: 16/09/2024 20:53 (editor externo)