Download - 6.Métodos en Java
Objetivos del Capítulo.➔ Conocer cómo se asocian los métodos.➔ Utilizar los métodos Math.➔ Pasar información entre métodos.➔ Comprender cómo se soporta el mecanismo de
llamada/retorno.➔ Conocer cómo los paquetes agrupan las clases
relacionadas.➔ Utilizar la generación de números aleatorios para
implementar aplicaciones para juegos.
Programas Reales.➔ La mayoría de los programas que resuelven
problemas reales son más grandes que los programas que se presentan en los primeros capítulos.
➔ La experiencia ha demostrado que la mejor forma de desarrollar y mantener un programa extenso es construirlo a partir de piezas (o componentes) simples y pequeñas.
➔ A esta técnica se le conoce como divide y vencerás.
Módulos de programas. ➔ Existen tres tipos de módulos en Java:
métodos, clases y paquetes. ➔ Para escribir programas, se combinan los nuevos
métodos y clases que usted escribe con los que están disponibles en Java.
➔ Por lo general, las clases relacionadas están agrupadas en paquetes, de manera que se pueden importar a los programas y reutilizarse.
➔ En el capítulo 8 aprenderá a agrupar sus propias clases en paquetes.
¿Qué son los métodos?➔ Los métodos permiten dividir un programa
en módulos. ➔ Las instrucciones de los métodos se escriben sólo
una vez, y se reutilizan muchas veces.➔ Una razón para dividir un programa en módulos es
la metodología “divide y vencerás”, que hace que el desarrollo sea más fácil de administrar.
➔ Otra razón es la reutilización de software (usar los métodos existentes como bloques de construcción para crear nuevos programas).
Recomendación de Ingeniería del Software.➔ Para promover la reutilización, cada método debe
limitarse de manera que realice una sola tarea bien➔ definida, y su nombre debe expresar esa tarea con
efectividad. ➔ Estos métodos hacen que los programas sean más
fáciles de escribir, depurar y modificar.➔ Un método se invoca mediante una llamada, y
cuando el método que se llamó completa su tarea, devuelve un resultado.
La clase Math➔ La clase Math cuenta con una colección de
métodos que nos permiten realizar cálculos matemáticos.
➔ Por ejemplo, podemos calcular la raíz cuadrada de 900 con una llamada al siguiente método:Math.sqrt(900). Resultado = 30.0.
➔ El método sqrt recibe un argumento de tipo double y devuelve el resultado.
➔ Para imprimir el valor de la llamada anterior al método en una ventana de comandos:
➔ System.out.println( Math.sqrt( 900 ) );
Raiz Cuadradapackage raiz;import java.util.Scanner;public class Raiz { public static void main(String[] args) { Scanner entrada = new Scanner( System.in ); double numero, raiz; System.out.println("Ingrese 1 número:"); numero = entrada.nextInt(); raiz=Math.sqrt(numero); System.out.println("La Raiz es:"+raiz); } }
Mayor de 2 Númerospackage mayor;import java.util.Scanner;public class Mayor { public static void main(String[] args) { Scanner entrada = new Scanner( System.in ); double numero1, numero2, mayor; System.out.println("Ingrese 2 números:"); numero1 = entrada.nextInt(); numero2 = entrada.nextInt(); mayor=Math.max(numero1,numero2); System.out.println("El mayor es:"+mayor); } }
Constante PI ➔ La clase Math también declara campos
que representan unas constantes matemáticas de uso común: Math.PI.
➔ La constante Math.PI (3.14159265358979323846) es la proporción de la circunferencia de un círculo con su diámetro.
➔ Al hacer a estos campos static, se puede acceder a ellos mediante el nombre de clase Math y un separador de punto (.), justo igual que los métodos de la clase Math.
Función con 1 Parámetro.package cuadrado;public class Cuadrado { static int cuadrado(int numero) { int resultado; resultado=numero*numero; return resultado; }
public static void main(String[] args) { int cuadrado, numero=12; cuadrado = cuadrado( numero ); System.out.println("El cuadrado es: "+cuadrado); }}
Métodos con muchos parámetros➔ Los capítulos 3 a 5 presentaron clases que
contienen métodos simples.➔ Ahora le mostraremos cómo escribir métodos con
varios parámetros.➔ La siguiente aplicación utiliza el método máximo,
declarado por el programador, para determinar y devolver el mayor de tres números.
➔ Cuando la aplicación empieza a ejecutarse, el método main crea un objeto de la clase BuscarMayor.
Utilizando Clases:Mayor de 2 Números//Mayor.javapackage mayor;public class Mayor {public static void main(String[] args) {BuscarMayor BuscarMayor = new BuscarMayor();BuscarMayor.Mayor();} }
Mayor de 3 NúmerosBuscadorMaximo.java
package mayor;import java.util.Scanner;public class BuscarMayor {public void Mayor(){Scanner entrada = new Scanner( System.in );System.out.print("Ingrese 2 numeros:");int numero1 = entrada.nextInt(); int numero2 = entrada.nextInt(); int resultado = maximo(numero1,numero2);System.out.println( "El mayor es: " + resultado );} public int maximo(int x, int y){int mayor = x; // asume que x es el mayorif ( y > mayor )mayor = y;return mayor;} }
Combinando texto mediante concatenación➔ Java permite crear objetos String mediante el
ensamblado de objetos string más pequeños, mediante el uso del operador +.
➔ A esto se le conoce como concatenación de objetos string.
➔ El operador + crea un nuevo objeto String en el cual los caracteres del operando derecho se colocan al final de los caracteres en el operando izquierdo.
➔ Por ejemplo, la expresión "hola" + "a todos" crea el objeto String "hola a todos".
Ejemplo práctico: Sorteo de números.➔ En ésta y en la siguiente sección desarrollaremos
un programa de juego con varios métodos. ➔ El programa utiliza la mayoría de las instrucciones
de control presentadas hasta este punto en el libro, e introduce conceptos nuevos.
➔ Hay algo en el ambiente de un casino de apuestas que anima a las personas:
➔ Es el elemento de azar, la posibilidad de que la suerte convierta un bolsillo lleno de dinero.
➔ El elemento de azar puede introducirse en un programa mediante un objeto de la clase Random (paquete java.util)
Random➔ Se puede crear un generador de números aleatorios
de la siguiente manera:Random numerosAleatorios = new Random();➔ Después, el generador de números aleatorios puede
usarse para generar nuevos valores númericos, boolean, byte, float, double, int, long y gaussianos.
➔ El método nextInt de la clase Random genera un valor int aleatorio en el rango de –2.147.483.648 a +2.147.483.647.
➔ Cualquier valor en ese rango debería tener una oportunidad de salir sorteado.
package sorteo;import java.util.Random; //clase Randompublic class Sorteo {public static void main( String args[] ){Random sortear = new Random(); int cara;for ( int contador = 1; contador <= 5; contador++ ){ cara = 1 + sortear.nextInt( 6 ); System.out.printf( " "+cara ); // muestra el valor generado} } }
Programa que lanza un dado 5 veces