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
Publicar un comentario