Programación en castellano
Inicio > Tutoriales > Nuevo en Java > New 2 Java: Suplementos
-Tutoriales

New 2 Java: Suplementos


Suplemento Nº 5 de New 2 Java (Nov-2001)

. Lenguaje Java Básico

. ¿Cómo usar Bucles for?

El lenguaje de programación Java tiene tres diferentes construcciones de bucles:

  • bucle for
  • bucle while
  • bucle do-while

Cada una de estas construcciones ejecuta repetidamente un bloque de código, hasta que se alcance alguna condición. Este árticulo explica la estructura de una de estas construcciones, el bucle for.

La estructura básica de un bucle for consta de cuatro partes:

  • la sección de inicialización.
  • la sección de condición de finalización.
  • la sección de actualización.
  • el cuerpo del bucle.

Esa estructura se parece a esto:

 
for (initialization; ending condition; update) body;

Siguiendo a la palabra clave for, las primeras tres secciones van entre paréntesis, cada sección separada por puntos y coma. El cuerpo es la parte que se ejecuta repetidametne. Sigue fuera del paréntesis.

Si no queremos que se ejecute ningún código, detrás de las tres seccciones internas, seguimos al paréntesis de cierre con un punto y coma. Este un error de programación común, ya que significa que no hay cuerpo que ejecutar.

for (initialization; ending condition; update);
System.out.println("Executes after for loop is done.");

Más comunmente, encerraremos el cuerpo entre corhetes { y } indicando que se van a ejecutar varias sentencias. Si la parte del cuerpo no está entre corchetes, la única sentencia que siga inmediatamente al bucle for será ejecutada en cada pasada. Aquí está lo que podremos ver más comunmente:

for (initialization; ending condition; update) { statement1; statement2; statement3; ... statementn; }
  • La sección de inicialización es la sentencia que queremos que se ejecute antes de que empiece el bucle. Las variables declaradas en la sección de inicialización son locales al bucle for, y son útiles para la variable de control del bucle.
  • La condición de finalización contiene una expresión booleanda chequeada para ver si el cuerpo del bucle deberia ejecutarse si la condición es verdadera.
  • La sección de actualización es la sentencia que se ejecuta despues de que se ejecute el cuerpo pero antes de que se compruebe la condición de finalización para la siguiente pasada a través del bucle.

Para demostrarlo, el siguiente bucle, suma los números del 1 al 3:

int sum = 0;
for (int i=1; i<=3; i++)
   sum += i;
System.out.println("The sum is " + sum);

La primera línea (int sum = 0;) declara una variable para contener la suma a calcular. Necesita ser declarada fuera del bucle para que podamos imprimirla cuando hayamos terminado el bucle.

La siguiente línea (int i=1; i<;=3; i++) es un poco más complicada. Primero, la sección de inicialización declara la variable i y le pone el valor 1. La condición de finalización i<=3 ejecuta el cuerpo del bucle mientras que el valor de i sea menor o igual que 3. Originalmente si i fuera mayor que 3, el bucle nunca se ejecutaría. Como i empieza menor que 3, se ejecuta al menos una vez. Finalmente la sección de actualización i++ dice que se incremente el valor de i en uno después de cada ejecución del cuerpo del bucle. La siguiente línea (sum += i;) es el cuerpo del bucle. Se ejecuta mientras que la condifición de finalización sea verdadera.

La última línea System.out.println("The sum is " + sum); es la salida del bucle y se ejecuta cuando el bucle se ha finalizado. Todo el fragmento del bucle se ejecuta de esta forma:

sum = 0;
int i = 1;
is i<=3?  1 is less then or equal
    to 3 so yes, okay to execute body
sum = sum + 1;
i++;  i is now 2
is i<=3?  2 is less then or equal
    to 3 so yes, okay to execute body
sum = sum + 2;
i++;  i is now 3
is i<=3?  3 is less then or equal
    to 3 so yes, okay to execute body
sum = sum + 3;
i++;  i is now 4
is i<=3?  4 is not less then or equal
        to 3 so no, stop the for loop
System.out.println("The sum is " +
       sum);  prints out The sum is 6

Esto es esencialmente un bucle for. Hay cosas definitivamente más complicadas que podemos hacer con un bucle for, pero esto te servirá para empezar.

. Entender la Librería de Clases Java

. La Clase StringBuffer

Las dos clases comunes usadas para crear y manipular objetos string son:

  • String -- crea objetos que son constantes y de longitud fija. Una vez que se ha creado un objeto string, no se puede modificar.
  • StringBuffer -- crea un objeto StringBuffer que es escribible. Una que se ha creado un objeto StringBuffer si se puede modificar.

Entonces ¿por qué no usar siempre la clase StringBuffer en lugar de String? Rendimiento. Muchas referencias se pueden referir a un objeto String, y como el tamaño de este objeto en memoria es fijo, esto es un mejor rendimiento.

Por otro lado, StringBuffer, puede expandirse si se excede su capacidad. Usamos StringBuffer cuando necesitamos añadir, borrar o reemplazar substrings en un string. En estas situaciones, usar StringBuffer es más eficiente.

