SlideShare ist ein Scribd-Unternehmen logo
1 von 6
Arreglos de Objetos
Los objetos también pueden ser utilizados como elementos de un arreglo o de una matriz,
pero su uso tiene que ser más cuidadoso que el de un dato primitivo (int, double, char, etc),
pues un objeto contiene valores y métodos que toma de la clase que lo representa.
Un arreglo de una dimensión de objetos se define como:
Clase nombre_arreglo [] = new Clase[tamaño];
Un arreglo de dos dimensiones de objetos se define como:
Clase nombre_arreglo [][] = new Clase[tamaño-renglones][tamaño-columnas];
Algunos ejemplos pueden ser:
//define un arreglo de 10 objetos de la clase Cuenta
Cuenta arreglo[] = new Cuenta[10];
//define un arreglo de 3 renglones y 4 columnas de la clase Persona
Persona arreglo[][] = new Persona[3][4];
Supongamos que queremos utilizar una aplicación sencilla para tomar datos y crear objetos
en un arreglo de la clase Cuenta, podríamos utilizar la siguiente aplicación:
Clase Cuenta
public class Cuenta {
private String nombre; // nombre del cliente
private int numero; // numero de la cuenta
private double saldo; // saldo de la cuenta
// método para construir una cuenta vacía
public Cuenta() {
nombre = “”;
numero = 0;
saldo = 0.0d;
}
// método para construir una cuenta con valores
public Cuenta(int numero, String nombre, double saldo) {
this.nombre = nombre;
this.numero = numero;
this.saldo = saldo;
}
III. Desarrollo de aplicaciones con manejo
de datos en la memoria
// método que te dá el nombre de la cuenta
public String obtenNombre() {
return nombre;
}
// método que te dá el número de la cuenta
public int obtenNumero() {
return numero;
}
// método que te dá el saldo de una cuenta
public double obtenSaldo() {
return saldo;
}
// método que sirve para cambiar el valor del nombre
public void cambiaNombre(String nombre) {
this.nombre = nombre;
}
// método que sirve para cambiar el valor del saldo
public void cambiaNumero(int numero) {
this.numero = numero;
}
// método que sirve para cambiar el valor del saldo
public void cambiaSaldo(double saldo) {
this.saldo = saldo;
}
// método para depositar
public void deposita(double cantidad) {
cambiaSaldo(obtenSaldo() + cantidad);
}
// método para retirar
public boolean retira(double cantidad) {
if (cantidad <= obtenSaldo()) {
cambiaSaldo(obtenSaldo() - cantidad);
return true;
}
return false;
}
}
Clase de la Aplicación
import java.io.*;
public class AplicacionArrObjeto1 {
private static Cuenta arreglo[];
// para pedir los valores de teclado de el arreglo de cuentas ya creada
public static void pide_arreglo() throws IOException{
BufferedReader in =
new BufferedReader(new InputStreamReader(System.in));
int n;
int numero;
String nombre;
double saldo;
System.out.println(“¿Cuantos objetos deseas crear?”);
n = Integer.parseInt(in.readLine());
// creamos el arreglo de cuentas
arreglo = new Cuenta[n];
// pedimos cada valor para crear un objeto cuenta
for (int i=0; i<n; i++) {
System.out.print(“Da el numero de la cuenta “ + (i+1)+ “ : “);
numero = Integer.parseInt(in.readLine());
System.out.print(“Da el nombre de la cuenta “ + (i+1)+ “ : “);
nombre = in.readLine();
System.out.print(“Da el saldo de la cuenta “ + (i+1)+ “ : “);
saldo = Double.parseDouble(in.readLine());
// se crea el objeto de la clase Cuenta como elemento del arreglo
arreglo [i] = new Cuenta(numero, nombre, saldo);
}
}
// para desplegar los datos del arreglo de cuentas
public static void despliega_arreglo() {
System.out.println(“Numero Nombre Saldo”);
for (Cuenta objeto:arreglo) {
System.out.println(“ “ + objeto.obtenNumero() + “ “ +
objeto.obtenNombre() + “ “ + objeto.obtenSaldo());
}
}
// obteniendo la suma de los saldos de todas las cuentas
public static double suma() {
double total = 0.0d;
for (int i=0; i<arreglo.length; i++) {
Cuenta objeto = arreglo[i];
total += objeto.obtenSaldo();
}
return total;
}
// para calcular el promedio de la matriz cualquiera que sea
public static double promedio() {
double total = 0.0d;
for (int i=0; i<arreglo.length; i++) {
Cuenta objeto = arreglo[i];
total += objeto.obtenSaldo();
}
return total/arreglo.length;
}
public static void main(String[] args) throws IOException {
char opcion;
BufferedReader in =
new BufferedReader(new InputStreamReader(System.in));
arreglo = null;
opcion = „ „;
while (opcion != „5‟) {
System.out.println(“ Menu de Cuentas”);
System.out.println();
System.out.println(“1. Pedir datos para crear Cuentas”);
System.out.println(“2. Desplegar todas las cuentas”);
System.out.println(“3. Desplegar Suma de los saldos”);
System.out.println(“4. Desplegar Promedio de los saldos”);
System.out.println(“5. Fin”);
System.out.println(“¿Opcion deseada (1-5) ?”);
opcion = in.readLine().charAt(0);
switch (opcion) {
case („1‟) :
System.out.println(“Pidiendo datos arreglo Cuentas”);
pide_arreglo();
System.out.println(“ “ + arreglo.length);
break;
case („2‟) :
System.out.println(“Desplegando arreglo de Cuentas”);
despliega_arreglo();
break;
case („3‟) :
System.out.println(“Suma de los saldos = “ + suma());
break;
case („4‟) :
System.out.println(“Promedio de los saldos = “ + promedio());
break;
case („5‟) :
System.out.println(“Hasta Luego!”);
break;
default:
System.out.println(“Opcion debe ser de 1 a 5”);
break;
};
}
}
}
Entre lo que despliega esta aplicación tenemos
Opción 1.-
Opción 2.-
Opción 3.-
Opción 4.-
Y finalmente opción 5.-
Observemos como en el método para sumar los saldos, pudimos haber utilizado la forma
rudimentaria para tomar cada uno de los elementos del arreglo, a través del índice:
for (int i=0; i<arreglo.length; i++) {
Cuenta objeto = arreglo[i];
total += objeto.obtenSaldo();
}
Pero en Java versión 1.5 Se puede utilizar la forma:
for (Cuenta objeto : arreglo) {
total += objeto.obtenSaldo();
}
En esta nueva versión del for, el objeto de la clase Cuenta va tomando cada uno de los
objetos del arreglo y entra al for, para sumar su saldo a total.

