Cap - PowerPoint PPT Presentation

1 / 24
About This Presentation
Title:

Cap

Description:

... no se puede referir a una variable en un m todo est tico que ... un m todo est tico en Java ... Globales Es aquella que esta declarada en el ... – PowerPoint PPT presentation

Number of Views:24
Avg rating:3.0/5.0
Slides: 25
Provided by: fborquez
Category:
Tags: cap | java | metodo

less

Transcript and Presenter's Notes

Title: Cap


1
Capítulo 2Subprogramas/Funciones - Arreglos
  • Subprogramas/Funciones

2
Programas extensos y complejos
  • Un programa puede volverse complejo, esta
    complejidad puede ser abordada en tareas más
    simples, pequeñas y por lo tanto más manejables
  • Enfocándonos en nuestro objetivo, procedemos a
    dividir nuestro problema en tarea más simples
    llamados subprogramas/funciones.

Divide et impera - Divide y Conquista (Julio
César)
3
Subprogramas/Funciones
  • Un elemento clave para diseñar programas es la
    creación de subprogramas/funciones
  • Permiten
  • Organizar de mejor manera el código
  • Reducir la cantidad de código redundante en un
    programa. Reutilizar código
  • Solucionar problemas grandes de una forma más
    fácil
  • Sentencias que se ejecutan muchas veces y que no
    están contenidas en un ciclo, por lo general se
    definen como un subprograma/función

4
Subprogramas/funciones en Java
  • Uno de los mecanismos de Java para implementar
    funciones o subprogramas es a través de los
    métodos estáticos

5
Propiedades de los métodos estáticos
  • Parámetros Se pueden usar en cualquier lugar del
    código del cuerpo de la función de la misma forma
    que se usan las variables locales. La diferencia
    es que los parámetros se inicializan con el valor
    de los argumentos provistos por la llamada.
  • Alcance El conjunto de sentencias que se pueden
    referir al nombre de las variables. El alcance de
    las variables en un método estático está limitado
    para el cuerpo del método (variables locales).
    Por lo tanto, no se puede referir a una variable
    en un método estático que esta declarado en otro.

6
Propiedades de los métodos estáticos
  • Múltiples métodos. Se pueden definir todos los
    métodos estáticos que se necesiten. Estos métodos
    son independientes, excepto aquellos que pueden
    interactuar a través de llamadas.
  • Llamando a otros métodos estáticos Los métodos
    estáticos definidos en un archivo .java pueden
    llamar a algún otro método estático en el mismo
    archivo o algún método estático en la biblioteca
    Java como Math.
  • Múltiples parámetros Como las funciones
    matemáticas, un método estático en Java puede
    tomar más de un argumento (o parámetros). Por
    ejemplo para calcular la hipotenusa de un
    triángulo con lados a y b

public static double calcularHipotenusa(double a,
double b) double auxiliarMath.sqrt(a a b
b) return auxiliar
7
Usando y definiendo métodos estáticos
  • Ya se ha utilizado la Java Math library, que
    contiene métodos estáticos fáciles de entender.
  • Por ejemplo, cuando escribimos Math.abs(a-b) en
    un programa, el efecto es como si se reemplazara
    el código por el valor computado por el método
    Java Math.abs() cuando se presenta con el valor
    a-b.
  • Para crear este efecto, lo que se realiza es
    cambiar el flujo de control del programa.

8
Llamado de métodos
9
Ejemplo
  • Implemente un programa que utilice un
    procedimiento que despliega un menú por pantalla
  • Entrada
  • Opción del menú escogida
  • Salida
  • Mostrar por pantalla la opción que se escogió

10
Ámbito de las variables
  • Las variables definidas en los programas se
    clasifican en
  • Variables Locales
  • Declaradas y definidas dentro de un método
  • Es visible solamente dentro de el método donde
    fue definida
  • Es distinta de otras con el mismo nombre
  • Puede ser declarada en cualquier parte del
    programa
  • Variables Globales
  • Es aquella que esta declarada en el programa
    principal fuera de todo método y con la palabra
    static para poder utilizarla desde el main.
  • Es visible en todo el programa
  • Si se declara una variable local con el mismo
    nombre, la variable local oculta a la global

11
Ejemplo
public class Hipotenusa //z variable
global static double z //a b
parametros public static double
calcularHipotenusa(double a, double b) //
auxiliar variable local double
auxiliarMath.sqrt(a a b b) return
auxiliar public static void main(String
args) // x y variables locales double
x,y StdOut.println("Ingrese cateto
X") xStdIn.readDouble() StdOut.println("Ingrese
cateto Y") yStdIn.readDouble() zcalcularHipo
tenusa(x,y) StdOut.println("La hipotenusa vale"
z)
12
Ámbito de las variables
  • Se aconseja programar en base a variables locales
  • Hace a los métodos independientes
  • Es más fácil la reutilización de código
  • La comunicación entre métodos y programa
    principal, se realiza en base a los parámetros
  • Para utilizar un método solo se debe saber lo que
    este hace, no se debe uno preocupar de cómo este
    fue diseñado

13
Parámetros
  • Una lista de parámetros, o datos de entrada,
    puede ser incluida como parte del método.
  • Esta lista de parámetros permite que ciertos
    datos sean transferidos al método desde el
    sub-programa que lo llama (mensaje).

14
Ejemplo
  • Implemente un programa que calcule el i-esimo
    número de Fibonacci
  • Entrada El valor de i
  • Salida Mostrar por pantalla el i-esimo número de
    Fibonacci

15
Ejemplo Fibonacci
public class FiboFunction public static int
fibo(int posicion) int aux 0, x1 1, x2
1 if (posicion 1 posicion 2) return
1 else for (int i 3 i lt posicion i) aux
x2 x1 x1 x2 x2 aux return
aux public static void main(String args)
StdOut.println(fibo(6))
  • Todo método termina su ejecución cuando encuentra
    un return, el cual debe devolver el tipo de dato
    acorde a lo declarado.

16
Paso de parámetros
  • Los métodos pueden recibir datos de entrada de
    dos formas
  • Con Variables Globales, lo que no es recomendable
    pero se puede realizar
  • Para un mayor control del flujo del programa y el
    valor de las variables se recomienta utilizar el
    Paso de parámetros

17
Paso de parámetros
  • Existen dos formas de pasar parámetros a un
    método
  • Paso de parámetros por valor
  • Para las variables de tipo primitivos
  • Paso de parámetros por referencia
  • Para objetos (como los arreglos).

18
Por valor
  • Es lo que hemos visto hasta ahora
  • El método trabaja con una copia de la variable o
    valor original
  • El valor de la variable original que es pasada
    como parámetro no se altera dentro del método
  • El método puede modificar la copia, pero no
    altera a la variable original

19
Paso por referencia
  • Una manera para que los métodos trabajen con la
    variable original, en vez de utilizar una copia
    de estas, se le llama paso paso por referencia
  • Para pasar un parámetro por referencia se debe
    utilizar objetos (como los arreglos).
  • objetos se profundizan en C3

20
Paso por referencia
  • Se crea un enlace entre el variable pasada como
    parámetro y la variable recibida en el método
  • Toda modificación que se haga a la variable
    dentro del método se refleja en la variable
    original pasada como parámetro

21
Ejemplo por Valor
  • Tenemos 0

public class Valor public static void
llenarEntero(int i) i100 public static
void main(String args) int numero0 llenarEnt
ero(numero) StdOut.println("Tenemos "
numero)
22
Ejemplo Referencia
  • Tenemos 100

public class Referencia public static void
llenarEntero(int i) i0100 public
static void main(String args) int
numeronew int1 numero00 llenarEntero(numer
o) StdOut.println("Tenemos " numero0)
23
Retorno de una Función
  • Una función retorna al método que lo llamo
    cuando
  • Se encuentra la llave que cierra la función
  • O cuando la sentencia de return es ejecutada
  • Puede ser usada con o sin un valor asociado
  • Si el método fue declarado como aquella que
    retorna un valor de un cierto tipo, entonces debe
    retornar un valor.
  • Solo funciones declaradas con tipo void pueden no
    usar el return

24
Fin
  • Todavía es tiempo
Write a Comment
User Comments (0)
About PowerShow.com