Para crear un objeto StringBuffer, usamos la palabra clave new y llamamos a cualquiera de sus tres constructores disponibles:

  • StringBuffer()
    Construye un buffer string vacío y con una capacidad inicial de 16 caracteres.
  • StringBuffer(int length)
    Construye un buffer string vacío y con una capacidad inicial especificada por el argumento length.
  • StringBuffer(String str)
    Construye un buffer string que representa la misma secuencia de caracteres que el argumento str.

Los métodos de la clase StringBuffer se usan para manipular el string, para añadir, borrar o insertar texto dentro del string. Por ejemplo:

public class UsingStringBuffers
{

public static void main(String [] args)
  {
  
    // Creates a StringBuffer object
    // with the third
    // constructor mentioned above.
    
    StringBuffer buf =
      new StringBuffer("Java technologies");

    // The append method adds text at the
    // end of the buffer.
    // Prints result to screen.
    
    buf.append(" are used on desktops and
                            the Internet.");
    System.out.println(buf);
    
    // Prints buf capacity and its actual
    // length, using
    // the length and capacity methods.
    
    System.out.println("This string is " +
                              buf.length() + 
    " in length.");
    
    System.out.println(
      "But the actual capacity of this
              buffer is " + buf.capacity());
 
    }
}

resulta en:

 
Java technologies are used on desktops and the Internet. 
This string is 56 in length. 
But the actual capacity of this buffer is 68

Podemos cambiar la longitud y la capacidad de un StringBuffer, y esta clase tiene otros métodos de edición útiles como insert, setCharAt, substring, y más.

. Programa Ejercicio

  1. Crea un programa que haga un bucle por todos los argumentos de la línea de comandos para crear una lista delimitada por comas.
  2. Usa un StringBuffer como el contenedor de la lista. Asegurate de que no hay ninguna coma después del último elemento.
  3. Imprime la lista después de haber combinado todos los argumentos.

Cuando ejecutes esta línea de comandos de ejemplo:

java Append one two three

El resultado debería ser:

one, two, three 

. Un poco de Java

. Atajos en la Programación Java

El código de ejemplo es una de las herramientas más útiles para aprender el lenguaje de programación Java, pero también puede ser confuso. El lenguaje Java es un lenguaje estrictamente tipado, lo que significa que siempre tenemos que declarar las variables como de un tipo específico, como int, String, o JPanel. Pero esto no signfica que no haya alguna flexibilidad en la forma de escribir nuestra sentencias.

Los atajos (o accesos directos) en la programación son útiles, pero tratar de entenderlos sin una explicación puede confundirnos. Hay dos tipos de atajos que has visto en el código y que puedes usar en tus propios desarrollos:

  • Declaraciones de Variables:

    Las variables deben declararse con un tipo, pero podemos poner variables del mismo tipo en la misma sentencia, separadas por comas: En lugar de esto:

     
    int month;
    int day;
    int year;
    

    podemos usar esto:

    int month, day, year;
    

    algunos desarrolladores podrían preferir:

    int month,
          day,
         year;
    
  • Crear objetos y llamar a métodos:

    Crear un objeto Timestamp que devuelve la hora actual puede tomar tres pasos:

    1. Ejemplarizar el objeto Date: Date d = new Date();
    2. Llamar al método getTime sobre ese objeto y asignarlo a una referencia Timestamp : Timestamp ts = (d.getTime());
    3. Devolver la hora como un Timestamp: return ts;

    En su lugar podemos crear un objeto y llamar a uno de sus métodos en un sólo paso:

    return new Timestamp(new Date().getTime()); 
    

    Aquí hay una aplicación de ejemplo que puedes ejecutar:

    import java.sql.Timestamp;
    import java.util.Date;
    
    public class TimeTest
    { 
      // Method that returns a Timestamp
      // object.
      public static Timestamp getCurrentTime()
       { 
        // Instantiates a Date object and calls
        // the getTime method, and creates and
        // returns the Timestamp object with the
        // current time. In one line!
        return new Timestamp(new Date().getTime());
       }
        //The main method that calls the
        // getCurrentTime method and returns
        // the Timestamp object and prints
        // to screen
      public static void main(String[] args)
       {
       System.out.println(getCurrentTime());
       }
    }
    

. Solución al Programa de Ejercicio

Esta es una posible solución para el Programa del Ejercicio:

public class Append {
   public static void main(String args[]) {
     // Create a StringBuffer object and 
     // assign it to the variable buf.
     
     StringBuffer buf = new StringBuffer();
     
     // Initializes the for loop.
     // Checks for the number of arguments on 
     // the command line, then loops through them
     
     for (int i=0; i< args.length; i++) {
     
     // For each argument besides the first, 
     // append comma to end of buffer
     
       if (i != 0) {
         buf.append(", ");
       }
       
       // Add all arguments to the
       // StringBuffer object buf.
       
       buf.append(args[i]);
     }
     // Converts the StringBuffer arguments
     // to simple strings and prints to screen.
     
     System.out.println(buf.toString());
   }
}

. Descargar la Plataforma Java 2

Para la mayoría del desarrollo Java, necesitas las librerías de clases Java, el compilador, las herramientas, y el entorno de ejecución proporcionado por el kit de desarrollo de Java 2, Standard Edition.

 
Patrocinados
 

Copyright © 1999-2007 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: musica mp3 | logos y melodias | hospedaje web linux | registro de dominios | servidores dedicados
más internet: comprar | recursos gratis | posicionamiento en buscadores | tienda virtual | gifs animados