Weitere ähnliche Inhalte

Was ist angesagt?

Arreglos en c ++
Arreglos en c ++Arreglos en c ++
Arreglos en c ++tacubomx
 
Bucles compuestos ejercicios en código java
Bucles compuestos ejercicios en código javaBucles compuestos ejercicios en código java
Bucles compuestos ejercicios en código javaFanny Lorenzo Quilla
 
Arreglo bidimensional ejercicio
Arreglo bidimensional ejercicioArreglo bidimensional ejercicio
Arreglo bidimensional ejercicioKeevynMoreno
 
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)luis freddy
 
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)luis freddy
 
3 desarollo manejo datos capitulo 2 -03 aplicaciones arreglos dos dime
3 desarollo manejo datos capitulo 2 -03 aplicaciones arreglos dos dime3 desarollo manejo datos capitulo 2 -03 aplicaciones arreglos dos dime
3 desarollo manejo datos capitulo 2 -03 aplicaciones arreglos dos dimeluis freddy
 
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime (3)
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime (3)3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime (3)
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime (3)luis freddy
 

Was ist angesagt? (9)

Arreglos en c ++
Arreglos en c ++Arreglos en c ++
Arreglos en c ++
 
arreglos y matrices
arreglos  y matricesarreglos  y matrices
arreglos y matrices
 
Bucles compuestos ejercicios en código java
Bucles compuestos ejercicios en código javaBucles compuestos ejercicios en código java
Bucles compuestos ejercicios en código java
 
Arreglo bidimensional ejercicio
Arreglo bidimensional ejercicioArreglo bidimensional ejercicio
Arreglo bidimensional ejercicio
 
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (5)
 
Clase2
Clase2Clase2
Clase2
 
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
3 desarollo manejo datos capitulo 2 -01 arreglos dos dimensiones (2)
 
