Arrays de objetos en Java

Hola a todos, hoy os explicare como podemos usar un array de objetos en Java.

Como hemos visto en los arrays, debemos definir el tipo de dato que debe contener, pues también puede contener objetos de una clase. Con las posiciones, podemos hacer igual que si fuera un objeto, como invocar métodos.

Veamos un ejemplo:

public class EmpleadoApp {

	public static void main(String[] args) {

		//Creamos un array de objetos de la clase empleados
		Empleado arrayObjetos[]=new Empleado[3];

		//Creamos objetos en cada posicion
		arrayObjetos[0]=new Empleado("Fernando", "Ureña", 23, 1000);
		arrayObjetos[1]=new Empleado("Epi", "Dermis", 30, 1500);
		arrayObjetos[2]=new Empleado("Blas", "Femia", 25, 1200);

		//Recorremos el array para calcular la suma de salarios

		int suma=0;
		for (int i=0;i<arrayObjetos.length;i++){
			suma+=arrayObjetos[i].getSalario();
		}
		System.out.println("La suma de salarios es "+suma);
	}

}

¿Pero que pasaría si tenemos un array con muchas posiciones? Podríamos usar un bucle for, para crear una serie de objetos. Veamos un ejemplo:

public class EmpleadoApp {

	public static void main(String[] args) {

		//Creamos un array de objetos de la clase empleados
		Empleado arrayObjetos[]=new Empleado[10];

		//Creamos 10 empleados por defecto
		int suma=0;
		for (int i=0;i<arrayObjetos.length;i++){
			arrayObjetos[i]=new Empleado();
		}

		//Lo recorremos y sumamos de nuevo los salarios (600*10)
		for (int i=0;i<arrayObjetos.length;i++){
			//Mostramos la direccion del objeto
			System.out.println(arrayObjetos[i]);
			suma+=arrayObjetos[i].getSalario();
		}
		System.out.println("La suma de salarios es "+suma);
	}

}

En principio, no seria muy útil el ejemplo anterior ya que crea empleados por defecto, un buen método que pida por teclado cada uno de los atributos necesarios para crear el objeto. Veamos como queda:

import javax.swing.JOptionPane;
public class EmpleadoApp {

	public static void main(String[] args) {

		//Creamos un array de objetos de la clase empleados
		Empleado arrayObjetos[]=new Empleado[10];

		//Creamos 10 empleados por defecto
		int suma=0;
		for (int i=0;i<arrayObjetos.length;i++){
			//Indicamos cada uno de los parametros del objeto
			String nombre=JOptionPane.showInputDialog("Escribe un nombre");

			String apellido=JOptionPane.showInputDialog("Escribe un apellido");

			String texto=JOptionPane.showInputDialog("Escribe una edad");
			int edad=Integer.parseInt(texto);

			texto=JOptionPane.showInputDialog("Escribe un salario");
			double salario=Double.parseDouble(texto);

			arrayObjetos[i]=new Empleado(nombre, apellido, edad, salario);
		}

		//Lo recorremos y sumamos de nuevo los salarios
		for (int i=0;i<arrayObjetos.length;i++){
			//Mostramos la direccion del objeto
			System.out.println(arrayObjetos[i]);
			suma+=arrayObjetos[i].getSalario();
		}
		System.out.println("La suma de salarios es "+suma);
	}

}

Recuerda que si tenemos un array de objetos de una superclase, este array puede contener objetos de sus clases hijas.

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

10 comentarios

  1. Warrior

    Esto se parece mucho a la platilla Html de mi blog? es lo mismo, esta hecha con Java???

    A por cierto mil gracias por siempre darle más uno a mis publicaciones de verdad que lo agradezco.

    Traffic Club

    Blog de Warrior o The Outisders Inc.

  2. Aldreo

    Hooola!

    Te felicito por lo bien que has explicado todo. Me ha sido de gran ayuda. Pero tengo un problemilla, quiero hacer un array de objetos Lista tal que así:

    List[] array;
    array = new List[10];

    Pero la segunda linea no compila. ¿Cómo debería ser la sintaxis?
    Muchas gracias!

  3. Disco Duro de Roer Post author

    ¿Has importado la clase List con import java.util.List; ?

    Un saludo.

  4. milagros

    holiss!! quiero hacer algunos amigos que me ayuden a programar!

  5. Disco Duro de Roer Post author

    Puedes agregarnos en nuestro Skype. El id es discoduroderoer.

    Un saludo.

  6. yancarlos

    si quisiera agregar un metodo en la parte del salario y luego mostrar en una lista cada uno de los datos como lo haria

  7. adri

    Con lo facil y bien que te vendria ahi usar el for de arrays:
    for ( : )
    Esto recorre el contenido del bucle for para cada valor del array. De esta forma no tienes ni que comprobar cuantos valores tiene el array con el .lenght

  8. adri

    en verdad es for(tipoDelArray nombreDelIterador : nombreDelArraySinCorchetes){
    Aqui va el codigo.
    }

  9. Lovelace

    Como creo un array dentro de la clase

  10. Disco Duro de Roer Post author

    debes ponerlo como atributo, mira en los ejemplos de los ejercicios.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *