Funciones en Java
Programación I - UNGS
Variables
Para almacenar valores utilizamos variables, que se declaran con un
tipo de datos asociado:
2 of 14
Variables
Para almacenar valores utilizamos variables, que se declaran con un
tipo de datos asociado:
1 class Ejemplo
2 {
3 public static void main (String[] args)
4 {
5 String saludo = ”Hola, mundo”;
6 System.out.println(saludo);
7 }
8 }
2 of 14
Tipos de datos
• Un tipo de datos es ...
1. ... un conjunto de valores (llamado el conjunto base del tipo),
2. ... junto con una serie de operaciones para trabajar con los elementos
de ese conjunto.
3 of 14
Tipos de datos
• Un tipo de datos es ...
1. ... un conjunto de valores (llamado el conjunto base del tipo),
2. ... junto con una serie de operaciones para trabajar con los elementos
de ese conjunto.
• Por ejemplo, int es un tipo de datos.
1. El conjunto base de int es C = {−232 , . . . , 232 − 1} ⊆ Z.
2. Las operaciones son la suma (+), resta (-), producto (*), división (/),
resto (%), etc.
3 of 14
Concordancia de tipos
En Java es obligatorio asignar a cada variable expresión que coincida
con su tipo. Se dice que Java es un lenguaje fuertemente tipado
(strongly typed).
4 of 14
Concordancia de tipos
En Java es obligatorio asignar a cada variable expresión que coincida
con su tipo. Se dice que Java es un lenguaje fuertemente tipado
(strongly typed).
1 class Ejemplo
2 {
3 public static void main (String[] args)
4 {
5 String saludo = 5; // MAL! 5 es un int.
6 }
7 }
4 of 14
Declaración y Asignación
• Declaración: Especificación de la existencia de la variable, con su
tipo de datos.
• Asignación: Asociación de un valor a la variable, que no cambia a
menos que sea explı́citamente modificado por otra asignación.
• Inicialización: La primera asignación a una variable. Entre la
declaración y la inicialización tiene un valor por defecto.
1 class Ejemplo
2 {
3 public static void main (String[] args)
4 {
5 String saludo = ”Hola”; // Declaración + inicialización
6 saludo = saludo + ”, mundo”; // Asignación
7 }
8 }
5 of 14
Expresiones y funciones
El elemento del lado derecho de una asignación es una expresión.
Esta expresión también puede incluir llamadas a funciones:
1 class Ejemplo
2 {
3 public static void main (String[] args)
4 {
5 Scanner scan = new Scanner(System.in);
6 String saludo = ”Hola, ”;
7 System.out.println(”Escriba su nombre: ”);
8 saludo = saludo + scan.nextLine();
9 System.out.println(saludo);
10 }
11 }
6 of 14
Funciones con valores de retorno
• Podemos declarar nuestras propias funciones. Para eso debemos
especificar:
1. Tipo de retorno
2. Nombre
3. Argumentos (o parámetros)
• Las funciones se declaran dentro del bloque “class”,
provisoriamente precedidas por el modificador static.
• Los argumentos se especifican separados por comas, y cada uno
debe tener un tipo de datos asociado. Cuando se llama a la
función, el código “llamador” debe respetar el orden y tipo de los
argumentos.
7 of 14
Funciones con valores de retorno
La función devuelve el valor que se especifica mediante la sentencia
return. Por ejemplo, la siguiente función no toma ningún parámetro
y devuelve siempre el mismo valor:
8 of 14
Funciones con valores de retorno
La función devuelve el valor que se especifica mediante la sentencia
return. Por ejemplo, la siguiente función no toma ningún parámetro
y devuelve siempre el mismo valor:
1 static String pedirNombre()
2 {
3 return ”Pepe”;
4 }
8 of 14
Funciones con valores de retorno
Volviendo al ejemplo anterior, podemos llamar a pedirNombre()
dentro de la expresión:
1 class Ejemplo
2 {
3 static String pedirNombre()
4 {
5 Scanner scan = new Scanner(System.in);
6 System.out.println(”Escriba su nombre”);
7 return scan.nextLine();
8 }
9 public static void main (String[] args)
10 {
11 String saludo = ”Hola ”;
12 saludo = saludo + pedirNombre();
13 System.out.println(saludo);
14 }
15 } 9 of 14
Funciones
Veamos ahora un caso en que la función toma un parámetro.
1 static String pedirNombre()
2 {
3 Scanner scan = new Scanner(System.in);
4 System.out.println(”Escriba su nombre”);
5 return scan.nextLine();
6 }
7 static void saludar(String nombre)
8 {
9 System.out.println(”Hola ” + nombre);
10 }
11
12 public static void main (String[] args)
13 {
14 String nombre = pedirNombre();
15 saludar(nombre);
16 }
10 of 14
Composición
Podemos hacer lo mismo pasándole a saludar el resultado de
pedirNombre. Esto es un ejemplo de composición.
1 static String pedirNombre()
2 {
3 Scanner scan = new Scanenr(System.in);
4 System.out.println(”Escriba su nombre”);
5 return scan.nextLine();
6 }
7 static void saludar(String nombre)
8 {
9 System.out.println(”Hola ” + nombre);
10 }
11
12 public static void main (String[] args)
13 {
14 saludar(pedirNombre());
15 } of 14
11
Expresiones y Métodos
En caso de que haya más de un parámetro, se separan por comas:
1 class Ejemplo
2 {
3 static int suma(int a, int b)
4 {
5 return a+b;
6 }
7
8 public static void main (String[] args)
9 {
10 int a = suma(2,3);
11 System.out.println(”La suma de 2 más 3 es ” + a);
12 }
13 }
12 of 14
Expresiones y Métodos
El mismo ejemplo, pero utilizando composición:
1 class Ejemplo
2 {
3 static int suma(int a, int b)
4 {
5 return a+b;
6 }
7
8 public static void main (String[] args)
9 {
10 System.out.println(”La suma de 2 más 3 es ” + suma(2,3));
11 }
12 }
13 of 14
En el libro...
Lo que vimos en esta clase,
lo pueden encontrar en los
capı́tulos 3 y 5 del libro.
14 of 14