Está en la página 1de 21

Alberto Zagalaz Anula

Programación– Tema 3

ÍNDICE DE CONTENIDOS

1. Funciones
1. Argumentos y valores de retorno
2. Ámbito de las variables

2. Introducción a la interfaz gráfica

Alberto Zagalaz Anula


Programación

1. Funciones

 Al desarrollar una aplicación compleja, es común que ciertas tareas se


repitan, o se vuelvan a ejecutar en distintas partes de la misma, incluso
puede que se puedan reutilizar en otras aplicaciones similares.

 Si tenemos que repetir estos códigos una y otra vez, mantener el código se
complica ya que aumenta en tamaño y complejidad.

 Si después hay que modificar esa tarea que se repite en varias partes, sería
necesario hacerlo en todos los lugares en los que se utilice.

 Si la aplicación es único elemento es más complicado poder dividir el


trabajo entre distintos desarrolladores.

Alberto Zagalaz Anula


Programación

1. Funciones

 Una función es un conjunto de instrucciones que se agrupan para realizar


una tarea concreta, que se pueden reutilizar y compartir fácilmente.

 Hasta ahora sólo creábamos una sola función o método main dentro de
nuestra clase. Esto es así por que main es el método que se ejecuta
automáticamente cuando invocamos a una clase.

 Es posible crear tantas como queramos dentro de una misma clase con la
misma estructura que main pero cambiándole el nombre:

public static void nuevoMetodo(){


//código del método nuevoMetodo
}

Alberto Zagalaz Anula


Programación

1. Funciones

 Estas funciones deben crearse dentro la clase y pueden estar delante o


detrás del main, aunque normalmente se crean delante:

public class miClase{


public static void nuevoMetodo(){
//código del método nuevoMetodo
}

public static void main(String [] args){


//código del main
}

Alberto Zagalaz Anula


Programación

1. Funciones

 Para poder ejecutar estas funciones basta con invocarlas por su nombre:

public class miClase{


public static void saluda(){
System.out.println(“Buenos días”)
}
public static void main(String [] args){
saluda()
}

 Incluso podemos ejecutar funciones que se encuentren en otros ficheros,


para esto basta con que delante del nombre del fichero indiquemos el
nombre de la clase en la que se encuentra.

Alberto Zagalaz Anula


Programación

1. Funciones

 Para poder ejecutar estas funciones basta con invocarlas por su nombre:

public class miClase{


public static void saluda(){
System.out.println(“Buenos días”)
}
public static void main(String [] args){
saluda()
}

 Incluso podemos ejecutar funciones que se encuentren en otros ficheros,


para esto basta con que delante del nombre del fichero indiquemos el
nombre de la clase en la que se encuentra.

Alberto Zagalaz Anula


Programación

1. Funciones

 Ejercicio: Crea un programa que llame a 3 ejercicios cualquiera que tengas


hechos. Para esto cambiales el nombre a los métodos main de estos
ejercicios para poder llamarlos (por ejemplo ej1, ej2 y ej3). Y después crea
una clase que en el método main te pregunte por cual quieres ejecutar y
llame a dicho programa.

Alberto Zagalaz Anula


Programación

1.1 Argumentos y valores de Retorno

 Cada función solo tiene acceso a las variables creadas dentro de su juego
de llaves. Así que si intentamos acceder a ellas desde otra función
producirá un error de compilación del mismo modo que cuando
intentamos acceder a una variable interna de un bucle desde fuera.

 Para solucionar esto se usan los argumentos y valores de retorno. A cada


función se le pueden enviar todos los datos que se deseen pero solo puede
devolver como máximo un único valor.

public static int miMetodo(){


int aleatorio= (int)(Math.random()*100+1);
return aleatorio;
}

Alberto Zagalaz Anula


Programación

1.1 Argumentos y valores de Retorno


 El resultado de una función se devuelve usando la palabra reservada return
seguido del valor o variable a devolver. Esta instrucción es obligatoriamente la
última de la función.

 Además hay que indicar el tipo del valor que se va a devolver delante del
nombre del método. Si no se devuelve nada se indica con la palabra reservada
void

public static boolean miMetodo(){


int aleatorio= (int)(Math.random()*100+1);
if(aleatorio%2==0){
return true;
}else{
return false;
}
}

Alberto Zagalaz Anula


Programación

1.1 Argumentos y valores de Retorno

 Ejercicio: Crea un método que pida por teclado un número decimal entre 1
y 100, si el valor leído está fuera del rango que lo vuelva a pedir hasta que
sea correcto. Después utilízalo en el método main para leer 3 números y
decir cual es el mayor de ellos

Alberto Zagalaz Anula


Programación

1.1 Argumentos y valores de Retorno

 Como hemos dicho también es posible pasarle datos a la función. Estos se


indican dentro de los paréntesis del método si son más de uno se separan
por comas:

public void miMetodo(int val, String cad){


System.out.println(“me has mandado ”+val+” y ”+cad);
}

 El nombre que indicamos entre paréntesis para la variable es el nombre


con el que nos vamos a referir a el dentro de este método y no tiene por
que coincidir con el nombre de la variable en el programa que llama a este
método.

Alberto Zagalaz Anula


Programación

1.1 Argumentos y valores de Retorno

 Cuando llamamos al método solo hay que indicarle en los paréntesis las
variables o valores que queremos pasarle al método:

public double raiz(double n1){


double resultado=Math.sqrt(n1);
return resultado;
}

public static void main(String [] args){


double n1=5, otro=12;
System.out.println(raíz(n1));
System.out.println(raíz(otro));
System.out.println(raíz(12));
}
Alberto Zagalaz Anula
Programación

1.1 Argumentos y valores de Retorno

 Ejercicio: Siempre que leemos un valor de teclado, solemos mostrar un


System.out con un mensaje para que el usuario sepa que es el valor que le
estamos pidiendo y después de esto hacemos la lectura. Crea un método
para leer un entero, al que le pasamos como argumento el mensaje que
queremos mostrar por pantalla después que lea un entero y nos lo
devuelva. De esta forma podremos simplificar las lecturas en nuestros
programas, haz lo mismo para un String y para un doublé

 Mejora el método del String para que no acepte que introduzcamos una
cadena vacía en la lectura.

Alberto Zagalaz Anula


Programación

1.1 Argumentos y valores de Retorno

 Ejercicio crea una aplicación calculadora que permita hacer las operaciones
básicas (+,-,*/) como hemos hecho otras veces, pero ahora implementa
cada operación en un método diferente. Además utiliza los métodos
creados anteriormente para pedir valores y mostrar los resultados.

 Cada vez que haga una operación el programa preguntará si quiere salir, si
introduce un 0 el programa se acabará, si introduce un 1 volverá a mostrar
el menú y a realizar otra operación

Alberto Zagalaz Anula


Programación

2. VENTANAS PREDEFINIDAS
 Aunque aun no tengamos los conocimientos necesarios para implementar
aplicaciones con interfaz gráfica java nos permite mostrar pequeñas
ventanas de diálogo predefinidas que muestran un mensaje o piden algún
tipo de valor o confirmación.

 Esto se realiza mediante la clase JOptionPane. Concretamente veremos


estos 3 tipos:

ShowMessageDialog: Muestra una ventana


ShowConfirmDialog: Muestra un mensaje y pide confirmación (si, no)
ShowInputDialog: Pide que se introduzca un valor.

Para utilizarlos es necesario importar javax.swing.JOptionPane

Alberto Zagalaz Anula


Programación

2. VENTANAS PREDEFINIDAS

 ShowMessageDialog: Muestra una pequeña ventana con un mensaje y un


botón de aceptar que al pulsarlo cierra la ventana.

JOptionPane.showMessageDialog(JFrame, String ) ;

Jframe: Nombre de la ventana principal de la que depende. En nuestro


caso null

String: Mensaje a mostrar.

Alberto Zagalaz Anula


Programación

2. VENTANAS PREDEFINIDAS

 ShowConfirmDialog: Muestra una pequeña ventana con un mensaje y los


botones de si, no, cancelar. Devolviendo un entero que indica el botón que
se ha pulsado.

int resp=JOptionPane.showConfirmDialog(JFrame, String ) ;

Jframe: Nombre de la ventana de la que depende. (null)

String: Mensaje a mostrar.

El valor devuelto es 0 si pulsa si, 1 si pulsa no y 2 si pulsa cancelar.

Alberto Zagalaz Anula


Programación

2. VENTANAS PREDEFINIDAS

 ShowInputDialog: Muestra una pequeña ventana con un mensaje un


cuadro de texto para responder. Devuelve un string con el valor
introducido.

String resp=JOptionPane.showInputDialog(JFrame, String ) ;

Jframe: Nombre de la ventana de la que depende.

String: Mensaje a mostrar.

Devuelve un string con el valor introducido por el usuario.

Alberto Zagalaz Anula


Programación

2. VENTANAS PREDEFINIDAS

 showInputDialog siempre devuelve el valor introducido como String,


incluso aunque sea un número. Para convertirlo entero o decimal podemos
utilizar los siguientes métodos:

Integer.parseInt(String) //devuelve como entero el String pasado

Double.parseDouble(String) //devuelve como entero el String pasado

 Si el String pasado no puede ser convertido a int o double producirá un


error que abortará el programa.

Alberto Zagalaz Anula


Programación

2. VENTANAS PREDEFINIDAS

 Ejercicio: Crea los métodos necesarios para poder modificar el ejercicio de


la calculadora anterior para que ahora funcione con interfaz gráfica.

 Concretamente necesitarás un método que muestre los resultados con una


ventana (ShowMessageDialog), otros 2 métodos que muestren un mensaje
y lean un valor, uno con enteros y otro con decimales y otro que muestre
un mensaje y pida confirmación (Si, No).

 Aprovecha para darles nombres más sencillos de recordar.

Alberto Zagalaz Anula

También podría gustarte