Jueves, 12 de abril de 2018

PROGRAMACIÓN MODULAR EN JAVA

Todo lenguaje de programación que sea considerado "serio" debe implementar como mínimo los siguientes paradigmas de programación:

  • PROGRAMACIÓN ESTRUCTURADA

  • PROGRAMACIÓN MODULAR.

Una interrogante para el que recién empieza a programar con Java es como este lenguaje implementa la Programación Modular si consideramos que este lenguaje de programación es un lenguaje de programación orientado a objetos puro (todo en en Java es una Clase!!).

Se debe considerar dos aspectos importantes:

  • Al ser un lenguaje de programación orientado a objetos puro, los programas en Java deben ser parte de una Clase.

  • Los programas no deberían necesitar de crear objetos para poder funcionar.

Bajo las dos consideraciones anteriores para implementar la programación modular el lenguaje Java emplea miembros “static”.

CARACTERÍSTICAS DE LOS MIEMBROS “static”

En una Clase los miembro estáticos(static) son denominados también miembros de clase, debido a sus propiedades principales:

  • Los miembros static no necesitan de objetos para instanciarse, al crear la clase ya existen.

  • Existe una solo instancia de los miembros static por clase, si se trata de un atributo estático este será compartido por todos los objetos.

  • Lo métodos estáticos pueden se usados de manera directa, haciendo referencia tipada a la clase.

  • Los métodos estáticos solo pueden trabajar con otros miembros estáticos, tanto atributos como otros métodos estáticos.

PROGRAMA PRINCIPAL EN JAVA

El programa principal dentro la Programación Modular en Java es denominado “main”, toda clase de Java puede contener un programa principal, debiendo ser este de tipo “public static”.

El compilador de Java ejecutara este programa principal si lo encuentra dentro de una clase. En los IDE como Eclipse o NetBeans existirá una Clase Principal para cada proyecto de tipo aplicación, esta clase contendrá el main principal que será ejecutado por defecto al ejecutar el proyecto.

La clase principal sera considerada en entorno de programa principal y sus atributos (static) serán considerados como variables globales para le programa principal y los subprogramas.

La sintaxis para escribir un programa principal es la siguiente:

public class Entorno

{

static int variableGlobal;

public static void main(String arg[])

{

//Aqui se escribe el programa principal.

}

}

SUBPROGRAMAS EN JAVA.

El principio fundamental de la Programación Modular consiste en dividir un programa complejo y/o grande en subprogramas(funciones o procedimientos), de tal manera que la funcionalidad de cada programa sea especifica y mas sencilla de desarrollar, en otras palabras mas sencillas la programación modular consiste en descomponer un programa en subprogramas más sencillos.

Los subprogramas podrán ser funciones o procedimientos, en el caso particular del lenguaje de programación Java serán métodos estáticos que comparten el ámbito de Clase del programa principal main y por lo cual podrán ser utilizados por este.

public class Entorno

{

static int variableGlobal = 5;

public static void main(String arg[])

{

int a,b;

a=2;

b=3;

mostraSuma(a,b);

System.out.println(a);//el valor permanece en 2

}

public static void mostrarSuma(int a, int b)

{

System.out.println(a+b+variableGlobal);

a=0;

}

}

PASO DE PARAMETROS POR VALOR Y POR REFERENCIA

Uno de los aspectos fundamentales de la Programación Modular es el paso de parámetros entre el programa principal y los subprogramas por:

  • Un subprogramas emplea los parámetros al definir su funcionalidad pues los debe emplear en su código, caso contrario será un subprograma no cohesivo.

  • El programa principal utilizará los parámetros para definir que requiere que haga el subprograma de acuerdo a su interés estableciendo la funcionalidad del subprograma.

  • El subprograma recibe los valores de sus parámetros del programa principal, y puede emplear los mismo para devolverle varios valores calculados, en el caso de la función al menos uno.

Existen dos tipos de paso de parámetros, en los cuales se debe considerar que un programa principal puede emplear valor constantes o variables para asignar un valor a los parámetros, cuando se emplean variables si importa el tipo de paso de parámetros que se está empleando.

a) Paso de parámetros por valor.

En el lenguaje Java cuando se emplean tipos de datos primitivos (int, float, double, etc) por defecto se realiza un paso de parámetros por valor. En un paso de parámetros por valor cuando el programa principal emplea una variable para asignar un valor al parámetro el subprograma crea una nueva variable local para recibir el valor enviado, la variable local y la variable de parámetro, pese a que puedan tener el mismo nombre son dos variables diferentes, por lo cual cualquier cambio hecho en la variable local no afectara a la variable de parámetro en el programa principal.

En nuestro ejemplo anterior se emplea un paso de parámetro por valor, por lo cual pesa a que en el subprograma se asigna un valor 0 a la variable local “a” este cambio no afecta a la variable usada como parámetro en el programa principal.

b) Paso de parámetros por referencia

El paso de parámetros por referencia es particular en el lenguaje Java, pues no existe el operador de referencia (&Gui?o para variables de tipo primitivo como existe en su antecesor el lenguaje C++.

En la simplificación de Java al momento de crearlo se optó que los objetos serían manejados por referencia, por lo cual en un método que tenga una parámetro tipo objeto este se esta pasando por referencia dada a la característica del manejo de objetos de Java.

Recordemos que la principal particularidad del paso de parámetros por referencia es que cuando el programa principal emplea una variable para asignar un valor al parámetro el subprograma recibe un referencia a una variable que implica trabajar de manera directa con la variable de parámetro dentro del subprograma, por lo cual todo cambio realizado en este también afectará a la variable parámetro en el ámbito del programa principal.

Para realizar un paso de parámetros por referencia en el lenguaje Java se tendrá que crear una clase interna estática en la clase entorno del programa principal, aún más si consideramos que los envoltorios en Java como el Integer y los otros desde la Java5 tienen la propiedad de Autoboxing, se tienen que crear una nueva clase aunque sea para un solo dato primitivo.

public class Entorno

{

static class Parametros{

int a;

int b;

public Parametros(int a, int b)

{

this.a = a;

this.b = b;

}

}

public static void main(String arg[])

{

Parametros objeto;

objeto = new Paramtros (3,5);

mostraSuma(objeto);

System.out.println(objeto.a); //aqui el valor de a fue cambiado

}

public static void mostrarSuma(Parametros objeto)

{

System.out.println(objeto.a + objeto.b);

objeto.a=0;

}

}


Tags: Java, Programación Modular

Publicado por olbant @ 2:20
Comentarios (0)  | Enviar
Comentarios