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

New 2 Java: Suplementos


Suplemento Nº 2 de New 2 Java (Ago-2001)

. Lenguaje Java Básico

. Clases, Objetos y Constructores. ¿Cuál es la Diferencia?

Distinguir entre clases, objetos y constructores puede ser confuso. Entender las diferencias entre estos términos es importante para saber cuando estámos diseñando un objeto y cuando estámos creando un objeto, y cómo se construyen nuestros objetos.

Las clases y objetos son los fundamentos de la programación Java. Todos los objetos están basados en clases. Una clase es una receta o plano de un objeto. Las clases especifican lo siguiente:

  • Los datos (a través de campos, atributos, o variables).
  • Cómo manipular los datos (a través de métodos).
  • Cómo construir, o ejemplarizar, el objeto (opcional).

Una clase es una plantilla que define un objeto de la misma forma que una receta define nuestra comida favorita. Una clase no es un objeto igual que una receta de una tarta de manzada no es una tarta.

Supongamos que escribimos una clase llamada BankAccount que especifica los datos:

double account = 0; 
String name = ""; 

Definimos métodos que operan sobre los datos. Para usar esta clase, creamos un ejemplar de la clase llamado al constructor. El constructor es un método especial que crea un objeto de la clase desde donde es llamado. Por ejemplo:

BankAccount ba = new BankAccount()

Crea un objeto BankAccount.

Los constructores podrían incluir parámetros, por eso si se ejemplariza un objeto, es ejemplarizado con los argumentos suministrados.

En el ejemplo anterior BankAccount se inicializó sin ningún parámetro. Pero la clase puede especificar que el constructor acepte parámetros:

BankAccount(double account, String name) { 
    account = account;
    customername = name; 
}

Cuando se ejemplariza BankAccount con BankAccount ba1 = new BankAccount(900, "Jane Doe"). Este objeto BankAccount ba1 tiene un saldo y un nombre que van con la cuenta.

Podemos crear tantos constructores como necesitemos. Si no escribirmos un constructor, se proporciona automáticamente un constructor por defecto igual que el primer constructor mostrado arriba en BankAccount(){}. El constructor por defecto ejemplariza un objeto sin parámetros.

La documentación de J2SE detalla como ejemplarizar objetos de las clases predefinidas en la librería llamando a su constructor o constructores.

Por ejemplo, consideremos el siguiente párrafo de la documentación del J2SE:

FileInputStream(File file) // constructor

Crea un FileInputStream abriendo una conexión a un fichero real, el fichero nombrado por el objeto File en el sistema de ficheros.

Si queremos usar este FileInputStream, ejemplarizamos la clase llamando a su constructor:

FileInputStream fin = new FileInputStream("bankaccount.dat");
NOTA:
FileInputStream es una clase del paquete IO. Recuerda importar java.io.*

Proporcionando constructores nos asguramos de que los objetos se construyen exactamente como lo deseamos, con los datos especificados en los parámetros.

. Entender la Librería de Clases Java

. La clase ArrayList Explicada:

Las aplicaciones frecuentemente necesitan almacenar un grupo de datos en un sólo objeto. Los arrays sirven bien para este propósito, pero algunas veces necesitamos incrementar o reducir dinámicamente el número de elementos del array, o hacer que contenga distintos tipos de datos

Esto es común entre las aplicaciones como las tiendas online. Un cliente añade una mercancía a su carro de la compra, y detrás de la escena, los ítems son almacenados y eliminados automáticamente.

Para esta clase de grupos de datos crecientes y menguantes, podemos usar la clase Vector, o la reciente clase ArrayList del paquete java.util.

Un ArrayList contiene tantos objetos como necesitemos.

ArrayList tiene varios constructores, dependiendo de cómo necesitemos construir el ArrayList. Los siguientes dos constructores nos ayudarán a empezar:

  • ArrayList() construye un ArrayList con capacidad cero por defecto, pero crecerá según le vayamos añadiendo:
    ArrayList al = new ArrayList();
  • ArrayList(int initialCapacity) construye un ArrayList vacío con una capacidad inicial especificada:
    ArrayList al2 = new ArrayList(5);

