Sie sind auf Seite 1von 16

PROGRAMACION 1

Captulo 3:
PROGRAMACIN ORIENTADA A
OBJETOS
Sesin 25
OBJETIVOS DEL TEMA
Conocer que s, para que sirven y como se
desarrollan mtodos que son funciones.
Conocer los mecanismos para pasar
informacin entre mtodos.
Reforzar el crear programas formados por
piezas pequeas de cdigo que permitan la
reutilizacin.
Mtodos que devuelven
valores
Una funcin es un mtodo formado por un conjunto
de instrucciones que ejecutan un proceso y
devuelven un resultado. El resultado puede
depender de parmetros de entrada. Un funcin se
construye de la siguiente manera:

Para devolver un valor, simplemente se debe poner


el valor (o una expresin que calcule el valor) a
continuacin de la palabra return. El valor devuelto
por return debe coincidir con el tipo declarado como
valor de retorno del mtodo.
Mtodos que devuelven
valores
Opcionalmente se pueden definir
parmetros de entrada con el tipo de dato y
su nombre.
La importancia de una funcin es que
permite reutilizar un proceso, que implica,
reutilizar cdigo.
Estos parmetros son necesarios si el
comportamiento de la funcin va a
depender de valores que se le pase a la
funcin, facilitando la reutilizacin. Ejemplo
una opcin, mensajes, etc.
Ejemplo de una Funcin
En la Clase Account hay la funcin
getInterest que recibe como dato un valor
double y devuelve el Inters calculado
tambin como un double.
En una clase UseAccount se ha definido un
objeto myAccount de tipo Account y se est
usando la funcin para imprimir el valor
calculado si el porcentaje es 5.
Ejemplo de Funcin
public String[] ingresar_Vector(String mensaje)
{ String [] vector=new String[10]; // crea el segundo vector
String cadena; //auxiliar para las lecturas
int i=0; // variables auxiliares para los bucles
Scanner entrada=new Scanner(System.in); // define una
variable para la lectura
// lectura del vector
System.out.println(mensaje);
for (i=0;i<N;i++) // bucle para la lectura de los datos
{ System.out.println("Ingrese el numero/caracter "+i);
cadena=entrada.next(); //ingresa una cadena
vector[i]=cadena; } // fin del for i
return vector;
}
Ejemplo de Funcin
Se puede necesitar especificar ciertos
datos de entrada para ejecutar el cdigo de
la funcin.
En el ejemplo, se requiere pasar una
cadena a travs de la variable mensaje.
Tambin se define el tipo de datos del
resultado. La funcin devuelve un vector de
tipo string.
Ejemplo de Funcin
Para utilizar la funcin en el programa se la
invoca por su nombre. Como la funcin
devuelve un resultado, se tiene que
almacenarlo en una variable que tenga un tipo
de dato compatible con el resultado.
vectorA=ingresar_Vector("Ingrese los datos para el
primer vector");
vectorB=ingresar_Vector("Ingrese los datos para el
segundo vector");
Se debe especificar los parmetros como se
han definido, en el mismo orden y con el
mismo tipo de dato.
OTRO EJEMPLO DE FUNCION
public int operacion(int sumando1, int sumando2, int
tipo)
{ int resultado=0;
switch (tipo)
{
case 1:
resultado= sumando1+sumando2;break;
case 2:
resultado= sumando1-sumando2;break;
case 3:
resultado= sumando1*sumando2;break;
}
return resultado;
}
Ejemplos de Uso de
Funciones
Asignar el resultado a una variable. Ejemplo:
Resultado=operacion(a,b,1);
Resultado=operacion(5,7,2);
Para comparar en una instruccin if
if (operacion(a,b,2)>20)
{ sentencias; }
Como parte de una expresin ms compleja
resultado=monto+operacion(a,b,1) /meses;
Como parte de una sentencia de salida
System.out.print(operacion(a,b,1));
En los tres ltimos ejemplos hay que tener cuidado
porque el valor que devolvi la funcin no qued
almacenado en ningn lado y si se requiere
posteriormente, debe ser de nuevo ejecutada.
Paso de parmetros
En el paso de parmetros a funciones hay dos
aproximaciones clsicas: el paso por valor y
paso por referencia.
En el paso por valor se realiza una copia de
los valores que se pasan, trabajando dentro de
la funcin con la copia. Es por ello que cualquier
cambio que sufran dentro, no repercute fuera
de la funcin.
En el paso por referencia no se realiza dicha
copia, por lo que las modificaciones de dentro
de las funciones afectan a los parmetros y
esos cambios permanecen al final de la funcin.
Funciones: paso de
parmetros
Si una funcin tiene como argumento un
tipo primitivo (int, byte, short, float, char,
boolean etc...), en Java se realiza una copia
para la funcin y cualquier cambio a dicho
argumento no afecta a la variable original.
Es decir con un tipo primitivo el paso de
parmetros siempre es por valor y no por
referencia.
Funciones: paso de
parmetros
En el caso de los tipos de datos no primitivos como
son arreglos, y objetos es distinto.
En realidad lo que sucede es que en Java siempre se
tiene referencias a los objetos. Por ello, al pasar a una
funcin como argumento un objeto, se pasa la
referencia al mismo, es decir, aunque se hace una
copia para el paso por valor, como lo que se copia es
una referencia, los cambios al objeto referenciado s
son visibles y afectan fuera de la funcin.
La nica excepcin es la clase String , cuyos objetos
no son mutables. Cualquier modificacin de un objeto
String lleva aparejada la creacin de una nueva
instancia del objeto. Si se desea el mismo
comportamiento para el paso de parmetros del resto
de objetos, tenemos que recurrir al objeto StringBuffer.
FUNCIONES ANIDADAS
Funciones anidadas
El orden de ejecucin de funciones, el punto
de retorno.
Como reconocer mtodos de funciones
Ejemplos de paso de parmetros con mtodos
que trabajen con variables de clase para que
sea flexible
Usar mtodos para tipos no primitivos y
funciones para tipos primitivos porque no se
modifican.
Pasar un valor int de un vector no se modifica.
TAREA
Para probar las funciones, escribir el cdigo para
realizar las siguientes clases:
Dato_Validado
Permita ingresar un valor entero, el tipo (byte, short, int,
long) se indique con un parmetro.
Otra funcin para ingresar valor flotante (float, double).
Otra funcin para ingresar una cadena, paso con
parmetros la longitud de la cadena y si debe recibir
nmeros o solo letras.
Permita mostrar las opciones de un men que se pasan
como parmetro (el nmero de opciones y un vector de
opciones)y retorne el valor seleccionado por el usuario,
el valor debe ser validado para que est en el rango
permitido.

Das könnte Ihnen auch gefallen