Sei sulla pagina 1di 10

18/02/2015

Mtodos en POO

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.

18/02/2015

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

Un mtodo debe incluir:


Encabezado
Cuerpo

Definicin de un mtodo
Encabezado

public static void displayMesssage()


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

Cuerpo

18/02/2015

Elementos del encabezado


Modificadores

public static

void

Return
Type

Nombre
Parntesis con
del mtodo lista de parmetros

displayMessage()

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

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

Nombre del mtodo


debe ser descriptivo
relacionado a la tarea

Parntesis - puede contener una lista de variables


que se conocen con el nombre de parmetros

18/02/2015

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.

18/02/2015

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);
}

18/02/2015

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:
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.

18/02/2015

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 (value-returning)
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

18/02/2015

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:
mtodos que hacen clculos
mtodos para recoger y validar datos

Se llaman muchas veces desde el lado derecho de una instruccin de asignacin.


Deben contener una instruccin de return para devolver el valor.
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);

Tipo del
valor a
devolver
(return
type)

System.out.print(Entra un numero entero: );


int x = keyboard.nextInt();
return x;
}
Instruccin para devolver
el valor al mtodo que
llama.

18/02/2015

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.
Ejemplo
x = getValue();
result =sumTwo(x,y);

18/02/2015

...Llamada a getValue y a sum


public static void main() {

Llamada desde
instruccin de
asignacin

int x, y, result;
x = getValue();
y = getValue();
result =sumTwo(x,y);
System.out.println(result);

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

Llamada desde
instruccin de output

Comparacin de Mtodos
Void

Value returning

Puede o no tener lista de


parmetros

Puede o no tener lista de parmetros

Devuelve un solo valor


En general no devuelve nada Se tienen que llamar desde otra instruccin
Se invocan usando el nombre Necesita un return al final del cuerpo
con su lista de argumentos
solamente
No lleva return dentro del
cuerpo

10

Potrebbero piacerti anche