Declaración de métodos.
Cuando uno plantea una clase en lugar de especificar todo el
algoritmo en un único método (lo que hicimos en los primeros pasos de
este tutorial) es dividir todas las responsabilidades de las clase en un
conjunto de métodos.
Un método hemos visto que tiene la siguiente sintaxis:
public void [nombre del método]() { [algoritmo] }
Veremos que hay varios tipos de métodos:
Métodos con parámetros.
Un método puede tener parámetros:
public void [nombre del método]([parámetros]) { [algoritmo] }
Los parámetros los podemos imaginar como variables locales al método,
pero su valor se inicializa con datos que llegan cuando lo llamamos.
Problema 1:
Confeccionar una clase que permita ingresar valores enteros por
teclado y nos muestre la tabla de multiplicar de dicho valor. Finalizar
el programa al ingresar el -1.
Programa:
import java.util.Scanner; public class TablaMultiplicar { public void cargarValor() { Scanner teclado=new Scanner(System.in); int valor; do { System.out.print("Ingrese valor:"); valor=teclado.nextInt(); if (valor!=-1) { calcular(valor); } } while (valor!=-1); } public void calcular(int v) { for(int f=v;f<=v*10;f=f+v) { System.out.print(f+"-"); } } public static void main(String[] ar) { TablaMultiplicar tabla; tabla=new TablaMultiplicar(); tabla.cargarValor(); } }
En esta clase no hemos definido ningún atributo, ya que el objeto de
la clase Scanner lo requerimos en un solo método, por ello lo definimos
como una variable local.
El método calcular recibe un parámetro de tipo entero, luego lo
utilizamos dentro del método para mostrar la tabla de multiplicar de
dicho valor, para esto inicializamos la variable f con el valor que
llega en el parámetro. Luego de cada ejecución del for incrementamos el
contador f con el valor de v.
public void calcular(int v) { for(int f=v;f<=v*10;f=f+v) { System.out.print(f+"-"); } }
Un método puede no tener parámetros como hemos visto en problemas
anteriores o puede tener uno o más parámetros (en caso de tener más de
un parámetro los mismos se separan por coma)
El método cargarValores no tiene parámetros y tiene por objetivo
cargar un valor entero por teclado y llamar al método calcular para que
muestre la tabla de multiplicar del valor que le pasamos por teclado:
public void cargarValor() { Scanner teclado=new Scanner(System.in); int valor; do { System.out.print("Ingrese valor:"); valor=teclado.nextInt(); if (valor!=-1) { calcular(valor); } } while (valor!=-1); }
Como vemos al método calcular lo llamamos por su nombre y entre
paréntesis le pasamos el dato a enviar (debe ser un valor o variable
entera)
En este problema en la main solo llamamos al método cargarValor, ya
que el método calcular luego es llamado por el método cargarValor:
public static void main(String[] ar) { TablaMultiplicar tabla; tabla=new TablaMultiplicar(); tabla.cargarValor(); }
Métodos que retornan un dato.
Un método puede retornar un dato:
public [tipo de dato] [nombre del método]([parámetros]) { [algoritmo] return [tipo de dato] }
Cuando un método retorna un dato en vez de indicar la palabra clave
void previo al nombre del método indicamos el tipo de dato que retorna.
Luego dentro del algoritmo en el momento que queremos que finalice el
mismo y retorne el dato empleamos la palabra clave return con el valor
respectivo.
Problema 2:
Confeccionar una clase que permita ingresar tres valores por teclado. Luego mostrar el mayor y el menor.
Programa:
import java.util.Scanner; public class MayorMenor { public void cargarValores() { Scanner teclado=new Scanner(System.in); System.out.print("Ingrese primer valor:"); int valor1=teclado.nextInt(); System.out.print("Ingrese segundo valor:"); int valor2=teclado.nextInt(); System.out.print("Ingrese tercer valor:"); int valor3=teclado.nextInt(); int mayor,menor; mayor=calcularMayor(valor1,valor2,valor3); menor=calcularMenor(valor1,valor2,valor3); System.out.println("El valor mayor de los tres es:"+mayor); System.out.println("El valor menor de los tres es:"+menor); } public int calcularMayor(int v1,int v2,int v3) { int m; if(v1>>v2 && v1>v3) { m=v1; } else { if(v2>v3) { m=v2; } else { m=v3; } } return m; } public int calcularMenor(int v1,int v2,int v3) { int m; if(v1<v2 && v1<v3) { m=v1; } else { if(v2<v3) { m=v2; } else { m=v3; } } return m; } public static void main(String[] ar) { MayorMenor maymen=new MayorMenor(); maymen.cargarValores(); } }
Si vemos la sintaxis que calcula el mayor de tres valores enteros es similar al algoritmo visto en conceptos anteriores:
public int calcularMayor(int v1,int v2,int v3) { int m; if(v1>v2 && v1>v3) { m=v1; } else { if(v2>v3) { m=v2; } else { m=v3; } } return m; }
Lo primero que podemos observar que el método retorna un entero y recibe tres parámetros:
public int calcularMayor(int v1,int v2,int v3) {
Dentro del método verificamos cual de los tres parámetros almacena un
valor mayor, a este valor lo almacenamos en una variable local llamada
"m", al valor almacenado en esta variable lo retornamos al final con un
return.
La llamada al método calcularMayor lo hacemos desde dentro del método cargarCalores:
mayor=calcularMayor(valor1,valor2,valor3);
Debemos asignar a una variable el valor devuelto por el método
calcularMayor. Luego el contenido de la variable mayor lo mostramos:
System.out.println("El valor mayor de los tres es:"+mayor);
La lógica es similar para el cálculo del menor.
No hay comentarios.:
Publicar un comentario