LENGUAJES DE PROGRAMACIÓN  
 
 
Empezando con Java

EMPEZANDO CON JAVA

 
 

 

6.3. Parametros de los métodos.

 

anterior :: indice :: siguiente

 

6.1. Introducción.

6.2. Declaración de métodos.

6.3. Parametros de los métodos.

 

6.4. Parametros vargs o parametros arbitrarios.

6.5. Sobrecarga de métodos.

6.6. Recursividad.

 

 

 

 

Los métodos que nosotros creamos al igual que el método principal también pueden usar parámetros, los parámetros son el medio de comunicación que permite pasar variables globales o de instancia a un método. Los parámetros se encierran entre dos paréntesis y se debe indicar el tipo de dato que se va usar con los métodos. A continuación el primer ejemplo:

 

 
import java.util.Locale;
import java.util.Scanner;
import java.lang.Math;

class Ejemplo01{
  static int a,b,c;
  static Scanner lectura;

  static void leyendo(){
    System.out.printf("a = ");a=lectura.nextInt();
    System.out.printf("b = ");b=lectura.nextInt();
  }

  static int Suma(int a, int b){
   return a+b;
  }

  public static void main(String[] args){
    Locale.setDefault(Locale.US);
    lectura = new Scanner(System.in);

    leyendo();
    c=Suma(a,b);
    System.out.printf("La suma es %d",c);
  }
}
 

Código fuente 4: Parametros en los métodos.

 

Como se puede observar en el programa anterior, el método suma tiene dos parámetros de tipo entero, que se usarán dentro del método para realizar la suma, a diferencia de como declaramos variables globales o locales, cada parámetro debe ser individual y debe tener su tipo de dato separado por una coma. Es decir el siguiente encabezado no sería correcto:

 

static int Suma(int a,b)

 

A diferencia de otros lenguajes de programación en donde los parámetros que se pasan dentro de un método, pueden ser alterados y devueltos con ese valor alterado, en Java eso no es posible es decir en Java no se permite devolver alterados o cambiados los valores de las variables ingresadas a través de sus parámetros a un método. Generalmente se usan variables globales o de instancia. Las variables ingresadas a un método deben ser estrictamente del tipo de dato declarado en el método, es decir por ejemplo si las variables a,b del ejemplo anterior, fueran de tipo byte entonces el compilador no podría compilar el programa.

Todos los parámetros en Java crearán una copia en memoria de la variable pasada al método, el espacio de memoria en donde se colocan estas copias se conoce como Pila.

Las variables locales de un método también se almacenan en la Pila. Cuando un método finaliza con su conjunto de instrucciones los parámetros y sus variables locales son destruidos o liberados dejando espacio para ser usados por otro método.

Los identificadores de los parámetros pueden ser los mismos que cualquier variable global declarada dentro de la clase de una aplicación, pero sin embargo dentro de la definición o declaración de los parámetros de un método, no deben existir identificadores con el mismo nombre. Es decir lo siguiente es incorrecto:

 

static int Suma(int a, int a)

 

Los parámetros que usen tipos de datos simples o primitivos como los números enteros, booleanos, caracteres, y reales se usan del modo como se explico anteriormente, lo mismo sucede con las cadenas de caracteres. Ejemplo:

 

 
import java.util.Locale;
import java.util.Scanner;
import java.lang.Math;

class Ejemplo05{
  static int c;
  static Scanner lectura;
  static String nombre,frase;

  static int Vocales(String cad){
    int i,j,aux;
    String Vocales;
    aux =0;
    Vocales="aeiouAEIOU"+'\u00C1'+'\u00C9'+'\u00CD'+'\u00D3'+
	         '\u00DA'+'\u00E1'+'\u00E9'+'\u00ED'+'\u00F3'+'\u00FA';
    for (i=0;i<cad.length();i+=1)
      for (j=0;j<Vocales.length();j+=1){
          if (cad.charAt(i)==Vocales.charAt(j)) aux+=1;
        }
    return aux;
  }

  public static void main(String[] args){

    Locale.setDefault(Locale.US);
    lectura = new Scanner(System.in);

    System.out.printf("Ingrese un nombre : ");
    nombre=lectura.nextLine();
    System.out.printf("Ingrese una frase : ");
    frase=lectura.nextLine();

    c=Vocales(nombre);
    System.out.printf("Su nombre tiene: %2d vocales%n",c);
    c=Vocales(frase);
    System.out.printf("Su frase tiene: %2d vocales%n",c);
 }
}
 

Código fuente 5: Vocales.

 

El método Vocales del programa anterior cuenta las vocales que tiene una frase, de acuerdo al juego de caracteres unicode.

Cuando se usan los arreglos como parámetro en un método, los elementos del arreglo si se pueden modificar dentro del método. Es decir si se pasa un arreglo a un método los contenidos del arreglo se pueden devolver alterados. Un arreglo como parámetro de un método se declara primero colocando el tipo de dato de sus elementos, seguido de los corchetes de cierre y apertura, y después el identificador, que se usará dentro del método, para acceder al arreglo.

El siguiente ejemplo usa tres métodos, pero el único que permite alterar los contenidos de un arreglo es el método ordenar que tiene la tarea de ordenar el arreglo usando el algoritmo de inserción. Además en este ejemplo también se puede observar que el método mostrar, hace el uso del for extendido. A continuación el ejemplo:

 

 
import java.util.Locale;
import java.util.Scanner;
import java.lang.Math;

class Ejemplo06{
    static int n;
    static Scanner lectura = new Scanner(System.in);

    public static int[] lectura(){
      int i;
      System.out.printf("Ingrese la cantidad de elementos de la lista : ");
      n=lectura.nextInt();
      int[] lista = new int[n];
      for (i=0;i<n;i+=1){
        System.out.printf("lista[%2d] ",i);
        lista[i]=lectura.nextInt();
      }
      return lista;
    }

    static void Ordenar(int[] lista){
      int i,j,aux;
      for (i=1;i<n;i+=1){
        aux=lista[i];
        j=i-1;
        while ((j>=0) && (lista[j]>aux)){
             lista[j+1]=lista[j];  //desplazar el anterior una  posición a la derecha
             j=j-1;
        }
        lista[j+1]=aux;    //colocar el elemento en la posición del  último elemento desplazado.
      }
    }

    static void mostrar(int[] lista){
      int i=0;
      System.out.printf("Lista ordenada%n");
       for (int valor : lista){
          System.out.printf("lista[%2d] %2d%n",i,valor);
          i+=1;
       }
    }

  public static void main(String[] args){
    int[] lista;

    lista=lectura();
    Ordenar(lista);
    for(int elemento : lista) System.out.printf("%d%n",elemento);

  }
}
 

Código fuente 6: Arreglos en los parametros de un método.

 

También se debe observar que el método lectura, es un método que crea el arreglo y lo devuelve. Por lo que es importante entender que si no creamos el arreglo antes de pasarlo a los métodos ordenar y mostrar, entonces el programa no se podría compilar.

 

Delicious

 

anterior :: indice :: siguiente

 

 
 

  SUGERENCIAS