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.
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.
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!
¿Has importado la clase List con import java.util.List; ?
Un saludo.
holiss!! quiero hacer algunos amigos que me ayuden a programar!
Puedes agregarnos en nuestro Skype. El id es discoduroderoer.
Un saludo.
si quisiera agregar un metodo en la parte del salario y luego mostrar en una lista cada uno de los datos como lo haria
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
en verdad es for(tipoDelArray nombreDelIterador : nombreDelArraySinCorchetes){
Aqui va el codigo.
}
Como creo un array dentro de la clase
debes ponerlo como atributo, mira en los ejemplos de los ejercicios.