JavaRush /Blog Java /Random-ES /Métodos en Java
articles
Nivel 15

Métodos en Java

Publicado en el grupo Random-ES
Métodos en Java - 1En Java, una aplicación consta de clases. Las clases, a su vez, constan de variables. Se encargan de almacenar datos y métodos que son responsables del comportamiento de la clase: en otras palabras, la lógica que esta puede proporcionar (por ejemplo, procesar algunos datos, llamar a otros métodos, etc.). Podemos hablar de componentes como variables durante mucho tiempo, pero no es por eso que nos hemos reunido hoy. Mejor hablemos de dicho componente de la clase como método. Métodos en Java - 2Un método es un bloque de código con nombre declarado dentro de una clase. Contiene una determinada secuencia completa de acciones (instrucciones) destinadas a resolver un problema separado, que se puede reutilizar. En otras palabras, un método es una función: algo que tu clase puede hacer. Otros idiomas también tienen funciones. Sólo en Java son miembros de clases y, según la terminología orientada a objetos, se denominan métodos. Pero antes de continuar, veamos un pequeño ejemplo:
public String constructHelloSentence(String name) {
  String resultSentence = "Hello world! My name is " + name;
  System.out.println(resultSentence);
  return resultSentence;
}
Aquí no hay nada complicado: un método Java cuya tarea es generar una cadena de saludo con el nombre que le pasemos. Como por ejemplo: Hello world! My name is Bobby comprendamos la construcción de un método correctamente observando cada palabra clave en la declaración del método (de izquierda a derecha). Nuestra primera palabra clave es publicy denota un modificador de acceso:

Modificadores de acceso

Indican el alcance de visibilidad permitido para los miembros de la clase, es decir, la restricción de los lugares en los que se permite utilizar una variable o método. Métodos en Java - 3Los siguientes modificadores de acceso se utilizan en Java:
  • público : público. Los métodos o campos con este modificador son públicos, visibles para otras clases (o más bien, sus métodos y campos) desde el paquete actual y desde paquetes externos. Este es el nivel de acceso más amplio conocido;

  • protected : Se puede acceder a los métodos o variables con este modificador desde cualquier lugar de la clase o paquete actual, o en clases que hereden este, así como a los métodos o campos, incluso si están en otros paquetes

    protected String constructHelloSentence(String name) {...}
  • Modificador predeterminado. Si un campo o método de clase no tiene un modificador, se aplica el modificador predeterminado. En este caso, los campos o métodos son visibles para todas las clases en el paquete actual (como protected , pero sin visibilidad al heredar).

    String constructHelloSentence(String name) {...}
  • privado : lo opuesto al modificador público . Un método o variable con dicho modificador sólo está disponible en la clase en la que se declara.

    private String constructHelloSentence(String name) {...}
A continuación tenemos Stringla firma del método (la primera línea del método que describe sus propiedades).

Valor de retorno

El valor de retorno son los datos (algún resultado de la ejecución del método) que vienen en su lugar después de la llamada. Cada método tiene un valor de retorno. ¿O no?

Métodos de valor de retorno

Este valor puede ser cualquier tipo de dato: una variable de tipo simple o de tipo de referencia. En este ejemplo indicamos que el método debe devolver un objeto de tipo String, que como recordamos es una clase que describe una cadena. El segundo punto aquí es la palabra return. Tiene una relación directa con el valor de retorno: el valor posterior se enviará de regreso al lugar donde se llamó el método y el método en sí se cerrará return. Esta palabra suele aparecer en la última línea del método (excepto en el caso de métodos con varias ramas como if, else...). Si escribe el código en la siguiente línea después de return:
private String constructHelloSentence(String name) {
  String resultSentence = "Hello world! My name is " + name;
  return resultSentence;
  System.out.println(resultSentence);
}
entonces recibiremos maldiciones del compilador, lo cual no es muy bueno (el compilador no recomendará tonterías). También debe recordar que el tipo de datos posterior сdebe coincidir con el declarado en la firma del método. returnLea más sobre aquí .

vacío

¿ Para qué se utiliza voiden Java? No todos los métodos tienen un valor de retorno. Algunos no tienen nada o no necesitan devolver nada. ¿Qué hacer entonces? Luego en la firma del método escribimos void. ¿Cómo sería nuestro método sin un valor de retorno?
protected void constructHelloSentence(String name) {
  String resultSentence = "Hello world! My name is " + name;
  System.out.println(resultSentence);
}
Probablemente hayas notado que junto con el valor de retorno, la palabra returnAsí es ha desaparecido, porque nuestro método no debería devolver nada. Sin embargo, se puede colocar aquí, pero sin ningún significado, simplemente return; en la última línea. Generalmente esto es inútil, por lo que voides opcional en los métodos con. Sin embargo, puede ser útil en voidmétodos, como ramas o bucles, en los que desea salir del método inmediatamente. A continuación en la declaración del método teníamos constructHelloSentence.

Nombres de métodos

