miércoles, 24 de octubre de 2012

Arreglo Unidimensional

import javax.swing.JOptionPane;
import javax.swing.JTextArea;

public class ArregloUnidimensional
{
    public static void main ( String args[] )
    {
        int arreglo1[];     // Declaramos arreglo1[]
        int arreglo2[];     // Declaramos arreglo2[]
        int introducido;    // Variable que controla el tamaño del arreglo
        int elemento;       // Varibale que nos servira para contar
        String entrada1, entrada2;

        JTextArea areaSalida = new JTextArea();
        areaSalida.setText( "                     Arreglo Unidimensional\n");

        entrada1 = JOptionPane.showInputDialog( "Introduce el Tamaño del Arreglo ");
        introducido = Integer.parseInt( entrada1 );
        arreglo1 = new int [ introducido ];
        arreglo2 = new int [ introducido ];

        for(elemento = 0; elemento < introducido; elemento++)
        {
            entrada2 = JOptionPane.showInputDialog(  "Introduce el elemento " + ( elemento + 1 ) + " para el Arreglo" );
            arreglo2[introducido-(elemento+1)] = arreglo1[elemento] = Integer.parseInt(entrada2);
        }

        areaSalida.append("\nEl tamaño del Arreglo es de:\n  " + entrada1 + "\nElementos del Arreglo A introducidos son: \n");
 for(elemento = 0; elemento < introducido; elemento++)
        {
            areaSalida.append("  " + arreglo1[elemento] + ",");
        }

 //Imprimir en orden inverso
        areaSalida.append("\nElementos del Arreglo B (Orden Inverso) son: \n");
 for(elemento = 0; elemento < introducido; elemento++)
        {
            areaSalida.append("  " + arreglo2[elemento] + ",");
        }
        JOptionPane.showMessageDialog( null, areaSalida, "Arreglo Unidimensional", JOptionPane.INFORMATION_MESSAGE);
    }
}

martes, 23 de octubre de 2012

Ejemplo Arreglo

import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;

public class EjemploArreglo
{
    public static void main (String args[])
    {
        //Creamos un objeto JTextArea con nombre llamado Area y agrega los componentes al frame
        JTextArea Area = new JTextArea(15,40);
        JScrollPane ScrollPane;
        
        // Creamos dos variables de tipo String Ns para tamaño y ValorS para elementos
        String Ns, valorS; 
        int i, j, N, A[]; // Variables de tipo int mas la declaracion del arreglo A[]
        
        // Pide al usuario que ingrese el tamaño del arreglo
        Ns = JOptionPane.showInputDialog("De que tamaño desea el arreglo");
        N = Integer.parseInt(Ns); // Convertimos el dato ingresado (Ns) a tipo int 
        A = new int [N];          // Creamos el arreglo con elementos N
        
        // Ciclo que controlara las pasadas dependiendo del tamaño (N) del arreglo
        for (i=0; i<N; i++) 
        {
            // En cada pasada pedira que el usuario teclee los elementos del arreglo
            valorS = JOptionPane.showInputDialog("Introduzca el elemento" + (i+1) + " para el Arreglo");
            A[i] = Integer.parseInt(valorS); // En cada pasada se almacenara al Arreglo A[i]
        }
        // Mostramos texto con el objeto Area
        Area.setText("Los elementos del arreglo son;\n\n");
        // Ciclo que mostrara en pantalla los elementos introducidos del arreglo 
        for(i=0; i<N; i++)
            
        Area.append("A[ "+ (i+1) + "]  = " + A[i] + "\n");
        ScrollPane = new JScrollPane(Area);
        
        // Mostramos la salida en pantalla
        JOptionPane.showMessageDialog(null, ScrollPane, "Ejemplo de Arreglo", JOptionPane.INFORMATION_MESSAGE);
        
        System.exit(0);  // Terminar el programa
    }  
}

domingo, 21 de octubre de 2012

NetBeans 7.2 y JDK 7u7 en Ubuntu 12.10

El siguiente comando nos sirve para eliminar OpenJDK, muy útil si haz instalado por error.

sudo apt-get purge openjdk*

Despues

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update 
sudo apt-get install oracle-java7-installer 

Tenemos JDK ahora instalaremos NetBeans. Pueden descargarlo en su pagina web http://netbeans.org/downloads/
Una vez descargado, nos localizamos desde consola en el directorio que lo tenemos despues ejecutamos lo siguiente.

chmod +x ./netbeans-7.2-ml-javase-linux.sh
./netbeans-7.2-ml-javase-linux.sh

Usando cuadros de diálogo para Entrada/Salida con JOptionPane