3 desarollo manejo datos capitulo 2 -03 aplicaciones arreglos dos dime
3 desarollo manejo datos capitulo 2 -03 aplicaciones arreglos dos dime3 desarollo manejo datos capitulo 2 -03 aplicaciones arreglos dos dime
3 desarollo manejo datos capitulo 2 -03 aplicaciones arreglos dos dime
 
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime (3)
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime (3)3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime (3)
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime (3)
 

Ähnlich wie 3 desarollo manejo datos capitulo 3 -01 arreglo objetos

3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones
3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones
3 desarollo manejo datos capitulo 4 -02 aplicaciones coleccionesluis freddy
 
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)Videoconferencias UTPL
 
Tips componentes swing_v5
Tips componentes swing_v5Tips componentes swing_v5
Tips componentes swing_v5ggzhack
 
Taller de repaso de metodos y arreglos
Taller de repaso de metodos y arreglosTaller de repaso de metodos y arreglos
Taller de repaso de metodos y arreglosDiroplan
 
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)luis freddy
 
Informe tecnico victor_uex
Informe tecnico victor_uexInforme tecnico victor_uex
Informe tecnico victor_uexvictoruex
 
SCJP, Clase 3: Asignaciones
SCJP, Clase 3: AsignacionesSCJP, Clase 3: Asignaciones
SCJP, Clase 3: Asignacionesflekoso
 
Intro aplicaciones web con php
Intro aplicaciones web con phpIntro aplicaciones web con php
Intro aplicaciones web con phpFer Nando
 
Informe técnico 1
Informe técnico 1Informe técnico 1
Informe técnico 1Saya Paredes
 
U5. Arreglos de Objetos.pdf
U5. Arreglos de Objetos.pdfU5. Arreglos de Objetos.pdf
U5. Arreglos de Objetos.pdfTareasEMI
 
Agregación Composición
Agregación ComposiciónAgregación Composición
Agregación ComposiciónFernando Solis
 

Ähnlich wie 3 desarollo manejo datos capitulo 3 -01 arreglo objetos (20)

3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones
3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones
3 desarollo manejo datos capitulo 4 -02 aplicaciones colecciones
 
C# calculadora
C# calculadoraC# calculadora
C# calculadora
 
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
 
Presentacion
PresentacionPresentacion
Presentacion
 
Java básico
Java  básicoJava  básico
Java básico
 
Tips componentes swing_v5
Tips componentes swing_v5Tips componentes swing_v5
Tips componentes swing_v5
 
Taller de repaso de metodos y arreglos
Taller de repaso de metodos y arreglosTaller de repaso de metodos y arreglos
Taller de repaso de metodos y arreglos
 
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
3 desarollo manejo datos capitulo 1 -01 arreglos de dimension (6)
 
Separata java script
Separata java scriptSeparata java script
Separata java script
 
Informe tecnico victor_uex
Informe tecnico victor_uexInforme tecnico victor_uex
Informe tecnico victor_uex
 
SCJP, Clase 3: Asignaciones
SCJP, Clase 3: AsignacionesSCJP, Clase 3: Asignaciones
SCJP, Clase 3: Asignaciones
 
Informe tecnico
Informe tecnicoInforme tecnico
Informe tecnico
 
Arrays unidimensionales
Arrays unidimensionalesArrays unidimensionales
Arrays unidimensionales
 
Intro aplicaciones web con php
Intro aplicaciones web con phpIntro aplicaciones web con php
Intro aplicaciones web con php
 
Taller 1 6
Taller 1 6Taller 1 6
Taller 1 6
 
Taller 1 6
Taller 1 6Taller 1 6
Taller 1 6
 
Informe técnico 1
Informe técnico 1Informe técnico 1
Informe técnico 1
 
U5. Arreglos de Objetos.pdf
U5. Arreglos de Objetos.pdfU5. Arreglos de Objetos.pdf
U5. Arreglos de Objetos.pdf
 
Java 1
Java 1Java 1
Java 1
 
Agregación Composición
Agregación ComposiciónAgregación Composición
Agregación Composición
 

Mehr von luis freddy