constructHelloSentence - el nombre del método, rasgo distintivo por el cual podemos distinguir uno u otro método. Y, en consecuencia, llamar a uno u otro método. Métodos en Java - 4Los nombres de los métodos deben comenzar con una letra minúscula, pero también deben usar mayúsculas y minúsculas (CamelCase, camel case): es decir Cada palabra siguiente del nombre está adyacente a la anterior y está escrita con letra mayúscula. Los nombres de los métodos deben describir el método (el mejor comentario es nombrarlos correctamente). Para hacer esto, use verbos o combinaciones con verbos: getCat, delete, createCar, etc. Dentro de una clase, los nombres de los métodos deben ser únicos (sin contar la sobrecarga de métodos, de la que hablaremos un poco más adelante). Miremos más a fondo el método que estamos analizando y veamos ( String name)

Parámetros del método

Los métodos pueden (o no) tener ciertos datos que provendrán del exterior, es decir, del lugar donde se llamó el método. En nuestro caso vemos que llega un objeto tipo Stringcon un nombre namey en el futuro usamos esta variable en nuestro método. Puede utilizar una cantidad ilimitada de parámetros en un método, pero no se recomiendan más de 7. Cuando no sabemos el número exacto de elementos, pero todos estos elementos son necesarios para el mismo propósito y serán del mismo tipo (por ejemplo, String), se utilizan puntos suspensivos:
public void constructHelloSentence(String...name) {
 ...
}
El atractivo de cada elemento será así: ¿ name[0] Te recuerda a algo? Así es, ¡matriz! Nada cambiará si escribimos:
protected void constructHelloSentence(String[] name) {
 ...
}
El acceso a los elementos también será de la forma: name[1] Y una cosa más. Los argumentos del método pueden ser finales :
public String constructHelloSentence(final String name) {
  ...
}
Esto significa que la referencia del nombre está vinculada a un objeto específico Stringy no se puede anular. finalPuede leer sobre cómo trabajar con variables de referencia y su interacción con palabras reservadas en el material " Tipos de datos de referencia en Java ".

Métodos de llamada

Entonces, hemos resuelto la creación de métodos, ahora hablemos de su uso. ¿Cómo llamar a un método en Java? Métodos en Java - 5Cada método en Java está en una clase. Para entender cómo funciona la llamada a métodos en Java, tomemos una clase:
public class StringConstructor {
  public String constructHelloSentence(String name) {
     String resultSentence = "Hello world! My name is " + name;
     System.out.println(resultSentence);
     return resultSentence;
  }
}
Dado que nuestro método no es estático (este es un tema de discusión aparte que va más allá del alcance del artículo de hoy), para llamarlo primero debes crear un objeto y luego llamar al método en él:
class Application{
  public static void main(String[] args) {
     StringConstructor stringConstructor = new StringConstructor();
     stringConstructor.constructHelloSentence("Den");
  }
}
En los argumentos de nuestro método, pasamos la cadena (nombre) que queremos ver en la cadena resultante que se muestra en pantalla:

Hello world! My name is Den
También vale la pena recordar que los métodos se pueden reutilizar tantas veces como sea necesario; no existen restricciones.

este

A menudo puedes ver la palabra clave en code this, como en setters:
public void setValue(Long value) {
   this.value = value;
}
¿Y que significa? thisen Java, esto es una referencia al objeto actual de esta clase. Por ejemplo, si creamos un objeto:
StringConstructor stringConstructor = new StringConstructor();
luego, thisdentro del objeto stringConstructorhabrá un enlace al mismo objeto. thisse usa tanto para hacer referencia a una variable de objeto (como en el definidor anterior) como para llamar a algún método. Podemos reescribir nuestra clase un poco:
public class StringConstructor {

  public String constructHelloSentence(String name) {
     String resultSentence = this.getSentence()  + name;
     System.out.println(resultSentence);
     return resultSentence;
  }

  private String getSentence() {
     return "Hello world! My name is ";
  }
}
A través de thisllamamos al método de este objeto para tomar la cadena requerida. Pero aún así, por regla general, esto casi no se usa para métodos, ya que incluso sin él hay una referencia a un método de un objeto dado; se usa principalmente para una variable de objeto.

Sobrecarga de métodos

Digamos que necesitábamos un método que realice esencialmente la misma lógica, ¡pero en un Hello world! en su lugar worldqueremos insertar nuestra propia palabra (cadena). Pero ya tenemos un método constructHelloSentence. Entonces, ¿necesitamos encontrar un nuevo nombre para un método que esencialmente realice la misma funcionalidad? No importa cómo sea: en este momento la sobrecarga de métodos viene en nuestra ayuda. Métodos en Java - 7La sobrecarga de métodos es el uso del mismo nombre de método más de una vez al declararlo en una clase. Desde el punto de vista de la sintaxis del lenguaje, no puede haber dos nombres idénticos en algún espacio local. Pero también es posible declarar métodos con el mismo nombre pero con argumentos diferentes. En otras palabras, una clase contiene sobrecargas cuando hay dos o más métodos con los mismos nombres pero diferentes datos de entrada:
public class Constructor {

  public String constructHelloSentence(String name) {
     String resultSentence = "Hello world! My name is " + name;
     System.out.println(resultSentence);
     return resultSentence;
  }

  protected String constructHelloSentence(String firstName, String secondName) {
     String resultSentence = "Hello " + firstName + "! My name is " + secondName;
     System.out.println(resultSentence);
     return resultSentence;
  }
}
Aquí vemos que los métodos no tienen que contener el mismo modificador de acceso (así como el tipo de retorno). Si se llama a un método sobrecargado, a partir de varios métodos declarados el compilador determina automáticamente el requerido en función de los parámetros que se especifican durante la llamada.
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION