CodeGym /Blog Java /Random-ES /Métodos Java
John Squirrels
Nivel 41
San Francisco

Métodos Java

Publicado en el grupo Random-ES
Las variables y constantes en Java almacenan valores, mientras que los métodos contienen un conjunto de operadores que realizan determinadas acciones. Es decir, los métodos en Java determinan el comportamiento de los objetos y realizan acciones sobre algunas variables. Pueden realizar acciones, así como producir un resultado determinado.

¿Qué son los métodos en Java?

Los métodos definen el comportamiento de los objetos y son una secuencia de comandos que le permiten realizar alguna operación en el programa. En otros lenguajes de programación, los métodos suelen denominarse "funciones", y con razón. De hecho, un método es una función en el sentido matemático. Por lo general, se proporciona algo a la entrada del método (algunas variables), estas variables se procesan mediante una secuencia de comandos y luego el método produce un resultado. Lo más probable es que ya hayas encontrado métodos, al menos con public static void main(String[] args) . Este método suele iniciar la ejecución de un programa Java.

¿Cómo declarar métodos en Java?

Todos los métodos en Java se crean dentro de clases. Se declaran de la siguiente manera:
accessSpecifier ReturnType name (parameter list) {
//method body
}
Por ejemplo:
public int addTwoNumbers (int a, int b){

//method body
return}
Donde público es un especificador de acceso, int es un tipo de variable que devuelve el método, addTwoNumbers es el nombre del método, a y b son los parámetros del método. Echemos un vistazo con un poco más de detalle. El especificador de acceso se utiliza para definir el tipo de acceso del método. pueden ser los siguientes:
  • público : el acceso al método está disponible desde cualquier clase.

  • privado : el acceso está disponible dentro de la clase donde se definió.

  • protected : el acceso está disponible solo dentro del paquete u otras subclases en otro paquete.

  • predeterminado : el acceso está disponible desde el paquete donde se declara. En este caso, la palabra "predeterminado" no está escrita.

El tipo de retorno define el tipo que devuelve este método. En el ejemplo anterior, int es el tipo de retorno. Si un método no devuelve nada, el tipo de retorno es nulo:
public void printSomething (String myString) {}
El nombre del método es un nombre único de su método. Explicaremos algunas reglas de nomenclatura de Java un poco más adelante en este artículo. En los métodos anteriores, los nombres son addTwoNumbers e printSomething . La lista de parámetros es la lista de argumentos (tipo de datos y nombre de variable) que toma el método. En el primer ejemplo anterior, "int a, int b" son parámetros, en el segundo, String myString es un argumento. También puede dejar este campo en blanco si no desea utilizar ningún parámetro en el método.

Ejemplo de parámetros de método

public void printSomething (String myParameter1, int myParameter2) {}
Aquí hay dos variables, myParameter1 y myParameter2 . Son parámetros del método. es el conjunto de instrucciones encerradas entre llaves que ejecutará el método. Si el tipo de retorno del método no es nulo, la palabra clave de retorno debe estar presente en el cuerpo del método. return va seguido del argumento que devuelve este método. Entonces, para crear un método, debe especificar su nombre junto con paréntesis y, entre paréntesis, si es necesario, las variables con las que operará el método. Antes del nombre del método hay un especificador de acceso y un tipo de variable que devuelve el método, o nulo si el método no devuelve nada. Entre llaves, escribimos el método real, una secuencia de instrucciones que generalmente funciona con los argumentos del método. A continuación se muestra un ejemplo de un método que encuentra el número más grande en una matriz y lo devuelve.
public int findBiggest(int[] numbers) {
   int max;
   max = numbers[0];
   for (int i = 1; i < numbers.length; i++) {
       if (max < numbers[i]) {
           max = numbers[i];
       }
   }
   return max;
}

¿Cómo nombrar un método?

No existen reglas estrictas para nombrar métodos, pero existen pautas que debes seguir si planeas desarrollarte profesionalmente en Java. Los nombres de los métodos suelen ser verbos, escritos en mayúsculas y minúsculas, comenzando con una letra minúscula pero usando una letra mayúscula para cada palabra posterior (camelCase). Aquí hay unos ejemplos:
int addTwoNumbers (int a, int b)
void run()

Cómo llamar a un método

Para llamar a un método basta con escribir su nombre y establecer las variables correspondientes si estuvieran en la declaración. Llamemos al método findBiggest en el método principal :
public static void main(String[] args) {
  int[] array = new int[] {5, 7, -2, 6, 7, 1};
  int max = findBiggest(array);
   System.out.println("the biggest number in array is: " + max);
  }
El resultado de este programa es:
el número más grande en la matriz es: 7

Diferentes tipos de métodos en Java

En Java, todo está formado por objetos y el comportamiento de los objetos se define mediante métodos. Convencionalmente, podemos decir que Java tiene métodos predefinidos y definidos por el usuario. Los métodos predefinidos son métodos que se incluyen en clases que forman parte del propio lenguaje Java.

Métodos predefinidos

Los métodos de biblioteca estándar o predefinidos están integrados en Java. Por supuesto, cada programador puede utilizarlos o incluso modificarlos localmente para sus programas. La biblioteca de clases Java se encuentra en un archivo Java (por ejemplo, *jar) con una máquina virtual Java (JVM) y un entorno de ejecución Java. Estos pueden ser, por ejemplo, métodos de la clase Math como min() , max() o abs() . O métodos de manipulación de cadenas como concat() . Creemos una clase con un método principal y llamemos a un par de métodos de biblioteca estándar.
import static java.lang.Math.max;

