Está en la página 1de 20

Mtodos

Algoritmos y Desarrollo de Programas I

Cuando utilizar mtodos

Los mtodos se utilizan para romper un problema en pedazos de forma que este resulte mas manejable. (Divide and Conquer) Se utilizan tambin cuando tenemos grupos de instrucciones que se repiten en distintos puntos de un programa.

Mtodos

Los mtodos sirven para hacer un programa mas simple. Un mtodo lleva a cabo una tarea en especfico. Estas pueden ser de diversa naturaleza:

Input Output Clculo Encabezado Cuerpo

Un mtodo debe incluir:


Definicin de un mtodo
Encabezado

public static void displayMesssage() { System.out.println("Hola"); }

Cuerpo

Elementos del encabezado


Modificadores Return Type Nombre Parntesis con del mtodo lista de parmetros

public static

void

displayMessage()

{ System.out.println("Hola"); }

Descripcin de los elementos del encabezado

Modificadores public - el mtodo est disponible para ser usado fuera de la clase static - el mtodo pertenece a la clase en general Return type

void tipo de dato


debe ser descriptivo relacionado a la tarea

Nombre del mtodo


Parntesis - puede contener una lista de variables que se conocen con el nombre de parmetros

Llamadas a un mtodo

Un mtodo es ejecutado cuando es llamado o invocado desde otro mtodo. El mtodo main es el nico que es ejecutado automticamente al comenzar la ejecucin de un programa. El mtodo displayMessage descrito antes se llamara as: displayMessage(); Al hacer la llamada no se incluyen ni los modificadores ni el void. Es como si ejecutramos una instruccin.

Mtodos con lista de parmetros

El metodo displayMessage() no tiene parmetros por eso los parentesis estan vacios. El siguiente mtodo contiene un parmetro:
public static void displayValue( int num) { System.out.println( The value is: + num); }

Un ejemplo de llamada a este mtodo sera:


displayValue( 23);

Los valores que se envin al llamar un mtodo se conocen como argumentos.

Ejemplo
displayValue(5);

El argumento: 5 es copiado en la variable parmetro num.

public static void displayValue(int num) { System.out.println("The value is " + num); }

El mtodo va a mostrar:

The value is 5

Ejemplo con dos parametros


El argumento 5 es copiado a la variable parmetro num1

El argumento 10 es copiado a la variable parmetro showSum(5.0,10.0); num2

public static void showSum(double num1, double num2) { double sum; //to hold the sum sum = num1 + num2; System.out.println("The sum is " + sum); }

Argumentos y Parmetros

El tipo del argumento tiene que corresponder al tipo del parmetro en la declaracin. La correspondencia entre argumentos y parmetros es de uno a uno segn el orden. En el mtodo anterior el 5 va a corresponder a num1 y el 10 a num2. ( 5 y 10 son argumentos, num1 y num2 son parmetros) Los argumentos se usan en la llamada y los parmetros en la definicin del mtodo.

Otro ejemplo de llamada:


public static void main() { int x, y; x = 500; y = 200; showSum(x,y); }

Las variables que se van a usar como argumentos tienen que estar declaradas en el mtodo que hace la llamada.

Argumentos y parmetros

Cuando se pasan argumentos a un mtodo debemos estar seguros de que cada uno es compatible con la declaracin del parmetro correspondiente. Java hace conversiones automticas si el argumento es menor en tamao que el parmetro (widening) pero no al inverso (narrowing) En el caso del ejemplo anterior la siguiente llamada ocasiona un error de compilacin:
double x = 1.0; double y = 5.5; showSum(x, y);

Error!

Mtodos

Los mtodos pueden ser de dos tipos: Mtodos que no devuelven nada (void) Mtodos que devuelven algn valor (valuereturning) Los mtodos que hemos visto hasta ahora son tipo void. El mtodo main es de tipo void Hay mtodos que devuelven un valor: value returning methods

Metodos que devuelven un valor (Value returning)


En el encabezado se indica el tipo de valor que se devuelve. Se puede devolver int, double, boolean, char, String o cualquier otro tipo de dato. Casos ms comunes:

Se llaman muchas veces desde el lado derecho de una instruccin de asignacin. Deben contener una instruccin de return para devolver el valor.

mtodos que hacen clculos mtodos para recoger y validar datos

Esta hace que se termine la ejecucin del mtodo y se regrese al punto de llamada con un valor.

Ejemplo de un mtodo que devuelve un valor pero no tiene lista de parmetros


//Mtodo para recoger un nmero del teclado public static int getValue() { Scanner keyboard= new Scanner(System.in); System.out.print(Entra un numero entero: ); int x = keyboard.nextInt(); return x; }
Instruccin para devolver el valor al mtodo que llama.
Tipo del valor a devolver (return type)

Ejemplo de un mtodo para calcular suma con lista de parmetros


public static int sumTwo(int num1, int num2) { int sum; //to hold the sum sum = num1 + num2; return sum; }

Llamadas a mtodos que devuelven un valor

Las llamadas a este tipo de mtodos se hace desde otra instruccin, como por ejemplo desde una instruccin de output desde una instruccin de asignacin.
x = getValue(); result =sumTwo(x,y);

...Llamada a getValue y a sum


public static void main() { int x, y, result; x = getValue(); y = getValue(); result =sumTwo(x,y); System.out.println(result);

Llamada desde instruccin de asignacin

x = 12; y = 3; System.out.println(sumTwo(x,y));
}

Llamada desde instruccin de output

Comparacin de Mtodos
Void Puede o no tener lista de parmetros En general no devuelve nada Se invocan usando el nombre con su lista de argumentos solamente No lleva return dentro del cuerpo Value returning Puede o no tener lista de parmetros Devuelve un solo valor Se tienen que llamar desde otra instruccin Necesita un return al final del cuerpo

También podría gustarte