domingo, 2 de julio de 2017

21-Programación Orientada a Objetos (Parte XI). Almacenar Objetos de la misma clase en Vectores. Iterar por un Vector

Muy buenas, en este tutorial veremos la última parte del curso dedicada a la programación orientada a objetos, en realidad siempre que trabajemos con Java lo estaremos haciendo con objetos, pero esta va a ser la última parte del curso de Java en la que estudiaremos el comportamiento y utilización de objetos.
A partir de este tutorial del curso y, si has seguido todos los tutoriales hasta ahora, todo lo que veamos a partir de aquí te resultará mas sencillo de entender. La base para aprender a programar está en entender muy bien cómo trabajar con objetos en Java.
Bueno, en este tutorial vamos a ver cómo podemos almacenar objetos de la misma clase en vectores. Para ello vamos a ver cómo utilizar la clase Vector de Java. Al estudiar esta clase utilizaremos los carácter '<' y '>' para indicar en su interior qué clase de objeto podrá almacenar. Todo esto lo veremos más ampliado cuando estudiemos en el curso los genéricos en Java.


Almacenar Objetos de la misma clase en arrays o vectores.

Como he mencionado anteriormente, vamos a almacenar objetos en Vectores y, para ello debemos utilizar dicha clase. Como siempre digo es casi obligatorio visitar la documentación de Java para ver cómo funciona esta clase.

Podemos ver que la clase Vector está dentro del paquete java.util, por lo que deberemos de importar dicho paquete para utilizar esta clase.
Seguramente no entendáis que significa la E que se encuentra entre < y >. Esto lo veremos cuando veamos lo genéricos, pero lo que indica <E> es que esta clase podrá contener objetos de una clase, y dicha clase hay que especificarla, indicarla. Por ejemplo: si queremos introducir objetos de la clase String dentro del vector debemos indicarlo de la siguiente manera:
Vector<String> caracteres =  new Vector<String>();
Fíjate bien que se declara igual que cuando instanciamos un objeto pero con la particularidad de que indicamos entre '<>'. Ahora tenemos un objeto de la clase Vector de nombre caracteres.

Si seguimos mirando la documentación nos informa que la clase Vector es una clase que almacena objetos, y dicha clase puede aumentar o disminuir de tamaño según se vayan añadiendo o eliminando objetos, siendo su capacidad por defecto de 10. ¿Os acordáis de cuando vimos los arrays? Estos había que indicarles el tamaño que iban a tener y luego íbamos rellenando el array, sin pasarnos de su tamaño. Esta clase permite que no tengamos que saber cuántos objetos vamos a introducir, sólo debemos de indicar que clase de objetos vamos a introducir, en nuestro caso hemos indicado que introduciremos objetos de la clase String.

La clase Vector dispone de muchos métodos que aquí no se van a ver todos, es imposible, por eso digo que soys vosotros mismos los que deberéis de aprender a mirar la documentación y mirar los métodos disponibles en cada clase y utilizarlos, creando vuestros propios ejemplos, probad cosas...etc. Así es como aprenderéis realmente a programar. La documentación de Java la podéis encontrar en el siguiente enlace documentacion Java. Aquí vamos a utilizar el método add(E e).
Este método nos permitirá añadir al Vector un elemento E. Como ya vimos, E indica que debe ser de la clase que le hemos indicado cuando hemos creado el vector, es decir, un String.
Vamos a ver en el siguiente ejemplo como creamos el Vector y añadimos varios objetos String y utilizamos algunos métodos más de esta clase.

import java.util.*;

public class ClaseVector {
    
    public static void main(String[] args) {
        
        //Creamos la instancia de Vector
        Vector caracteres = new Vector();
        
        String palabra1 = "Árbol";
        String palabra2 = "Piscina";
        String palabra3 = "Amistad";
        String palabra4 = "Cáctus";
        
        //Añadimos los String al Vector
        caracteres.add(palabra1);
        caracteres.add(palabra2);
        caracteres.add(palabra3);
        caracteres.add(palabra4);
        
        //Vamos a ver el tamaño que tiene el vector ahora
        System.out.println(caracteres.capacity()); //Imprime 10
        
        System.out.println(caracteres.firstElement());//Imprime Árbol
        
        System.out.println(caracteres.size());//Imprime 4
 
caracteres.remove(palabra3);//Borra el objeto palabra3
 
 }
    
}

En el ejemplo debemos de diferenciar bien los métodos capacity() y size(). El primer método devuelve un entero con el valor de la capacidad del Vector. Entonces,  ¿Por qué devuelve 10? Un Vector al que no le hemos indicado una capacidad con el método setSize(int i), crea un Vector con capacidad por defecto de 10. Y si quiero introducir más de 10 objetos, ¿Qué pasa? No te preocupes, el Vector irá aumentando o disminuyendo su tamaño según las necesidades.
El método size() devuelve los objetos que se encuentran dentro del vector.
Ahora mirad vosotros mismos el resto de métodos de la clase Vector, y probad los que os interesen.

Iterar por un Vector

Para iterar un Vector vamos a utilizar un bucle for-each. Un bucle for-each se utiliza asi:
for(Objeto nombreBucle : nombreVector) { }
Dónde he puesto nombreVector puede ser también el nombre de un array, o de genéricos que los veremos más adelante.
Vamos a ver cómo recorrer el Vector del ejemplo anterior:

//Recorremos el Vector con un bucle for-each
        for(String i: caracteres){
            
            //Imprimimos cada uno de los elementos
            System.out.println(i);
            
        }

Ahora ya os queda a vosotros ensayar, añadir más elementos, eliminarlos, crear un Vector que guarde objetos de Persona por ejemplo.... etc. No me cansaré de decirlo que es la única forma de que realmente aprendáis a programar, no vale solo con saberse la teoría de los tutoriales, si no se ensaya, se practica y se cometen errores no vais a aprender a programar.
Mucho ánimo y en el siguiente tutorial os hablaré un poco de las clases y los paquetes.
Nos vemos!!!!

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...