LENGUAJE DE PROGAMACIÓN JAVA- SUBPROGRAMAS Y PARÁMETROS.


ING. OSWALDO E. DEDE MENDOZA
ESPECIALISTA EN INFORMÁTICA Y TELEMÁTICA
Barranquilla, Colombia, año 2013.


USO DE SUBPROGRAMAS EN JAVA
El concepto de programación modular se basa en el uso de módulos, subprogramas o sub-algoritmos que pueden ser utilizados desde cualquier algoritmo o programa dentro de su solución. Son la base de la programación orientada a objetos.
COMO LA FILOSOFÍA DE LA PROGRAMACIÓN  JAVA ES ORIENTADA A OBJETOS, Los sub programas o sub algoritmos pueden tener la forma de: Una Clase (class) que define un tipo de objetos, con métodos ( rutinas).
Funciones y procedimientos (sub algoritmos):
Consiste en un conjunto de instrucciones que para efectos prácticos, evitar digitación extra  y repetitiva de código, pueden ser usadas dentro de diferentes aplicaciones en la programación orientada a objetos, en el caso de un sub-programa normal, este se coloca en un espacio externo al procedimiento principal para su “llamado” en uno o varios puntos diferentes del mismo.

Se tienen dos tipos particulares de sub-algoritmos:

Funciones: es el tipo de procedimiento que devuelve o regresa un valor al momento de llamarlo; se comporta entonces dentro del código como una variable mas del programa; y debe ser declarado como tal; obedeciendo a un tipo de variable primitivo.

Subrutinas o Procedimientos: Funcionan de manera similar a las funciones, pero no regresan valor alguno.

Parámetros o Argumentos: son los valores que reciben los sub-algoritmo al momento de ser llamados; estos deben definirse en el encabezado del mismo al igual que las variables como veremos en los ejemplos que se muestran a continuación, estos parámetros en teoría pueden pasarse a la función o procedimiento que los requiera de dos formas:

PASO DE PARÁMETROS POR VALOR: Cuando un argumento se pasa a un sub algoritmo, este recibe una copia del valor original; es decir si la función o procedimiento modifica el parámetro unicamente se modifica el valor de la copia; el original permanece intacto.

PASO DE PARÁMETROS POR REFERENCIA: Cuado el argumento se pasa al sub algoritmo, este recibe la dirección de memoria y no una copia del valor; por lo tanto si la funcion modifica el valor, este cambia en su posición original.

Java siempre pasa parámetros por valor.

Retomemos entonces el concepto de variables que ya tocamos en el artículo titulado JAVA- CONCEPTOS BÁSICOS ampliandolo:

Variables Según su Rango de Acción

 

Como ya hemos expresado, una variable es un nombre que se asocia con una dirección y una porción de la memoria del ordenador, en la que se guarda el valor asignado a dicha variable. Hay varios tipos de variables que requieren distintas cantidades de memoria para guardar datos.

Todas las variables han de declararse antes de usarlas, la declaración consiste en una sentencia en la que figura el tipo de dato y el nombre que asignamos a la variable. Una vez declarada se le podrá asignar valores,


Java tiene tres tipos de variables:
  • de instancia
  • de clase
  • locales

VARIABLES DE INSTANCIA: Denominadas también miembros dato como veremos más adelante, se usan para almacenar los valores correspondientes a los atributos de un objeto, se definen en la clase correspondiente al objeto.

VARIABLES DE CLASE: Denominadas tambien miembros dato estáticos  tambien se definen en la clase correspondiente al objeto, siendo que los valores que almacenan son los mismos para todos los objetos correspondientes a esa clase, de esta forma su comportamiento se semeja mas al de una constante algebraica.

El siguiente segmento de código Java ilustra su definición:

class Salario{
                    static final double minimo=500000.00;
                    double extras;
//...
}
En este caso el valor de la variable de clase minimo, será el mismo para todos los objetos Salario, mientras que el valor de la variable de instancia extras puede variar entre diversos objetos de esa clase.
 
Las variables locales se utilizan dentro de los métodos como se muestra a continuación.
La variable ingresoBase es local para la función calculaIngreso en la que almacena el valor del ingreso de un objeto de la clase Salario. Una variable local existe desde cuando se define hasta el final del bloque en el que se encuentra ubicada.
 
class Salario{
//...
                    double calculaIngreso(){
                                         double ingresoBase=minimo+extras;
                                         return ingresoBase;
                    }
}
 
En el lenguaje Java, las variables locales se declaran en el momento en el que son necesarias. Es una buena costumbre inicializar las variables en el momento en el que son declaradas. Veamos algunos ejemplos de declaración de algunas variables
                    int y=3, x=5;
                    String apellido="Suarez";
                    boolean interruptor=false;
                    double area;
se debe especitficar antes de la variable el tipo de datos, bien sea este primitivo, nombre de clase o arreglo (array)

Dentro del nombre de una  variable se pueden utilizar en JAVA diversidad de caracteres, puesto que este lenguaje usa el conjunto de  caracteres Unicode, el cual es muy amplio, pudiendo aplicar casi cualquier idioma humano en su definición. Para mejorar la comprensión del código, es recomendable usar nombres para las variables que sean significativos, es una norma internacional que cuando se efectúen programas en Java, las variables deben empezar con una letra minúscula y si el nombre de la variable proviene de una combinación de palabras, las iniciales de las otras palabras se coloquen en mayúsculas, por ejemplo 
 
double salarioEmpleado=2000000.00

Los siguientes ejemplos ilustran el uso de sub-programas y de variables de clase.

Ejemplo clase Producto1.java

import java.io.*;
public class Producto1 {

 public static double producto(double a,double b){
     double prod;
     prod = a*b;
     return prod;
   }
 
 public static void main(String[] args) throws IOException {
  double num1, num2, pro;
  BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
  System.out.println(" Primer factor: ");
  num1 = Double.parseDouble (in.readLine()); 
   System.out.println(" Segundo factor: ");
  Num2 = Double.parseDouble (in.readLine());        
  pro = producto(num1, num2);
  System.out.println(" El producto es " + pro );

 }
}

Otra forma usando una variable de clase prod2
Vemos la clase Producto2.java

import java.io.*;
public class Producto2 {
public static int prod2;

public static double producto(double a,double b){
     prod2 = a*b;
     return prod2;
   }


public static void main(String[] args) throws IOException {
  double num1, num2, pro;
  prod2=1;
  BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
  System.out.println(" Primer factor: ");
  num1 = Double.parseDouble (in.readLine()); 
   System.out.println(" Segundo factor: ");
  Num2 = Double.parseDouble (in.readLine());        
  pro = producto(num1, num2);
  System.out.println(" El producto es " + pro );

 }
}

Comentarios

Entradas populares de este blog

Portafolio de evidencias digital

ALGORITMOS – BLOQUES CONDICIONALES