En los anteriores posts vimos un par de programas que muestran la salida en la ventana de comandos. Ahora veremos un par de programas de como mostrar la salida o entrada utilizando una ventana o cuadro de dialogo. Generalmente muchos programas ofrecen una interfaz gráfica de usuario (GUI) o los cuadros de dialogo (también llamados diálogos) que son ventanas en las que los programas muestran mensajes importantes a los usuarios del programa. Java contiene una clase llamada JOptionPane que nos permite producir cuadros de dialogo previamente empaquetados, los cuales permiten a los programas mostrar ventanas que contengan mensajes. A estas ventanas se les conoce como diálogos de mensaje. Un cuadro de dialogo es un objeto de interfaz gráfica de usuario (GUI), pero ¿cual es la diferencia entre mostrar la salida en consola y en interfaz gráfica?. En consola solo podemos mostrar texto y en una interfaz gráfica de usuario podemos mostrar no solo texto, si no también varios elementos gráficos como botones, barras, casillas de verificación, menús, cuadros de texto e imágenes.

El método showMessageDialog es un método especial de la clase JOptionPane, el cual se conoce como método static. Generalmente los métodos estatic se llaman utilizando el nombre de la clase, seguido de un punto ( . ) y el nombre del método, tal como se muestra a continuación.

Proceso de llamar un método estatic.

Uno de los puntos fuertes de Java es su extenso conjunto de clases predefinidas que los programadores pueden usar, en vez de tener que "reinventar todo". Las numerosas clases predefinidas de Java se agrupan en clases relacionadas, conocidas como paquetes. Un paquete es una colección de clases con nombre, estos se conocen colectivamente como biblioteca de clases, o la Interfaz de Programación de Aplicaciones (API) de Java. Estos paquetes (API) de Java se dividen en básicos y opcionales. Los nombres de la mayoría de los paquetes del API de Java comienzan, ya sea con "java" (paquetes básicos) o "javax" (paquetes opcionales). Muchos de estos se incluyen como parte del Kit de desarrollo de software para Java.

En este post mostraremos un pequeño programa modificado del anterior post llamado PrimerPrograma para que el texto que muestra en consola, ahora lo muestre en un cuadro de dialogo. Este programa muestra el objeto String “"¡Bienvenido a la programacion en Java!\n\n http://delfirosales.blogspot.com” en un dialogo de mensaje (o cuadro de dialogo).
//usando JOptionPane para mostrar la salida en un cuadro de dialogo.

import javax.swing.JOptionPane;

public class PrimerPrograma {
 
