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 public
y 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. Los 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) {...}
String
la 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 tipoString
, 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. return
Lea más sobre aquí .
vacío
¿ Para qué se utilizavoid
en 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 return
Así 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 void
es opcional en los métodos con. Sin embargo, puede ser útil en void
mé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. Los 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 tipoString
con un nombre name
y 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 String
y no se puede anular. final
Puede 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? Cada 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 codethis
, como en setters:
public void setValue(Long value) {
this.value = value;
}
¿Y que significa? this
en Java, esto es una referencia al objeto actual de esta clase. Por ejemplo, si creamos un objeto:
StringConstructor stringConstructor = new StringConstructor();
luego, this
dentro del objeto stringConstructor
habrá un enlace al mismo objeto. this
se 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 this
llamamos 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 unHello world
! en su lugar world
queremos 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. La 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.
GO TO FULL VERSION