Un método en Java es un conjunto
de instrucciones definidas dentro de una clase, que realizan una determinada tarea
y a las que podemos invocar mediante un nombre.
Algunos métodos que hemos utilizado hasta ahora:
– Math.pow()
– Math.sqrt()
– Character.isDigit()
-
System.out.println();
Cuando
se llama a un método, la ejecución del programa pasa al método y cuando éste
acaba, la ejecución continúa a partir del punto donde se produjo la llamada.
Utilizando métodos:
- Podemos
construir programas modulares.
- Se
consigue la reutilización de código. En lugar de escribir el mismo código
repetido cuando se necesite, por ejemplo para validar una fecha, se hace una
llamada al método que lo realiza.
En Java
un método siempre pertenece a una clase.
Todo programa java tiene
un método llamado main. Este método es el punto de entrada al programa y
también el punto de salida.
1. ESTRUCTURA
GENERAL DE UN MÉTODO JAVA
La estructura general de un método Java es la siguiente:
La estructura general de un método Java es la siguiente:
[especificadores]
tipoDevuelto nombreMetodo([lista parámetros]) [throws
listaExcepciones]
{
// instrucciones
[return valor;]
}
Los elementos que
aparecen entre corchetes son opcionales.
tipoDevuelto: indica el tipo del valor que devuelve el método. En Java es imprescindible que en la declaración de un método, se indique el tipo de dato que ha de devolver. El dato se devuelve mediante la instrucción return. Si el método no devuelve ningún valor este tipo será void.
nombreMetodo: es el nombre que se le da al método. Para
crearlo hay que seguir las mismas normas que para crear nombres de variables.
Lista de parámetros
(opcional): después del nombre del método y siempre entre paréntesis puede
aparecer una lista de parámetros (también llamados argumentos) separados por
comas. Estos parámetros son los datos de entrada que recibe el método para
operar con ellos. Un método puede recibir cero o más argumentos. Se debe
especificar para cada argumento su tipo. Los paréntesis son obligatorios aunque estén
vacíos.
throws listaExcepciones (opcional):
indica las
excepciones que puede generar y manipular el método.
return: se utiliza para devolver un valor.
La palabra clave return va seguida de una expresión que será evaluada para
saber el valor de retorno. Esta expresión puede ser compleja o puede ser
simplemente el nombre de un objeto, una variable de tipo primitivo o una
constante.
El tipo del valor de
retorno debe coincidir con el tipoDevuelto que se ha indicado en la declaración
del método.
Si el
método no devuelve nada (tipoDevuelto = void) la instrucción return es
opcional.
Un
método puede devolver un tipo primitivo, un array, un String o un objeto.
Un método tiene un único punto de inicio,
representado por la llave de inicio {. La ejecución de un método termina cuando
se llega a la llave final } o cuando se ejecuta la instrucción return.
La instrucción return puede aparecer en
cualquier lugar dentro del método, no tiene que estar necesariamente al final.
2. IMPLEMENTACIÓN
DE MÉTODOS EN JAVA
Pasos
para implementar un método:
1. Describir
lo que el método debe hacer
2. Determinar
las entradas del método
3. Determinar
los tipos de las entradas
4. Determinar
el tipo del valor retornado
5. Escribir
las instrucciones que forman el cuerpo del método
6. Prueba
del método: diseñar distintos casos de prueba
sirve para:Una clase sirve para agrupar los métodos y atributos de objetos de dicha clase.los métodos sirven para comunicarme con otra(s) clase(s) o cambiar el estado del objeto.Es imposible explicarlo ya que no pones los 2 programas .El uso de clases o mas bien el paradigma orientado a objetos es mejor
implementarlo cuando el programa se visualiza que sera muy robusto.
Ejemplo de método: método que suma dos números enteros.
import java.util.*;
public class Metodos1 {
public
static void main(String[] args) {
Scanner sc
= new Scanner(System.in);
int
numero1, numero2, resultado;
System.out.print("Introduce primer
número: ");
numero1 = sc.nextInt();
System.out.print("Introduce
segundo número: ");
numero2 = sc.nextInt();
resultado = sumar(numero1, numero2);
System.out.println("Suma: " +
resultado);
}
public
static int sumar(int a, int b){
int c;
c = a + b;
return c;
}
}
El método se llama sumar y recibe dos
números enteros a y b. En la llamada al
método los
valores de las variables numero1 y numero2 se copian en las variables a y b.
El método suma los dos números y guarda el resultado en c. Finalmente devuelve
mediante la instrucción return la suma calculada.
Ejemplo de programa Java que contiene un método con varios return:
Programa
que lee por teclado un año y calcula y muestra si es bisiesto. Para realizar el
cálculo utiliza un método llamado esBisiesto.
package bisiesto;
import java.util.*;
public class Bisiesto {
public
static void main(String[] args) {
Scanner
sc = new Scanner(System.in);
int
año;
System.out.print("Introduce año:
");
año = sc.nextInt();
if(esBisiesto(año)) //llamada al método
System.out.println("Bisiesto");
else
System.out.println("No es
bisiesto");
}
/**
* método que calcula si un año es o no
bisiesto
*/
public
static boolean esBisiesto(int a){
if(a%4==0 && a%100!=0 || a%400==0)
return true;
else
return false;
}
}
En la llamada al método bisiesto, el valor de la variable año se copia en la variable a y el método trabaja con esta variable. El
valor true ó false devuelto por return pasa a ser el valor de la condición.
Ejemplo de programa Java: Método que no devuelve ningún valor. El método
cajaTexto recibe un String y lo muestra rodeado con un borde.
El tipo devuelto es void y no es necesario
escribir la sentencia return. El método acaba cuando se alcanza la llave final.
import java.util.*;
public class MetodoVoid {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String
cadena;
System.out.print("Introduce
cadena de texto: ");
cadena =
sc.nextLine();
cajaTexto(cadena); //llamada al método
}
/**
* método que muestra un String rodeado por
un borde
*/
public static void cajaTexto(String str){
int n = str.length();
for (int i = 0; i < n + 4; i++){
System.out.print("#");
}
System.out.println();
System.out.println("# " +
str + " #");
for (int i = 0; i < n + 4; i++){
System.out.print("#");
}
System.out.println();
}