New 2 Java: Suplementos

Distinguir entre clases, objetos y constructores puede ser confuso. Entender las diferencias entre estos trminos es importante para saber cuando estmos diseando un objeto y cuando estmos creando un objeto, y cmo se construyen nuestros objetos.

Las clases y objetos son los fundamentos de la programacin Java. Todos los objetos estn basados en clases. Una clase es una receta o plano de un objeto. Las clases especifican lo siguiente:

  • Los datos (a travs de campos, atributos, o variables).
  • Cmo manipular los datos (a travs de mtodos).
  • Cmo 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 mtodos que operan sobre los datos. Para usar esta clase, creamos un ejemplar de la clase llamado al constructor. El constructor es un mtodo especial que crea un objeto de la clase desde donde es llamado. Por ejemplo:

BankAccount ba = new BankAccount()

Crea un objeto BankAccount.

Los constructores podran incluir parmetros, por eso si se ejemplariza un objeto, es ejemplarizado con los argumentos suministrados.

En el ejemplo anterior BankAccount se inicializ sin ningn parmetro. Pero la clase puede especificar que el constructor acepte parmetros:

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 automticamente un constructor por defecto igual que el primer constructor mostrado arriba en BankAccount(){}. El constructor por defecto ejemplariza un objeto sin parmetros.

La documentacin de J2SE detalla como ejemplarizar objetos de las clases predefinidas en la librera llamando a su constructor o constructores.

Por ejemplo, consideremos el siguiente prrafo de la documentacin del J2SE:

FileInputStream(File file) // constructor

Crea un FileInputStream abriendo una conexin 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 parmetros.

.Entender la Librera de Clases Java

.La clase ArrayList Explicada:

Las aplicaciones frecuentemente necesitan almacenar un grupo de datos en un slo objeto. Los arrays sirven bien para este propsito, pero algunas veces necesitamos incrementar o reducir dinmicamente el nmero de elementos del array, o hacer que contenga distintos tipos de datos

Esto es comn entre las aplicaciones como las tiendas online. Un cliente aade una mercanca a su carro de la compra, y detrs de la escena, los tems son almacenados y eliminados automticamente.

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 cmo necesitemos construir el ArrayList. Los siguientes dos constructores nos ayudarn a empezar:

  • ArrayList() construye un ArrayList con capacidad cero por defecto, pero crecer segn le vayamos aadiendo:
    ArrayList al = new ArrayList();
  • ArrayList(int initialCapacity) construye un ArrayList vaco con una capacidad inicial especificada:
    ArrayList al2 = new ArrayList(5);

Un objeto ArrayList slo contiene referencias a objetos. Para almacenar tipos primitivos como double, long, o float, usamos una clase envoltura, como se desmuestra abajo. Para aadir objetos al ArrayList, llamamos a sus mtodos 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 travs de los elementos del ArrayList, usamos la clase Iterator y sus mtodos 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-diseados para almacenar y manipular grupos de datos como una sola unidad, una coleccion.

.Programa Ejercicio

Hemos aprendido sbre las clases, los objetos y los constructores, y sobre la clase ArrayList. Pon estos conceptos juntos para crear la siguiente aplicacin:

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

El resultado debera 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 Lnea de Comandos no son Tecnologa 100% Pura Java?

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

Si tienes una lnea de comandos en tu sistema, usar argumentos de lnea de comadnos durante el desarrollo de la aplicacin es til para probar la lgica del cdigo, o leer ficheros. De otra forma, debes considerrr el utilizar propiedades para que tu aplicacin sea portable.

.Solucin al Programa de Ejercicio

Esta es una posible solucin 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 mayora del desarrollo Java, necesitas las libreras de clases Java, el compilador, las herramientas, y el entorno de ejecucin proporcionado por el kit de desarrollo de Java 2, Standard Edition.

COMPARTE ESTE ARTÍCULO

ENVIAR A UN AMIGO
COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN GOOGLE +
SIGUIENTE ARTÍCULO

¡SÉ EL PRIMERO EN COMENTAR!
Conéctate o Regístrate para dejar tu comentario.