Un objeto ArrayList sólo contiene referencias a objetos. Para almacenar tipos primitivos como double, long, o float, usamos una clase envoltura, como se desmuestra abajo. Para añadir objetos al ArrayList, llamamos a sus métodos con el operador punto:

al.add("Java Technology Book"); //adds a String
al.add(new Double(40.00)); //adds a double in a class wrapper
                           //More about class wrappers in a future issue

System.out.println(al.size()); //prints the size of 
                               //the ArrayList

Si necesitamos circular a través de los elementos del ArrayList, usamos la clase Iterator y sus métodos hasNext y next:

 
Iterator alIt = al.iterator();

while (alIt.hasNext()) {
    System.out.println(alIt.next() + " ");
}

ArrayList es una de las muchas clases del Collection Framework, que proporciona un conjunto de interfaces y clases bien-diseñados para almacenar y manipular grupos de datos como una sola unidad, una coleccion.

. Programa Ejercicio

Hemos aprendido sóbre las clases, los objetos y los constructores, y sobre la clase ArrayList. Pon estos conceptos juntos para crear la siguiente aplicación:

  • Crea una clase llamada ItemsListing.
  • Crea un constructor para ItemsListing que tome un parámetro: item.
  • En la clase ItemsListing, usa el siguiente método para convertir un dato variable en un String:
    public String toString() {
       	String s = "Item: " + item;
       	return s;
    }     
    
  • Crea una clase pública llamada ArrayListItems que contenga el método main.
  • En el método main, ejemplariza tres objetos de ItemsListing, proporcionando los datos para el constructor.
  • Crea un ArrayList.
  • Rellena el ArrayList con los tres objetos, usando el método add.
  • Pasa el ArrayList a un Iterator.
  • Usa un bucle while y el método hasNext para imprimir el contenido del ArrayList.
  • Graba el fichero como ArrayListItems.java compilalo y ejecutalo.

El resultado debería ser similar a este:

Item: Snorkel
Item: Diving Mask
Item: 6.5 mm Wet Suit

. Un poco de Java

. ¿Por qué los Argumentos de la Línea de Comandos no son Tecnología 100% Pura Java?

Las aplicaciones que requieren argumentos de la línea de comandos no son 100% Puro Java porque no todos lo sistemas tienen disponible una línea de comandos.

Si tienes una línea de comandos en tu sistema, usar argumentos de línea de comadnos durante el desarrollo de la aplicación es útil para probar la lógica del código, o leer ficheros. De otra forma, debes considerrr el utilizar propiedades para que tu aplicación sea portable.

. Solución al Programa de Ejercicio

Esta es una posible solución al Programa del Ejercicio:

//ArrayList class is in the 
//java.util package
import java.util.*;

class ItemsListing {
  
    private String item;
     
    // Constructor with parameters. When each object
   // is instantiated, or created, arguments must be
   // provided so the object contains the required 
   // data.
   public ItemsListing (String item) {
                                    
         // The keyword this is necessary to prevent confusion
         // over which object you are referring to when
         // you instantiate multiple objects.
         
         this.item = item;
    }
         
    // Method to convert the objects to Strings. 
         
   public String toString() {
       String s = "Item: " + item;
       return s;
   	}	  
}
______________________________________________________________________
 
public class ArrayListItems {

   public static void main(String []args) {
         
       // Creates an ArrayList to store each object, and 
       // adds each object with the add method and dot operator
       // as well as with the arguments for each object.
       
       ArrayList items = new ArrayList();
       items.add(new ItemsListing("Snorkel"));
       items.add(new ItemsListing("Diving Mask"));
       items.add(new ItemsListing("6.5 mm Wet Suit"));
       
      // The ArrayList is then passed to an Iterator
      
       Iterator iterateItems = items.iterator();
       
      // while loops through each element of the ArrayList
      // and prints the results 
      
       while (iterateItems.hasNext()) {
           System.out.println(iterateItems.next());
       }
    }
} 

Resultados:

Snorkel
Diving Mask
Item: 6.5 mm Wet Suit

. 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