public class Test {

    public static void main(String[] args) {
       int a = 5;
       int b = 7;
       int max = max(a,b);
       System.out.println(max);
       String str1 = "I am ";
       String str2 = "here ";
       String str3 = str1.concat(str2);
       System.out.println(str3);


   }

}
Tenga en cuenta que para utilizar los métodos de la clase Math , se debe importar al comienzo del programa. Si no se hace esto, puede escribir el nombre de la clase antes del nombre del método separado por un punto:
int max = Math.max(a,b);

Métodos definidos por el usuario

Estos métodos son creados por programadores para los requisitos de sus proyectos. En realidad, ya hemos creado el método findBiggest() definido por el usuario arriba. Para consolidar, creemos otro método que no devuelva nada y no tenga parámetros pero responda al nombre ingresado y diga hola (es decir, salida a la consola).
import java.util.Scanner;

public class Test {

   public void repeater() {
       Scanner scanner = new Scanner(System.in);
       System.out.println("WHat should I repeat after you?...");
       String s =  scanner.nextLine();
       System.out.println(s);
   }
}

Creando métodos estáticos en Java

Generalmente, los métodos en Java son métodos de objetos. Para llamar a un método, necesita crear una instancia de la clase donde se define este método. Sin embargo, también existen métodos estáticos. Se diferencian de los normales en que están vinculados a una clase, no a un objeto. Una propiedad importante de un método estático es que solo puede acceder a variables/métodos estáticos. Se definen utilizando la palabra clave estática . Entonces, en la clase de Matemáticas , todos los métodos para trabajar con variables son estáticos. Podemos crear algo similar a la clase Math y recopilar varios métodos estáticos que se pueden usar sin crear una instancia de la clase contenedora. Llamémoslo Números .
import java.util.ArrayList;
import java.util.List;
import java.util.stream.IntStream;


public class Numbers {


   public static int findMax(int left, int right) {
       return (left < right) ? right : left;

   }


   public static boolean isNegative(int number) {
       return number < 0;
   }

   public static long power(long number, int deg) {

       if (deg == 0) {
           number = 1;
           return number;
       } else {
           number = power(number, deg - 1) * number;
           return number;
       }
   }

   public static long abs(long number) {
       return number > 0 ? number : -number;
     }


    public static void main(String[] args) {

       int a = 5;
       int b = 7;
       long c = -7;
       long abs = abs(c);
       System.out.println(abs);
       System.out.println(findMax(a,b));

   }

}
El resultado del programa está aquí:
7 7
Primero, se llama a un método que busca el valor absoluto del número y luego a un método que busca el mayor de los dos números. No es necesario crear una instancia de la clase Numbers para llamar a estos métodos porque ambos métodos están definidos como estáticos.

Aplicar métodos de instancia en código Java

Se pueden llamar métodos de instancia o métodos regulares en la instancia de la clase en la que está definido el método.
public class Cat implements Voice{
   String name;
   String breed;
   int year;


   public void talk() {
       System.out.println("meow meow");
   }
}
Para llamar al método talk() , necesitas crear una instancia de la clase Cat :
public class Demo {
   public static void main(String[] args) {
       Cat cat = new Cat ();
       cat.talk();

   }
}
La salida de este programa está aquí:
Miau miau

Métodos abstractos en Java

Los métodos abstractos en Java son métodos sin implementación. Es decir, no contienen código cuando se declaran. Sólo pueden declararse en clases abstractas e implementarse en sus descendientes no abstractos. Creemos una clase abstracta con un método abstracto myMethodAdd() .
abstract class DemoAbs {
   abstract void myMethodAdd();
}
Ahora creemos una clase secundaria de esta clase abstracta, DemoAbs . Aquí necesariamente debemos implementar el método myMethodAdd() .
public class myClass extends DemoAbs {

   void myMethodAdd() {
       System.out.println("hello");
   }

   public static void main(String[] args) {
       DemoAbs demoAbs = new myClass();
       demoAbs.myMethodAdd();
   }
}

Asignación de memoria para llamadas a métodos.

Este es un tema bastante complejo que requiere un análisis más cuidadoso. Aquí vamos a mencionar sólo lo más básico para un conocimiento superficial del tema. La memoria JVM consta de áreas de montón y pila. El montón es un área de memoria que almacena objetos Java. La memoria de pila es un área temporal de la memoria que almacena variables primitivas y referencias a objetos de métodos. La memoria de la pila contiene valores de corta duración que dependen del método. Este tipo de memoria se basa en el principio de último en entrar, primero en salir (LIFO). La memoria de la pila crea un nuevo bloque cuando llamamos a un método. Contiene valores primitivos locales. Cuando terminamos un método, el bloque creado en la memoria de la pila queda libre.

Conclusión

En este artículo, nos familiarizamos con los conceptos básicos de la creación de métodos en el lenguaje Java, así como qué métodos existen en Java y cómo trabajar con ellos. Aprendimos que los métodos determinan el comportamiento de las clases. Sin métodos sería imposible que los objetos interactuaran entre sí. Para reforzar lo aprendido, te sugerimos ver una lección en video de nuestro Curso de Java
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION