JAVA- CONCEPTOS BASICOS


LENGUAJE DE PROGAMACIÓN JAVA ASPECTOS BASICOS:
ING. OSWALDO E. DEDE MENDOZA
ESPECIALISTA EN INFORMÁTICA Y TELEMÁTICA
Barranquilla, Colombia, año 2013.

INTRODUCCIÓN

Nota: Como lectura previa al presente artículo, recomendamos nuestros artículos titulados DISEÑO Y DESARROLLO DE SOFTWARE- ALGORITMOS, ALGORITMOS-BLOQUES LÓGICOS y ALGORITMOS-BLOQUES CÍCLICOS.

El lenguaje de programación Java, nace como un proyecto de investigación que buscaba el diseño y desarrollo de software para su aplicación en una gran variedad de dispositivos con sistemas embebidos, es decir controlados por el mismo tipo de hardware que tienen los computadores electrónicos, esto debido a la amplia difusión en el uso de este tipo de artefactos y a la necesidad de generar programación para los mismos, en ese entonces el lenguaje de programación mas usual era C++, sin embargo debido a que este es un lenguaje difícil de aplicar, debido a que requiere de un conocimiento de la máquina en muchos casos, la investigación derivó en la creación de una plataforma de programación completamente nueva, la cual trató de aplicar lo mejor de diversos lenguajes, en especial de lenguajes orientados a objetos, cumpliendo al final con muchos de los objetivos del equipo investigador, es decir ideal para la elaboración de programas seguros, distribuidos y aptos para ser usados en una amplia variedad de dispositivos y uso en redes.

Java es una de las herramientas mas poderosas para el desarrollo de software y una de las mas extendidas en el mundo, ya que posee características únicas que le otorgan ventaja frente a muchas otras como son:

1.        Es un lenguaje de propósito general y orientado a objetos, lo cual lo hace adecuado para la solución de infinidad de problemas.
2.        Sintaxis de fácil comprensión al ser basada en la sintaxis del lenguaje C.
3.        Es multiplataforma, es decir los programas se pueden ejecutar sin variación alguna en equipos que tengan sistema operativo WINDOWS, UNIX, MAC, ANDROID, SYMBIAN etc. Esto se puede lograr debido a que el COMPILADOR  de java genera un código intermedio llamado BYTECODE, el cual es entregado a otro software denominado JVM(Java-virtual machine) o máquina virtual de Java , el cual actúa como intperprete, generando el código máquina o ejecutable, el cual si depende de la plataforma o sistema operativo. Existen entonces tantas máquinas virtuales como sistemas operativos requieran ejecutar código Java.
4.        Es gratuito, ya que forma parte de la filosofía de Software Gratuito.

DINÁMICA DE PROGRAMACIÓN EN JAVA

Al ser un lenguaje de progamación orientado a objetos, es necesario aclarar que este tipo de programación aplica una lógica en la cual dentro del software aparecen objetos, los cuales poseen características o atributos y métodos que pueden aplicarse a los objetos; Por ejemplo, si tenemos el objeto BICICLETA, en este objeto podemos observar atributos tales como COLOR, MANUBRIO, PEDALES, FRENO, CADENA Y RUEDAS, y podemos tener por ejemplo los siguientes métodos, PEDALEAR, GIRAR Y FRENAR, de tal manera que dentro del programa puedo referirme a ellos de una forma natural, estos objetos se definen en Clases, existen librerías de Clases predefinidas, además el programador puede definir las Clases que desee. los objetos en java se utilizan haciendo referencia a la  definición de la clase dentro de un programa en Java.

Existen dos tipos de programas en java, uno de ellos es denominado Aplicación, el cual puede utilizar dos tipos de interfaz aplicada, esto es en MODO TEXTO o en MODO GRÁFICO (clase Frame).  El segundo tipo de programas se denominan Applets (Clase Applet), esta última presenta la limitación que solamente puede ejecutarse desde un navegador de internet, posee interfáz gráfica y no puede hacer referencia a archivos.

Teniendo instalado el compilador Java y el JRE en nuestro computador, la dinámica para ejecutar un programa es la siguiente:


INSTALACIÓN DE LA HERRAMIENTA DE PROGRAMACIÓN:

Si se desea que las aplicaciones o applets puedan funcionar en un computador, este debe tener instalada la máquina virtual de java, la cual viene con el producto JRE (Java Runtime Environment), frecuentemente ya lo tienen instalados aquellos computadores que se utilizan para aceder sitos web, debido a que su uso es un requerimiento para un buen desempeño de estos sitios, muchos exigen que se descargue JRE y facilitan esto a sus usuarios.

Sin embargo si desea desarrollar software java tales como aplicaciones o applets, se requiere el JDK (Java Development Kit), el cual incluye el JRE.

Cabe anotar que existe diversidad de herramientas de desarrollo tanto comerciales como gratuitas que ofrecen el paquete completo incluyendo editores de texto que efectúan una prevalidación de la sintaxis del código java, tales como
JCREATOR, NETBEANS (Oracle) y Eclipse.

Tanto el JRE, el JDK y la herramienta de programación especializada NETBEANS, pueden descargarse gratuitamente de la página de ORACLE, debe tenerse en cuenta el tipo de sistema operativo que se va a utilizar, para descargar la versión mas adecuada de los mismos.


Mas información en la pagina de Oracle.










PROCESO PARA LA ELABORACIÓN Y EJECUCIÓN DE PROGRAMAS JAVA:

Si tiene instalado solamente JDK en su computador, Supongamos que tenemos un programa en java o clase java, el cual inicia como un archivo de texto que contiene instrucciones en lenguaje de programación Java, digamos llamado programa1.java

Debe entonces pasar por el Compilador, un programa denominado JAVAC, el comando que se debe entregar es el siguiente:

JAVAC programa1.java

Si no existen problemas de sintaxis se genera un BYTECODE (código intermedio) en este caso se denominaría

programa1. class

Para que este sea ejecutado por la máquina real, debe pasar a ser interpretado por la máquina virtual de Java, mediante el comando.

JAVA  programa1.class

Si tiene una aplicación o programa especializado para el diseño y desarrollo de software en Java como NetBeans, probablemente el programador no deberá efectuar estos pasos para generar BYTECODE y ejecutarlo, ya que estas aplicaciones lo hacen automáticamente.



CODIFICACIÓN DE PROGRAMAS EN JAVA


Para la codificación de programas en java, se hace necesario conocer el léxico o palabras reservadas del lenguaje y la sintaxis del mismo.

Como principio general, el lenguaje java utiliza un carácter de control, que permite dividir las líneas de instrucciones o comandos, el cual es el punto y coma (;), el cual es obligatorio al finalizar una línea de código, salvo las excepciones indicadas en la sintaxis, un par de barras inclinadas // se colocan al finál de cada línea de código con el fín de colocar comentarios que complementan el programa, pero que no forman parte de el, de tal manera que el compilador los ignora. El compilador Java es sensible a las letras mayúsculas y minúsculas, por lo tanto las diferencia; además todas las palabras reservadas del lenguaje deben ir en minúsculas como veremos más adealnte.

DECLARACION DE VARIABLES:

Recordemos que los computadores son máquinas algebraicas, debido a lo cual el elemento de trabajo usual son las variables, pero a diferencia que en el álgebra básica, donde las variables pueden ser reemplazadas por valores numéricos, los computadores pueden utilizar variables de diferentes tipos ( a estos tipos les denominamos tipos de datos). La programación estructurada exige que antes de ser utilizadas las variables dentro del proceso estas sean declaradas, es decir se especifique que tipo de datos estas van a almacenar, cada variable debe tener asignado un tipo de datos específico.
Los tipos de datos existentes en Java son los siguientes:
Tipos Primitivos
Referencias a objetos (clases)
Arreglos.
Las dos últimos  corresponden a  objetos que serán tratados más adelante, mientras que trataremos de los tipos primitivos a continuación.
boolean: Lógicos( true o false. )
byte: Enteros de 8-bits. (-128 y 127. )
short: Enteros de 16-bits. (-32768 y 32767)
int: Enteros de 32-bits. (-2147483648 y 2147483647 )
long: Enteros. Tamaño 64-bits. Entre -9223372036854775808 y 9223372036854775807.
float: Reales(coma flotante). de 32-bits.
double: Reales de 64-bits.
char: Caracteres.
Para declara las variables en Java,  se indica el nombre de la variable y el tipo al que corresponda

tipo_variable nombre ;

Veamos algunos ejemplos:
char x;   
boolean
sw
int j;        

En este caso la variable x es declarada de tipo carácter, la variable SW de tipo booleano y la variable i de tipo entero.


ASIGNACIÓN

Para asignar valores a una variable dentro de un programa se utiliza el símbolo de igualdad (=)
Ejemplos:
j = 8;         
x = 'd';   
sw = true; 
La declaración de una variable y la asignación de valores  se pueden hacerse en la misma línea
int j = 10;
En este caso se declara la variable j como tipo entero e inmediatamente se inicializa con el valor de 10.


OPERACIONES

Los operadores aritméticos usuales en Java son los siguientes:
+ para la adición, - para la sustracción, * para la multiplicación, / para la división real, % para el residuo de la división entera.

Aunque el símbolo de la igualdad es el operador de asignación más usado, en Java existen formas  de asignar y efectuar operaciones al mismo tiempo en una línea de código como se muestra a continuación:

La expresión         x+=y          equivale a            x=x+y
La expresión         x-=y          equivale a            x=x-y
La expresión         x*=y          equivale a            x=x*y
La expresión         x/=y          equivale a             x=x/y
La expresión         x%=y          equivale a          x=x%y


se pueden aplicar los operadores aritméticos unarios que se muestran a continuación, aplicables solamente a variables de tipo entero:
        ++ y --
Donde
            w++ ó ++w  equivale a w = w+1 mientras tanto   w-- ó --w  es equivalente a w = w-1

Se colocan previos o posteriores a la variable, como ya lo observamos, la dinámica implica que si se colocan previamente, el procesador efectúa la operación y luego se aplica el valor incrementado en la evaluación de la expresión algebraica donde aparece la variable. Pero si se colocan posteriores o después de la variable, la expresión se evaluará con el valor original de la variable, posteriormente se efectuará el incremento o el decremento solicitado.

Por ejemplo, supongamos que la variable x=2 y la variable y=3; 
         
Al evaluar la expresión              w = x * y++;     a la variable w se le asigna el valor de 6 y la variable c termina con valor 4
Mientras que al hacerlo en        w = x * ++y;     w queda igual a 8 y c termina con  valor de 4

Las prioridades de las operaciones obedecen a las normas de la matemática, donde los  signos de agrupación mas internos tienen prioridad en el caso de Java, los signos de agrupación son los paréntesis, en caso contrario las operaciones de multiplicación y división tienen prelación sobre las de adición y sustracción; otros operadores pueden variar este orden, como los unarios que acabamos de observar. 
Otras constantes, operadores y funciones matemáticas necesarias pueden ser usadas dentro de los programas en Java, estos pueden tomarse  como métodos provenientes de la clase Math, que se incluye en el paquete java.lang, que viene instalado en el JDK, para usarlos se debe incluir la siguiente instrucción al inicio de la aplicación.

import java.lang.Math;



he aquí una lista de algunos de los métodos que se pueden incluir:

MÉTODO                                                                              RETORNA
              public final static double e                                                  el número e.
              public final static double PI                                                 el número  pi.
              public static int abs(int a)                                                   el valor absoluto de un número entero.
              public static long abs(float a)                                             el valor absoluto de un numero real.
              public static double cos(double a)                                     el coseno de un valor real.
              public static double exp(double a)                                     el valor de ea
              public static double pow(double a, double b)                    el valor de ab para a y b reales.
              public static double sqrt(double a)                                    el valor de la raíz cuadrada de un real.

Segmento de código de Ejemplo:    
                                double x, y;  // declaración de dos variables reales de doble precisión
                                x = 100.0;    // asigna a la variable x el valor de 100
                                y = Math.sqrt(x); // el método sqrt recibe el valor de 100 como parámetro y regresa el valor de 10.


BLOQUES CONDICIONALES

Bloque if-end if (Si-FinSi)
      if ( condición ) {
              conjunto de instrucciones que se deben ejecutar si la condición es verdadera;
       }


Bloque if-else -end if (Si-Sino-FinSi)
      if ( condición ) {
              conjunto de instrucciones que se deben ejecutar si la condición es verdadera;
       }
       else  {                                          
              conjunto  de instrucciones que se deben ejecutar si la condición es falsa;        
       }

La condición que evalúan los bloques lógicos corresponden a una expresión algebraica lógica que al evaluarse se obtiene un valor de verdadero (true) o falso (false).  Estas pueden ser simples, es decir una comparación de dos expresiones algebraicas mediante los operadores relacionales ==(igual a); != (diferente de);  > (mayor que); < (menor que); <= (menor o igual) y >= (mayor o igual).  O pueden ser condiciones compuestas por comparaciones unidas o enlazadas mediante conectores u operadores los operadores lógicos: || (operador O); && (operador Y); ! (operador es negado que). Por ejemplo las siguientes instrucciones.


if (x >0 && y>0)
             System.out.println (" punto en el primer cuadrante");
else
             System.out.println ("punto en otro cuadrante");

Bloque Switch (Dependiendo de)

   switch ( variable)     la variable es de tipo entero o carácter
   {
        case valor1 : Instrucción1; break;
        case valor2 : Instrucción2; break;
             .
             .
        case valor n : InstrucciónN; break;
        default: InstrucciónDefault;
    } ;
Las instrucciones de 1 a N se ejecutan acorde el valor de la variable, si este va del valor 1 a N, en caso contrario se ejecuta la InstrucciónDefault.

BLOQUES CÍCLICOS

Bloque while(Mientras que)
while ( condición )    
   {
              conjunto  de instrucciones que se repetirán;
    }

Bloque do .. while(Haga – hasta)
   do
   {
           conjunto  de instrucciones que se repetirán;
    }
    while ( condición );      






Bloque for (Bloque Para-Fin Para)



Para repetir una instrucción dentro del bloque la estructura es:

   for (inicialización ; condición ; acción )
          instrucción que se va a repetir;

 

Para repetir un grupo de instrucciones se deben utilizar llaves para indicar el inicio y el fin del bloque.

for (inicialización ; condición ; acción )
{
           Conjunto de instrucciones que se van a repetir;
}

El bloque se ejecuta de la siguiente forma:
En primer lugar se ejecuta la instrucción de inicialización,
Luego se evalúa la condición
Si esta es verdadera se ejecuta el grupo o la instrucción que contiene el bloque.
Al finalizar la ejcución se regresa al inicio del bloque, ejecutando la acción indicada.

UNA APLICACIÓN DE EJEMPLO EN MODO TEXTO.
Este ejemplo imprime la sucesión de los primeros N números naturales-

Ejemplo clase Naturales1.java

import java.io.*;
public class Naturales1{

 public static void main(String[] args) throws IOException {
  int n;                                                            // declara la variable n como tipo entero
  BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
  System.out.println(" Cantidad de números que se mostrarán: ");
  n = Integer.parseInt(in.readLine());        
  for (int i=1; i<=n; i++){
        System.out.println( i );
     }
 
}

Comentarios

Entradas populares de este blog

Portafolio de evidencias digital

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

ALGORITMOS – BLOQUES CONDICIONALES