3 desarollo manejo datos capitulo 4 -01 introduccion colecciones
3 desarollo manejo datos capitulo 4 -01 introduccion colecciones3 desarollo manejo datos capitulo 4 -01 introduccion colecciones
3 desarollo manejo datos capitulo 4 -01 introduccion coleccionesluis freddy
 
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dimeluis freddy
 
3 desarollo manejo datos capitulo 1 -03 aplicaciones con arreglos (2)
3 desarollo manejo datos capitulo 1 -03 aplicaciones con arreglos (2)3 desarollo manejo datos capitulo 1 -03 aplicaciones con arreglos (2)
3 desarollo manejo datos capitulo 1 -03 aplicaciones con arreglos (2)luis freddy
 
3 desarollo manejo datos capitulo 1 -02 operaciones con arreglos (3)
3 desarollo manejo datos capitulo 1 -02 operaciones con arreglos (3)3 desarollo manejo datos capitulo 1 -02 operaciones con arreglos (3)
3 desarollo manejo datos capitulo 1 -02 operaciones con arreglos (3)luis freddy
 

Mehr von luis freddy (6)

3 desarollo manejo datos capitulo 4 -01 introduccion colecciones
3 desarollo manejo datos capitulo 4 -01 introduccion colecciones3 desarollo manejo datos capitulo 4 -01 introduccion colecciones
3 desarollo manejo datos capitulo 4 -01 introduccion colecciones
 
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime
3 desarollo manejo datos capitulo 2 -02 operaciones arreglos dos dime
 
3 desarollo manejo datos capitulo 1 -03 aplicaciones con arreglos (2)
3 desarollo manejo datos capitulo 1 -03 aplicaciones con arreglos (2)3 desarollo manejo datos capitulo 1 -03 aplicaciones con arreglos (2)
3 desarollo manejo datos capitulo 1 -03 aplicaciones con arreglos (2)
 
3 desarollo manejo datos capitulo 1 -02 operaciones con arreglos (3)
3 desarollo manejo datos capitulo 1 -02 operaciones con arreglos (3)3 desarollo manejo datos capitulo 1 -02 operaciones con arreglos (3)
3 desarollo manejo datos capitulo 1 -02 operaciones con arreglos (3)
 
Semaforo555
Semaforo555Semaforo555
Semaforo555
 
La robotica pp
La robotica ppLa robotica pp
La robotica pp
 

3 desarollo manejo datos capitulo 3 -01 arreglo objetos

  • 1. Arreglos de Objetos Los objetos también pueden ser utilizados como elementos de un arreglo o de una matriz, pero su uso tiene que ser más cuidadoso que el de un dato primitivo (int, double, char, etc), pues un objeto contiene valores y métodos que toma de la clase que lo representa. Un arreglo de una dimensión de objetos se define como: Clase nombre_arreglo [] = new Clase[tamaño]; Un arreglo de dos dimensiones de objetos se define como: Clase nombre_arreglo [][] = new Clase[tamaño-renglones][tamaño-columnas]; Algunos ejemplos pueden ser: //define un arreglo de 10 objetos de la clase Cuenta Cuenta arreglo[] = new Cuenta[10]; //define un arreglo de 3 renglones y 4 columnas de la clase Persona Persona arreglo[][] = new Persona[3][4]; Supongamos que queremos utilizar una aplicación sencilla para tomar datos y crear objetos en un arreglo de la clase Cuenta, podríamos utilizar la siguiente aplicación: Clase Cuenta public class Cuenta { private String nombre; // nombre del cliente private int numero; // numero de la cuenta private double saldo; // saldo de la cuenta // método para construir una cuenta vacía public Cuenta() { nombre = “”; numero = 0; saldo = 0.0d; } // método para construir una cuenta con valores public Cuenta(int numero, String nombre, double saldo) { this.nombre = nombre; this.numero = numero; this.saldo = saldo; } III. Desarrollo de aplicaciones con manejo de datos en la memoria
  • 2. // método que te dá el nombre de la cuenta public String obtenNombre() { return nombre; } // método que te dá el número de la cuenta public int obtenNumero() { return numero; } // método que te dá el saldo de una cuenta public double obtenSaldo() { return saldo; } // método que sirve para cambiar el valor del nombre public void cambiaNombre(String nombre) { this.nombre = nombre; } // método que sirve para cambiar el valor del saldo public void cambiaNumero(int numero) { this.numero = numero; } // método que sirve para cambiar el valor del saldo public void cambiaSaldo(double saldo) { this.saldo = saldo; } // método para depositar public void deposita(double cantidad) { cambiaSaldo(obtenSaldo() + cantidad); } // método para retirar public boolean retira(double cantidad) { if (cantidad <= obtenSaldo()) { cambiaSaldo(obtenSaldo() - cantidad); return true; } return false; } } Clase de la Aplicación import java.io.*; public class AplicacionArrObjeto1 { private static Cuenta arreglo[]; // para pedir los valores de teclado de el arreglo de cuentas ya creada public static void pide_arreglo() throws IOException{
  • 3. BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); int n; int numero; String nombre; double saldo; System.out.println(“¿Cuantos objetos deseas crear?”); n = Integer.parseInt(in.readLine()); // creamos el arreglo de cuentas arreglo = new Cuenta[n]; // pedimos cada valor para crear un objeto cuenta for (int i=0; i<n; i++) { System.out.print(“Da el numero de la cuenta “ + (i+1)+ “ : “); numero = Integer.parseInt(in.readLine()); System.out.print(“Da el nombre de la cuenta “ + (i+1)+ “ : “); nombre = in.readLine(); System.out.print(“Da el saldo de la cuenta “ + (i+1)+ “ : “); saldo = Double.parseDouble(in.readLine()); // se crea el objeto de la clase Cuenta como elemento del arreglo arreglo [i] = new Cuenta(numero, nombre, saldo); } } // para desplegar los datos del arreglo de cuentas public static void despliega_arreglo() { System.out.println(“Numero Nombre Saldo”); for (Cuenta objeto:arreglo) { System.out.println(“ “ + objeto.obtenNumero() + “ “ + objeto.obtenNombre() + “ “ + objeto.obtenSaldo()); } } // obteniendo la suma de los saldos de todas las cuentas public static double suma() { double total = 0.0d; for (int i=0; i<arreglo.length; i++) { Cuenta objeto = arreglo[i]; total += objeto.obtenSaldo(); } return total; } // para calcular el promedio de la matriz cualquiera que sea public static double promedio() { double total = 0.0d; for (int i=0; i<arreglo.length; i++) { Cuenta objeto = arreglo[i]; total += objeto.obtenSaldo(); } return total/arreglo.length;
  • 4. } public static void main(String[] args) throws IOException { char opcion; BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); arreglo = null; opcion = „ „; while (opcion != „5‟) { System.out.println(“ Menu de Cuentas”); System.out.println(); System.out.println(“1. Pedir datos para crear Cuentas”); System.out.println(“2. Desplegar todas las cuentas”); System.out.println(“3. Desplegar Suma de los saldos”); System.out.println(“4. Desplegar Promedio de los saldos”); System.out.println(“5. Fin”); System.out.println(“¿Opcion deseada (1-5) ?”); opcion = in.readLine().charAt(0); switch (opcion) { case („1‟) : System.out.println(“Pidiendo datos arreglo Cuentas”); pide_arreglo(); System.out.println(“ “ + arreglo.length); break; case („2‟) : System.out.println(“Desplegando arreglo de Cuentas”); despliega_arreglo(); break; case („3‟) : System.out.println(“Suma de los saldos = “ + suma()); break; case („4‟) : System.out.println(“Promedio de los saldos = “ + promedio()); break; case („5‟) : System.out.println(“Hasta Luego!”); break; default: System.out.println(“Opcion debe ser de 1 a 5”); break; }; } } } Entre lo que despliega esta aplicación tenemos Opción 1.-
  • 6. Opción 4.- Y finalmente opción 5.- Observemos como en el método para sumar los saldos, pudimos haber utilizado la forma rudimentaria para tomar cada uno de los elementos del arreglo, a través del índice: for (int i=0; i<arreglo.length; i++) { Cuenta objeto = arreglo[i]; total += objeto.obtenSaldo(); } Pero en Java versión 1.5 Se puede utilizar la forma: for (Cuenta objeto : arreglo) { total += objeto.obtenSaldo(); } En esta nueva versión del for, el objeto de la clase Cuenta va tomando cada uno de los objetos del arreglo y entra al for, para sumar su saldo a total.