 public static void main ( String args [] )
 {
  JOptionPane.showMessageDialog( null, "¡Bienvenido a la programacion en Java!\n
  \n http://delfirosales.blogspot.com" );
 }
}
En este ejemplo utilizamos la clase predefinida de Java JOptionPane, la cual se encuentra en el paquete javax.swing.

import javax.swing.JOptionPane; //Este programa usa JOptionPane

La declaración import es una declaración que se utiliza para identificar las clases predefinidas que se utilizan en nuestro programa en Java. Esta declaración ayuda al compilador a localizar las clases que deseamos utilizar. Importante saber es que todas las declaraciones import deben de aparecer antes de las declaración de la clase, si lo ponemos dentro o después de la declaración de una clase, es un error de sintaxis . Por cada nueva clase que utilizamos del API de Java debemos indicar el paquete en el que se encuentra esa clase.

Ahora entonces, la linea import javax.swing.JOptionPane; indica al compilador que en nuestro programa utilizaremos la clase JOptionPane del paquete javax.swing.

JOptionPane.showMessageDialog( null, "¡Bienvenido a la programacion en Java!\n\n http://delfirosales.blogspot.com" );

Las lineas anteriores contenidas en el método main, llaman al método showMessageDialog de la clase JOptionPane para mostrar un cuadro de dialogo que contiene un mensaje. Este método requiere de dos argumentos y cuando un método requiere varios argumentos, estos se separan con comas ( , ). Por ahora el primer argumento sera la palabra clave null y el segundo argumento "¡Bienvenido a la programacion en Java!\n\n http://delfirosales.blogspot.com" es la cadena a mostrar en el cuadro de dialogo. El primer argumento ayuda a la aplicación en Java a determinar en donde se va a colocar el cuadro de dialogo, cuando el primero argumento es null, el cuadro de dialogo aparece en el centro de la pantalla de la computadora, tal como se muestra en la siguiente imagen.

Usando JOptionPane para mostrar la salida de la aplicación PrimerPrograma.

La barra de titulo del cuadro de dialogo contiene la cadena Mensaje, esto para indicar que este cuadro de dialogo va a presentar un mensaje al usuario. El cuadro de dialogo incluye un botón Aceptar (OK), que el usuario puede oprimir para descartarlo (ocultarlo).
Cuadro de Dialogo de Mensaje.

El paquete javax.swing contiene muchas clases que ayudan a los programadores en Java a crear Interfaces Gráficas de Usuario (GUIs) para las aplicaciones. Los componentes de la GUI facilitan la entrada de datos al usuario del programa y la presentación de los datos de salida. Tal como lo comentamos anteriormente en las GUIs (interfaz gráfica de usuario) podemos mostrar no solo texto, si no también elementos gráficos como botones, casillas de verificación, menús, cuadros de texto e imágenes. Todos estos forman parte de la GUI y permiten interactuar con el programa.

Introducción de Texto en un Cuadro de Dialogo (Diálogos de Entrada)

Hay varios tipos de cuadros de dialogo de la clase JOptionPane. Consideremos el anterior uno de ellos, el cuadro de dialogo de salida, es el que genera el método showMessageDialog. Ahora toca mostrar el cuadro de dialogo de entrada, el cual permite al usuario introducir datos en el programa. El cuadro de dialogo de entrada muestra un mensaje de confirmación y muestran un icono de signo de pregunta esperando la entrada del usuario. Al hacer clic en el botón Aceptar se procede el valor introducido. El siguiente programa utiliza otro cuadro de dialogo predefinido de la clase JoptionPane, que permite al usuario introducir un valor para utilizarlo en el programa. En este caso pide el nombre del usuario y responde con un dialogo de mensaje que contiene un saludo y el nombre que el usuario haya introducido.
//Entrada básica con un cuadro de dialogo.
import javax.swing.JOptionPane;

public class EjemploGUI
{
 public static void main ( String args[] )
 {
  // Pide al usuario que escriba su nombre
  String nombre = JOptionPane.showInputDialog( "Cual es su nombre?" );
  
  // Crea el mensaje
  String mensaje = String.format( "Bienvenido, %s, a la programación en Java!", nombre );
  
  // Muestra el mensaje para dar la bienvenida al usaurio por su nombre
  JOptionPane.showMessageDialog( null, mensaje, JOptionPane.INFORMATION_MESSAGE );
 }
}
Cuadro de dialogo de Entrada, pide al usuario que escriba su nombre.

Muestra el mensaje para dar la bienvenida al usuario por su nombre.

String nombre = JOptionPane.showInputDialog( "Cual es su nombre?" );

Las líneas anteriores utilizan el método showInputDialog de JOptionPane para mostrar el dialogo de entrada, el cual contiene un indicador y un campo (conocido como campo de texto) en la cual el usuario puede introducir texto. El argumento de showInputDialog es el indicador que muestra lo que el usuario debe escribir. El usuario escribe caracteres en el campo de texto, a continuación, hace clic en el botón Aceptar o presionar la tecla intro para devolver la cadena de caracteres (objeto String) al programa. El método showInputDialog devuelve un objeto String que contiene los caracteres tecleados por el usuario. Almacenamos el objeto String en la variable nombre. Si se oprime el botón Cancelar en el cuadro de dialogo, el método devuelve null y el programa muestra la palabra clave “null” como el nombre.

String mensaje = String.format( "Bienvenido, %s, a la programación en Java!", nombre );

La linea anterior es una instrucción que utiliza el método static String llamado format para devolver un objeto String que contiene un saludo con el nombre de usuario. El método format es similar al metodo System.out.printf, excepto que format devuelve el objeto String con formato, en vez de mostrarlo en una ventana de comandos.

JOptionPane.showMessageDialog( null, mensaje );

La línea anterior muestra el saludo en un cuadro de dialogo del mensaje.

Iconos o constantes de dialogo utilizados por JoptionPane

La clase JoptionPane proporciona varias versiones sobrecargadas de los métodos showInputDialog y showMessageDialog, así como métodos que muestran otros tipos de diálogos. Los Iconos o constantes que representan los tipos de diálogos de mensajes se muestran en la siguiente figura.

Iconos o contantes static de la clase JoptionPane para diálogos de mensaje.

Todos los tipos de dialogo de mensaje, excepto PLAIN_MESSAGE, muestran un icono a la izquierda del mensaje. Estos iconos proporcionan una indicación visual de la importancia del mensaje para el usuario. Por ejemplo el icono QUESTION_MESSAGE es el icono predeterminado para un cuadro de dialogo de entrada.

Referencias:
Class JOptionPane
Java How to Program (early objects) (9th Edition) (Deitel)
Java Programming, Joyce Farrell.
Introduction to Java Programming, Comprehensive (8th Edition)

Tabla Pitagorica

public class TablaPitagorica
{
    public static void main (String args [])
    {
        // Declaramos dos variables de tipo int
        int A, B;
       
        // Mostramos texto en consola 
        System.out.println("Tabla Pitagorica:\n\n");
        A=1;         // Iniciamos la variable A
        while(A<=10) // Itera 10 veces
        {
            B=1;
            while(B<=10) // Itera 10 veces y muestra la salida en pantalla
            {
                System.out.printf("%5d",A*B);
                B++; // En cada pasada se ira incrementando la variable B
            }
            // En cada pasada se mostrara un espacio y se ira incrementara la variable A
            System.out.println();
            A++;
        }
        // Termina las iteraciones y sale del programa
        System.exit(0);
    }
}
Output:
Tabla Pitagorica:

    1    2    3    4    5    6    7    8    9   10
    2    4    6    8   10   12   14   16   18   20
    3    6    9   12   15   18   21   24   27   30
    4    8   12   16   20   24   28   32   36   40
    5   10   15   20   25   30   35   40   45   50
    6   12   18   24   30   36   42   48   54   60
    7   14   21   28   35   42   49   56   63   70
    8   16   24   32   40   48   56   64   72   80
    9   18   27   36   45   54   63   72   81   90
   10   20   30   40   50   60   70   80   90  100

viernes, 19 de octubre de 2012

Números Pares

Un número es par si es divisible entre dos. Es decir, que el resto de la división sea cero. Para ello, que en Java, nos apoyaremos en el operador de módulo (%). Lo cual hará que el calculo de si un número es par se limite a una línea:

Sumar numeros impares del arrego
case 'f':    //Si el usuario introduce el caracter f, muestra la siguiente sentencia
    int suma2 = 0;    //Declaramos una variable llamada suma2 para almacenar las suma de numeros pares del arreglo
    System.out.println("Numeros pares del arreglo son:");    //Imprimimos en consola
    
    for (i=0; i < arreglo.length; i++)    //Ciclo para recorrer el arreglo
    {
        if( arreglo[i]%2==0)    //Compara si es divisible entre dos, que el resto de la división sea cero.
        {
            suma2 = suma2 + arreglo[i];    //Si se cumple la condición realiza la suma de los números pares
            System.out.print(arreglo[i] + ",");    //Imprime en pantalla los números pares
        }
    }
    System.out.println("\nLa Suma de los numeros pares es = " + suma2);    // Imprime la suma de los numeros pares
    break;    //Sale del switch
Operador %: Resto de una división entre enteros (en otros lenguajes denominado mod).
"%" es la división módulo, es decir te devuelve el resto de la división. Se saca el modulo de 2 y si no es cero es impar, par en caso contrario.

Output:
Ingresa el numero de elementos: 5
Introduzca elemento No. 1: 2
Introduzca elemento No. 2: 3
Introduzca elemento No. 3: 4
Introduzca elemento No. 4: 5
Introduzca elemento No. 5: 6

f.- Sumar numeros pares del arreglo
g.- Sumar numeros impares del arrego
Elige una Opción...  f

Números pares del arreglo son:
2,4,6,
La Suma de los números pares es = 12

jueves, 18 de octubre de 2012

Multiplication Table

import javax.swing.JOptionPane;
import javax.swing.JTextArea;

public class TablaMultiplicar
{
     public static void main(String args[])
     {
         String Num1; // Numero de la tabla introducido por el usuario
         int A;       // Valor del numero de la tabla a multiplicar
         
         // Creamos un objeto JTextArea con nombre areaSalida y colocamos texto con setText
         JTextArea TextoSalida = new JTextArea();
         TextoSalida.setText("El numero introducido es: ");
         
         // Pide al usuario que introduzca el numero a multiplicar
         Num1 = JOptionPane.showInputDialog("Introduce el Numero de la Tabla a Multiplicar");
         // Convertimos el numero introducido a int con la variable A
         A = Integer.parseInt( Num1 );
         
         // Ciclo que itera 10 veces
         for ( int x=1;x<11;x++ )
         {
             // Concatemos texto incluyendo la operacion de multiplicacion del numero introducido
             TextoSalida.append("\n" + A  + " x " + x + " = " + ( x*A ));
         }
         
         // Mostramos los resultados en pantalla         
         JOptionPane.showMessageDialog( null, TextoSalida, "Obtencion de la Tabla de Multiplicar", JOptionPane.PLAIN_MESSAGE);
        }
}

En sencillas palabras ¿Que es unicode?

El unicode es un formato estandar de caracteres, dentro de este se encuentran todos los caracteres del teclado comun que usamos. Ejemplo: A,b,%,í, etc como veras abarcan no solo letras, sino tambien simbolos y otros, ahora, anterior al unicode esta el que se llama "ASCII" pero este abacar solo los caracteres que se usan mas en el idioma ingles. ahora, ¿por que 2 o mas estandares? veras, cuando nosotros escribimos algo en el teclado, las letras, simbolos, etc se almacenan en la memoria de la computadora.

Cuando se uso el ASCII este tenia una capacidad baja, ya que no era necesario que se asigne mas memoria ya que las letras y simbolos no van a cambiar, PERO se tenia en cuenta que era para el idioma ingles, entonces ¿que pasaba con otros idiomas asi como nuestro español? por ejemplo nosotros usamos la letra Ñ y tambien ponemos acentos a las vocales á,é,í,ó,ú cosa que en el idioma ingles no se ve, ni que decir del mandarin! este idioma tiene millones de caracteres, o el ruso que tambien tienen su propia manera de escribir asi como otros idiomas, ahi empezo el problema, ya que por la poca capacidad del formato ASCII ya no se podia meter mas caracteres a esta codificación ya que esta tenia asginada poca memoria. Entonces la solucion!!!: decidieron crear el UNICODE que es un nuevo estandar que reemplaza al ASCII, con mas memoria y mas capacidad para que se reconoscan nuevos caracteres, ahora ya no solo estan los caracteres del idioma ingles, sino tambien nuestra Ñ, las tildes (á,é,í,ó,ú), letras del alfabeto chino,ruso, etc. de no ser por el formato UNICODE no podriamos ver nuestra Ñ en internet asi como textos en diferentes escrituras, como el arabe, ruso, chino, aleman, etc

http://es.answers.yahoo.com/question/index?qid=20120220063248AAFFZGs

¿Cómo comprobar si un char es igual a un espacio vacío?

Here's what I've got:
private static int countNumChars(String s) {
    for(char c : s.toCharArray()){
        if (Equals(c," "))
    }
}
But that code says it cannot find Symbol for that method. I remember Java having a comparer like this... Any suggestions?

Answers:
if (c == ' ')
char is a primitive data type, so it can be compared with ==.
Also, by using double quotes you create String constant (" "), while with single quotes it's a char constant (' ').

In this case, you are thinking of the String comparing function "String".equals("some_text"). Chars do not need to use this function. Instead a standard == comparison operator will suffice.
private static int countNumChars(String s) {
    for(char c : s.toCharArray()){
        if (c == ' ') // your resulting outcome
    }
}

Tipos de Datos

Hay ocho tipos primitivos de datos que podemos clasificar en: tipos numéricos y el tipo boolean. A su vez, los tipos numéricos se clasifican en tipos enteros y tipos reales.

Tipos enteros: byte, short, int, long y char
Tipos reales: float y double 

Cada tipo primitivo tiene un rango diferente de valores positivos y negativos excepto el boolean que solo tiene dos valores: true y false. El tipo de datos que se seleccione para declarar las variables de un determinado programa dependera del rango y tipo de valores que vayan a almacenar cada una de ellas y de si estos son enteros o fraccionarios.

Se les llama primitivos porque están integrados en el sistema y en realidad no son objetos, lo cual hace que su uso se mas eficiente. En java hay bibliotecas que proporcionan clases: Byte, Character, Short, Integer, Long, Float, Double y Boolean, para encapsular cada uno de los tipos expuestos, proporcionando asi una funcionalidad añadida para manipularlos.

 Tipos de Datos en Java.

 Variables de tipos primitivos.

Another Application: Adding Integers

Aplicacion1.java
// El programa usa la clase JOptionPane
import javax.swing.JOptionPane;

public class Aplicacion1
{
    public static void main(String args[])
    {
        String Num1; // Variable para primera cadena introducida por el usuario
        String Num2; // Variable para segunda cadena introducida por el usuario

        int A;      //Declaramos una variable int llamada A que sera el primer numero introducido
        int B;      // Segunda variable que sera el segundo numero
        int Mayor;  // variable con parametro mayor

        Num1 = JOptionPane.showInputDialog( "Introduce el Primer Numero" ); //pide al usuario introducir el primer numero
        Num2 = JOptionPane.showInputDialog( "Introduce el Segundo Numero" ); //pide el segundo numero
        
        //Convierte los numeros de tipo string a tipo int
        A = Integer.parseInt( Num1 );
        B = Integer.parseInt( Num2 );

        if ( A > B ) //Si la condicion se cumple entonces el numero mayor es = A
            Mayor = A;
        else        // Si la condicion no se cumple entonces el numero mayor es = B
            Mayor = B;
           
        //Imprimimos en pantalla los resultados con la clase JOptionPane y el metodo showMessageDialog mas los argumentos
        JOptionPane.showMessageDialog( null, " El mayor de " + A + ", " + B + " es: " +  Mayor , "Obtención del Numero Mayor", JOptionPane.PLAIN_MESSAGE);
    }
}
Aplicacion2.java
import javax.swing.JOptionPane;

public class Aplicacion2
{
    public static void main(String args[])
    {
        // Declaramos las variables para las tres cadenas que introduzca el usuario
        String Num1;
        String Num2;
        String Num3;

        int A;  // Primero Numero
        int B;  // Segundo Numero
        int C;  // Tercer Numero
        int Mayor; // Parametro para elegir el numero mayor
        
        // Pedir la entrada de datos, del primer, segundo y tercer numero
        Num1 = JOptionPane.showInputDialog( "Introduce el Primer Numero" );
        Num2 = JOptionPane.showInputDialog( "Introduce el Segundo Numero" );
        Num3 = JOptionPane.showInputDialog( "Introduce el Tercer Numero" );
        
        // Convertimos los numero introducidos de tipo String a tipo int 
        A = Integer.parseInt( Num1 );
        B = Integer.parseInt( Num2 );
        C = Integer.parseInt( Num3 );
        
        // Realizamos la condicion de los primeros dos numeros (A) y (B)
        if ( A > B ) // Si el primero numero (A) introducido, es mayor que el segundo numero (B) entonces A = Mayor
            Mayor = A;
        else // Si la condicion anterior no se cumple, entonces B = Mayor
            Mayor = B;
        if ( C > Mayor ) // De la lo anterior se compara el Mayor con el tercer numero (C) y si esta condicion
            Mayor = C;   // se cumple entonces C = Mayor y si no se cumple se descarta esta condicion.
        
        // Por ultimo, imprimimos los resultados en pantalla y listo
        JOptionPane.showMessageDialog( null, " El mayor de " + A + ", " + B + " y " +  C + " es: " +  Mayor , "Obtención del Numero Mayor", JOptionPane.PLAIN_MESSAGE);
    }
}

miércoles, 17 de octubre de 2012

Ejecución de Aplicaciones Java usando la Linea de Comandos

Lo primero que haremos para compilar y ejecutar aplicaciones Java, es descargarnos el JDK (Java Development Kit) que es un software que provee herramientas de desarrollo para la creacion de programas en Java. Hay versiones disponibles para Windows, Linux, y Solaris. Desde la pagina http://www.oracle.com/technetwork/java/index.html podemos buscar y examinar la documentación en línea o descargar el archivo de la documentación del JDK e instalarlo en nuestro equipo. Una vez instalado, podremos buscar y navegar por la documentación a nivel local.

JDK en Windows
En los sistemas operativos Microsoft Windows sus variables de entorno son:
  • JAVAPATH: es una ruta completa del directorio donde está instalado JDK.
  • CLASSPATH: son las bibliotecas o clases de usuario.
  • PATH: variable donde se agrega la ubicación de JDK.
Los programas más importantes que se incluyen son:
  • Appletviewer: es un visor de applets para generar sus vistas previas, ya que un applet carece de método main y no se puede ejecutar con el programa java.
  • Javac: es el compilador de Java.
  • java: es el intérprete de Java.
  • javadoc: genera la documentación de las clases Java de un programa
Primero iremos a la siguiente pagina http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.html donde descargaremos el JDK.

Una vez descargado el JDK, lo ejecutamos y comenzara un asistente que nos guiara a traves del proceso de instalacion. Podemos cambiar el directorio donde instalaremos JDK, pero por defaul es en el directorio C:\Program Files\Java. En un par de minutos solo tendremos que hacer clic en finalizar para terminar el proceso de instalacion. Ahora toca el proceso de establecer las opciones del class y la classpath. Estos valores indican al sistema operativo donde encontrar el compilador Java y sus clases.

Configuración del path en Windows 7

Java se instala por defecto en la ruta C:\Program Files\Java. En este directorio hay dos carpetas llamadas jdk1.7.0 y jre7 que contienen el Java Development Kit, o herramientas de desarrollo y entorno de ejecución. Tenemos que poner atencion en la primera carpeta que contiene el JDK, esta carpeta contiene una carpeta llamada bin, la que contiene todos los programas de Java necesarios para compilar y ejecutar codigo Java. Los programas mas importantes de esta carpeta son javac.exe (compilador de Java) y appletviewer.exe (la utilidad de visor de applets). Tenemos que agregar esta carpeta a las variables de entorno de nuestro sistema que para que podamos invocar el compilador de Java desde cualquier ubicacion de nuestro disco duro. Este proceso se muestra a continuacion.

Clic boton inicio de Windows.
Seleccionar Panel de Control.

Seleccionar la opcion de Sistema y Seguridad.


En el siguiente paso seleccionar la opcion de Sistema.


En la seccion de la izquierda, seleccionar la opcion de Configuración avanzada del sistema.


En la seccion de Configuracion avanzada del sistema, dar clic en las variables de entorno y nos mostrara una ventana similar a la siguiente imagen.

En esta ventana, seccion de Variables de entorno, nos dezplazaremos hacia abajo y buscaremos la opcion Path, la seleccionamos y luego hacemos clic en editar. En esta seccion escribiremos/copiaremos la ruta donde esta el bin de Java, en mi caso.

;C:\Program Files\Java\jdk1.7.0\bin


Una vez realizado este proceso podremos verificar que este todo correcto abriendo el Simbolo del Sistema y escribiendo java -version, este comando invoca el compilador de Java y nos muestra la version de Java instalado
C:\Users\Delfi>java -versionjava version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) Client VM (build 21.0-b17, mixed mode, sharing)
Lo anterior comprueba que tenemos instalado Java correctamente y esta listo para escribir y compilar codigo Java. Pero si recibe un error como “Bad command or file name”, entonces las variables de entorno no se han configurado correctamente.

Creación, Compilacón y Ejecución de Aplicaciones en Java

Para compilar un programa, abrimos el simbolo del sistema (tambien conocido como consola). Para abrir, nos vamos a Inicio - Todos los programas - Accesorios - Simbolo de Sistema, o bien tecleando en el buscador de inicio Simbolo de Sistema o cmd (cmd significa "command"). Al hacer esto se habrira el Simbolo de Sistema. Para compilar una aplicacion necesitamos estar en el directorio donde se encuentra nuestra aplicacion.
public class PrimerPrograma 
{
 public static void main ( String args [] )
  {
   System.out.print( "¡¡Bienvenido a la programacion en Java!!\n" );  
   System.out.println( " http://delfirosales.blogspot.com " );
   }
  }
}
En este ejemplo utilizaremos nuestro primer programa que realizamos en el anterior post, llamado PrimerPrograma lo tenemos en el directorio C:\programasjava. Asi que, lo que haremos es cambiarnos de directorio de C:\Users\Delfi> a C:\programasjava. Para esto usamos el comando cd ( cd es el comando de cambio de directorio).

C:\Users\Delfi> cd \programasjava

Nos hemos cambiado de directorio, ahora para mostrar que archivos se encuentran en el directorio utilizaremos el comando dir y nos mostrar los archivos contenidos en el directorio programasjava.

En nuesto caso solo tenemos la aplicacion PrimerPrograma utilizado en el anterior post.

Un compilador de Java traduce un archivo fuente de Java en un archivo bytecode (codigo de bytes) de Java. Estamos listos para compilar el programa llamado PrimerPrograma.java El siguiente comando compila la aplicacion PrimerPrograma.java (javac significa compilar java).
javac PrimerPrograma.java
Si no hay errores de sintaxis, el compilador genera un archivo con una extension de codigo de bytes. Asi el comando anterior genera un archivo con el nombre de PrimerPrograma.class como se muestra en la siguiente figura.

El archivo PrimerPrograma.class generado.

Realizado el paso anterior, ahora podemos utilizar el siguiente comando para ejecutar el programa PrimerPrograma.
java PrimerPrograma
Este comando inicia la maquina virtual de java (JVM). Las palabras ¡¡Bienvenido a la programacion en Java!! se muestran en la ventana de comandos.
¡¡Bienvenido a la programacion en Java!!http://delfirosales.blogspot.com
La siguiente siguiente imagen muestra el resumen del proceso de compilacion, ejecuacion de PrimerPrograma en Java.

Proceso de compilacion, ejecuacion de PrimerPrograma en Java.

El lenguaje Java es un lenguaje de alto nivel, mientras que el bytecode de Java es un lenguaje de bajo nivel. El bytecode es similar a las intrucciones de la maquina, pero es arquitectura neutral y puede ejecutarse en cualquier plataforma que tenga una maquina virtual de Java (JVM). En lugar de una maquina fisica, la maquina virtual es un programa que interpreta el bytecode de Java. Esta es una de las principales ventajas de Java.

Codigo Fuente de Java es traducido a Codigo Byte (bytecode).

Podemos utilizar cualquier editor de texto o IDE para crear y editar nuestro codigo fuente de Java, ejemplo en Windows podemos utilizar el blog de notas o bien utilizar un IDE (Entorno de Desarrollo Integrado) como Eclipse, NetBeans, JCreator etc.

Tambien podemos ingresar al sitio de Java e ir a la seccion de frequently asked questions (FAQs) que proporcionan respuestas breves a las preguntas mas frecuentes sobre el software de Java.

Referencias:
Java Development Kit o (JDK)
Java Programming: From Problem Analysis to Program Design
Introduction to Java Programming, Comprehensive (8th Edition)

Your First Program in Java

Bienvenido.java
public class Bienvenido
{
    // El metodo main empieza la ejecuion de nuestra aplicacion en Java
    public static void main (String args[])
    {
        // Imprimimos texto en pantalla con el objeto de salida estandar "System.out"
        System.out.println("Bienvenido a la Programacón en Java!");

    }
   
}
Bienvenido2.java
import javax.swing.JOptionPane;

public class Bienvenido2
{
    // El metodo main empieza la ejecuion de nuestra aplicacion en Java
    public static void main (String args[])
    {
        // Mostramos la salida en un cuadro de dialogo utilizando la clase JOptionPane
        JOptionPane.showMessageDialog(null, "Bienvenido a la Programacón en Java!");
        // "JOptionPane" es una clase que nos permite producir cuadros de dialgo
        // "showMessageDialog" es un metodo especial de la clase JOptionPane
    }
}

Sintaxis para utilizar Equals en java?

El método equals realiza una comparación del objeto contra el objeto que recibe como parámetro, para determinar si son iguales en sus atributos o no. Regresa true o false.

Está definido en la clase Object. Se usa:
objeto1.equals(objeto2);

Este metodo es una comparasion de caracteres tanto como de enteros y el valor de cada uno es determinado como true o false la sintaxis es la siguiente.

si el dato es caracter se determina de la siguiente forma
a="hola";
if(a.equals("hola")){
sistem.out.printlan("es igual");
}else
sistem.out.println("diferentel");
System.out.println("e.- buscar un registro");
...
                case 'e':
                    String busca;
                    System.out.print("\ningresa el registro a buscar: ");
                    busca = leer.readLine();

                    System.out.println();
                    for(i=0; i< N; i++)
                    {
                        if( arreglo[i].equals(busca))
                        {
                            System.out.print("\nCaracter encontrado en la posicion ["+(i)+"] ");

                            //Encuentra el caracter en la posicion
                        }
                        else
                        {
                            System.out.print("\nCaracter no encontrado en ["+i+"]"); 
                        }
                    }
                    System.out.println();                
                    break;

Conversion de Minuscula a Mayuscula

Convertir una cadena a Mayusculas.
           case 'e':
                    /*PRIMERA OPCION
                     *for(i=0; i < arreglo.length; i++)
                    {
                        if(!arreglo[i].equals(arreglo[i].toLowerCase()))
                        {
                            System.out.println("["+i+"] = "+arreglo[i]+" <- Contiene caracteres en minusculas");
                            arreglo[i] = arreglo[i].toUpperCase();
                        }
                        else
                        {
                            System.out.println("["+i+"] = "+arreglo[i]+" <- NO contiene caracteres en minusculas");
                        }
                    }  
                    System.out.println();
                    System.out.println("Elementos convertidos a MAYUSCULAS");
                    for(i=0; i < arreglo.length; i++)
                    {
                        System.out.println(arreglo[i]+", ");
                        System.out.println("["+i+"] = "+arreglo[i]+" <-");
                    }*/
                    
                    /*SEGUNDA OPCION
                     *for(i=0; i< arreglo.length; i++)
                    {
                        if(arreglo[i].equals(arreglo[i].toLowerCase()))
                        {
                            System.out.println("["+i+"] = "+arreglo[i]+" <- es Minuscula ");
                            arreglo[i] = arreglo[i].toUpperCase();
                        }
                        else
                        {
                            System.out.println("["+i+"] = "+arreglo[i]+" <- es MAYUSCULA ");
                        }
                    }
                    System.out.println();
                    System.out.println("Elementos ");
                    for(i=0; i< arreglo.length; i++)
                    {                        
                        System.out.println("["+i+"] = "+arreglo[i]);
                    }*/
                    
                    System.out.print("\nElementos:\n");
                    for(i=0; i< arreglo.length; i++)
                    {
                        arreglo[i] = arreglo[i].toUpperCase();
                        System.out.print(arreglo[i] + ", ");
                    }
                    System.out.println();                    
                    break;

jueves, 11 de octubre de 2012

Primer programa

public class HolaMundo
{
  public static void main(String[] args)
  {
    System.out.println("Hola mundo");
  }
}

La explicación de este primer programa se hará línea por línea. La primera línea de código es:

public class HolaMundo

En esta línea, la primera palabra reservada, public, es un modificador de acceso que determina quién puede acceder a las clases o propiedades y métodos de una clase. Una clase, que aparece como segunda palabra reservada class, es un conjunto de propiedades y métodos que definen un modelo, o plantilla, para crear objetos, o instancias, de ese tipo. Por último, HolaMundo es una variable, no una palabra reservada, que identifica a la clase pública que se ha creado. Resumiendo, esta línea define una clase pública identificada como HolaMundo.

La segunda línea de código es una llave. Las llaves en Java determinan el contenido de una clase, una función, una estructura, etc. En esta línea, esta llave abierta indica el inicio del contenido de la clase Holamundo que en este caso sólo estará compuesto por un método. La última línea de código, la llave cerrada, indica el fin del contenido de dicha clase. Las llaves de la línea 4 y 6 indican el contenido del método, o función, main().

La tercera línea de código es:

public static void main(String[] args)

En esta línea de código se define una función, o método, pública y estática denominada main(). La palabra reservada static se utiliza para definir las propiedades o los métodos que pertenecen a una clase, en este caso la clase Holamundo, en vez de pertenecer a un objeto, o instancia, de esa clase. El tipo de dato void se usa para indicar a la función, o método, que no devuelva parámetros. Todo programa en Java necesita una función, o método, denominada main() para establecer el inicio del programa. El contenido de dicha función, String[] args, define un vector de cadenas de caracteres donde recogerá los argumentos pasados en la ejecución del programa HolaMundo.

Por último, la antepenúltima línea de código es:

System.out.println("Hola mundo");

Esto es una función contenida en la API de Java SE que imprime, println(), en la salida, out, de la consola, System, la cadena de caracteres: ¡Hola Mundo!.

Modificadores en Java

Modificadores de Acceso: Public, Private, Protected y Default.

Los Modificadores Como su nombre lo indica determinan desde que clases se puede acceder a un determinado elemento.
  • Public: permite a acceder al elemento desde cualquier clase independientemente de que esta pertenezca o no al paquete en que se encuentra el elemento.
  • Private: es un modificador mas restrictivo y especifica que los elementos que lo utilizan solo pueden ser accedidos desde la clase en que se encuentra. ste modificador sólo puede utilizarse sobre los miembros de una clase y sobre interfaces y clases internas.
  • Protected: por último, indica que los elementos sólo pueden ser accedidos desde su mismo paquete (como el acceso por defecto) y desde cualquier clase que extienda la clase en que se encuentra, independientemente de si esta se encuentra en el mismo paquete o no. 
Static
A pesar de lo que podría parecer por su nombre, heredado de la terminología de C++, el modificador static no sirve para crear constantes, sino para crear miembros que pertenecen a la clase, y no a una instancia de la clase. Esto implica, entre otras cosas, que no es necesario crear un objeto de la clase para poder acceder a estos atributos y métodos. Este es el motivo por el cual es obligatorio que main se declare como static; de esta forma no tenemos que ofrecer un constructor vacío para la clase que contiene el método, o indicar de alguna forma a la máquina virtual cómo instanciar la clase.


Entradas populares