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();
En la imagen vemos la llamada al método Math.pow para que realice la operación de elevar 3 a 7. También en la instrucción siguiente se está haciendo uso del método println para mostrar el valor de x.
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.
En la imagen se muestra el flujo de ejecución del programa cuando se produce la llamada al método Math.pow: En la llamada al método le enviamos los valores con los que tiene que realizar la operación. La ejecución del programa continúa dentro del método. Su tarea en este caso es realizar la operación de elevar 3 a 7. Cuando termina devuelve el resultado al punto donde se invocó el método. La ejecución continúa en el método main desde el punto donde se produjo la llamada.
En la imagen se muestra el flujo de ejecución del programa cuando se produce la llamada al método Math.pow: En la llamada al método le enviamos los valores con los que tiene que realizar la operación. La ejecución del programa continúa dentro del método. Su tarea en este caso es realizar la operación de elevar 3 a 7. Cuando termina devuelve el resultado al punto donde se invocó el método. La ejecución continúa en el método main desde el 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.
Cuando trabajamos con métodos debemos tener en cuenta lo siguiente:
- En Java un método siempre pertenece a una clase. No podemos escribir métodos fuera de una clase.
- No podemos escribir métodos dentro de otros métodos.
- Todo programa java tiene un método llamado main. La ejecución del programa empieza en este método. El método main es el punto de entrada al programa y también el punto de salida.
- Un método tiene un único punto de inicio, representando por la llava de inicio {
- La ejecución de un método termina cuando se llega a la llave final } o cuando se ejecuta una instrucción return.
- La instrucción return puede aparecer en cualquier lugar dentro del método, no tiene que estar necesariamente al final.
- Cuando un método finaliza, la ejecución del programa continúa a partir del punto donde se produjo la llamada al método.
- Desde dentro de un método se puede a su vez invocar a otro método.
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.
especificadores (opcional): determinan el tipo de acceso al método. Se verán en detalle más adelante.
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 a continuación del nombre del método 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. Algunos aspectos importantes sobre la palabra clave return en un método:
- 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 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.
- La instrucción return puede aparecer en cualquier lugar dentro del método.
- La ejecución de un método termina cuando se llega a su llave final } o cuando se ejecuta la instrucción return.
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, es decir, lo que el método recibe.
3. Determinar
los tipos de datos de las entradas.
4. Determinar
lo que debe devolver el método y el tipo del valor devuelto.
5. Escribir
las instrucciones que forman el cuerpo del método.
6. Prueba
del método: diseñar distintos casos de prueba.
Ejemplo de método: método llamado sumar que recibe dos números enteros y calcula y devuelve su suma.
import java.util.Scanner;
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);
}
//método sumar
public static int sumar(int a, int b){
int c;
c = a + b;
return c;
}
}
El método se llama sumar. Recibe dos
números enteros a y b que son los parámetros de entrada. El método devuelve un valor de tipo int.
El flujo de ejecución del programa es el siguiente:
El flujo de ejecución del programa es el siguiente:
- En el método main cuando se produce la llamada al método sumar, los valores de las variables numero1 y numero2 se copian en las variables a y b respectivamente. Las variabels a y b son los parámetros del método.
- El flujo de ejecución del programa pasa al método sumar.
- El método suma los dos números y guarda el resultado en c.
- El método devuelve mediante la instrucción return la suma calculada.
- Finaliza la ejecución del método.
- El flujo de ejecución del programa continúa en el método main a partir de dónde se produjo la llamada al método sumar.
- El valor devuelto por el método es lo que se asigna a la variable resultado en el método main.
Si un método devuelve un valor, como sucede en el método sumar, la llamada al método puede estar incluida en una expresión que utilice el valor devuelto.
En el ejemplo anterior, el método sumar devuelve un valor entero que después vamos a mostrar. En este caso podríamos haber hecho la llamada al método directamemte dentro del System.out.println:
System.out.println("Suma: " + sumar(numero1, numero2));
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 se utiliza un método llamado esBisiesto.
El método esBisiesto tiene un parámetro de tipo entero llamado a. Será el encargado de recibir el valor del año a comprobar si es bisiesto o no. El método devuelve un valor de tipo boolean. Devuelve true si el año recibido es bisiesto y false si no lo es.
Como el método devuelve un dato de tipo boolean se puede llamar dentro de una instrucción if.
El método esBisiesto tiene un parámetro de tipo entero llamado a. Será el encargado de recibir el valor del año a comprobar si es bisiesto o no. El método devuelve un valor de tipo boolean. Devuelve true si el año recibido es bisiesto y false si no lo es.
Como el método devuelve un dato de tipo boolean se puede llamar dentro de una instrucción if.
import java.util.Scanner;
public class Main {
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;
}
}
Flujo de ejecución:
- En el método main se llama al método esBisiesto dentro de la instrucción if.
- El valor de la variable año se copia en la variable a.
- El flujo de ejecución pasa al método esBisiesto.
- El método comprueba si el año recibido es o no bisiesto.
- El método devuelve true si el año es bisiesto o false si no lo es.
- Finaliza la ejecución del método.
- El flujo de ejecución continúa en el método main en la instrucción if donde se produjo la llamada al método.
- El valor true o false devuelto por el método es lo que determina si la condición es cierta o no.
Ejemplo de programa Java: Método que no devuelve ningún valor.
El método cajaTexto tiene un parámetro de tipo String.
El String que recibe lo muestra por pantalla rodeado con un borde.
Este método no devuelve nada, solo se limita a mostrar el String por pantalla.
Cuando un método no devuelve nada hay que indicar void como tipo devuelto.
Como el métono no devuelve nada no es necesario escribir la sentencia return.
El método acaba cuando se alcanza la llave final.
El método cajaTexto tiene un parámetro de tipo String.
El String que recibe lo muestra por pantalla rodeado con un borde.
Este método no devuelve nada, solo se limita a mostrar el String por pantalla.
Cuando un método no devuelve nada hay que indicar void como tipo devuelto.
Como el métono no devuelve nada no es necesario escribir la sentencia return.
El método acaba cuando se alcanza la llave final.
import java.util.Scanner;
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(); //longitud del String
for (int i = 1; i <= n + 4; i++){ //borde de arriba
System.out.print("#");
}
System.out.println();
System.out.println("# " + str + " #"); //cadena con un borde en cada lado
for (int i = 1; i <= n + 4; i++){ //borde de abajo
System.out.print("#");
}
System.out.println();
}
}
Un videotutorial interesante sobre HERENCIA:
ResponderEliminarhttp://www.youtube.com/watch?v=3WNu1vuc-aw
no me sale
ResponderEliminaruuuuu
ResponderEliminargracias
ResponderEliminarGracias a ti por seguir el blog!!
ResponderEliminarEn un 93% tus explicaciones son excelentees! aprendí muchas cosas nuevas(:
ResponderEliminarson geniales tus ejercicios. Sigue asi que ayudas a mucha gente!
ResponderEliminargracias primor me siento jkbvjkzxvbzjkxv
ResponderEliminarPues muchas gracias!!
ResponderEliminar10 EN APTITUDES
ResponderEliminar10 EN HONESTIDAD
Y SAQUE SUS RUBRICAS-
como podria crear un metodo nuevo que no este en las librerias de java? ¿Es posible?
ResponderEliminaren el de la suma, como concateno el resultado de la suma fuera del metodo!!! lo quiero concatenar en el main pero me dice que la variable no existe!!!
ResponderEliminarAYUDA!!!
Hola, cuando quiero leer tipo double me di cuenta que debo poner los decimales separados por coma, por ejemplo 3,4 en vez de 3.4 para que se puedan leer, eso es en todas las versiones de java???
ResponderEliminarSi
Eliminarpodrian subir los ejercicios ke tienen en secuenciales en metodos?
ResponderEliminarMuchas gracias esta explicacion me sirvio mucho sobre metodos.
ResponderEliminarmuy resumido.. excelente...
ResponderEliminarMuy bien explicado....!!!!
ResponderEliminarcrear un metodo que suprima un caracter cuantas veces se repita en una cadena
ResponderEliminarCrear un metodo que convierta a mayuscula la primera y ultima palabra contenida en una cadena
ResponderEliminarquien me ayuda le pagi e pasa su numero de cuenta y le deposito urgente porfa
ResponderEliminarquien me ayuda le pagi e pasa su numero de cuenta y le deposito urgente porfa
ResponderEliminarNecesito ayuda, estoy haciendo un programa en el cual necesito un método para obtener el seguiente caracter y no encuentro la manera.
ResponderEliminarAlguien me podria explicar la diferencia entre clase y método?
ResponderEliminarentiendo todo!!!!Gracias.
ResponderEliminarbien
ResponderEliminarlike para k lo lea
ResponderEliminarGracias a un ejemplo que pusiste pude hacer mi tarea, gracias :D
ResponderEliminarAmigo sugiereme el orden para seguir lo de POO y me suscribo a tu blog
ResponderEliminaresta bueno esta cosa
ResponderEliminarey men,,,muy bueno
ResponderEliminarBuenísimo hermano, gracias por compartir tus conocimientos...
ResponderEliminarhola necesito
ResponderEliminarhola sera que puedes ayudarme necesito un programa que me pida x cantidad de numeros y me muestre luego cuales son primos ,pares he impares
ResponderEliminarel programa debe tener static y funciones.
gracias
Gracias Enrique por tu saber y compartio
ResponderEliminarGracias a ti por el comentario y por seguir el blog.
EliminarEs genial, fantástico. Gracias por esta información <3
ResponderEliminarAyuda con un metodo para guardar nombres y otro para modificarlos en un arreglo desde consola
ResponderEliminarGracias!
ResponderEliminarPor favor tengo un ejercicio en java con metodos: dice crear un nuevo proyecto x, luego crear una clase aritmetica y dentro de la clase deben ir 3 metodos; resta, multiplicacion y division.
ResponderEliminarLa division debe tener condicionante
Los metodos en Java son d mucha utilidad para efectuar operaciones matematicas y otros tipos de operaciones en programacion visual
ResponderEliminarMe está ayudando mucho. Gran trabajo
ResponderEliminarSe puede construir una función en java para obtener el dijito mayor y menor de numeros enteros entrada 238912
ResponderEliminarSalidas:entras 9
Salidas es 1
Crear un arreglo unidimensional de tamaño n dado como parámetro.
ResponderEliminarCrear un arreglo bidimensional de tamaño MxN dados como parámetros.
Imprimir un arreglo unidimensional dado como parámetro.
Imprimir un arreglo bidimensional dado como parámetro.
Sumar los elementos de un arreglo unidimensional dado como parámetro.
Sumar los elementos de una columna de un arreglo bidimensional dado como parámetro; especifique también la columna del arreglo como parámetro.
Clase principal controladora para probar los métodos llamados mediante menú
si me pueden ayudar con ese jercicio
ResponderEliminar2) Escriba un programa que calcule la expresión siguiente para un valor de x, mientras el último sumando sea mayor que 0.0001.
ResponderEliminartengo este problema me podrian ayudar por favor
cual es tu nombre completo?
ResponderEliminar