You are on page 1of 5

Arreglos de objetos

I Suponga que tenemos la siguiente simple clase para


representar cursos.
class Curso
{
private String sigla;
private int creditos;

public Curso(String sig, int cred)


{
sigla = sig;
creditos = cred;
}

public int Creditos()


{
return creditos;
}

public String Sigla()


{
return sigla;
}
}

Jorge Pérez – Programación Orientada a Objetos en JAVA 52 / 57


Arreglos de objetos

I Supangamos queremos tener una clase Alumno a la que


podamos asignarle varios objetos de tipo Curso.
I La clase Alumno deberı́a contener un arreglo de objetos
Cursos.
I Tal como definı́amos arreglos para tipos simples en JAVA
podemos hacer arreglos de objetos.
I Por ejemplo, para crear un arreglo llamado cursos de 5
(referencias a) cursos debemos hacer:
Curso[] cursos = new Curso[5];

I Ahora podrı́amos a cada curso[i] asignarle un objeto de tipo


curso, ya sea uno previamente creado, o uno nuevo
Curso c1 = new Curso("ing1310", 10);
cursos[0] = c1;
cursos[2] = c1;
cursos[1] = new Curso("ing1320", 15);

Jorge Pérez – Programación Orientada a Objetos en JAVA 53 / 57


Arreglos de objetos
Curso c1 = new Curso("ing1310", 10);
cursos[0] = c1;
cursos[2] = c1;
cursos[1] = new Curso("ing1320", 15);

I Despues de que creamos un arreglo de objetos y asignamos


ciertos objetos a cada componente, podemos usar los
métodos/atributos de cada objeto tal como un objeto
cualquiera.
I Dado que por ejemplo cursos[1] es un objeto de la clase
Curso podemos hacer
cursos[1].Creditos();

para obtener los créditos del curso con ı́ndice 1.


I Siguiendo el ejemplo anterior, qué imprime este trozo de
código?:
System.out.println(cursos[2].Creditos());
System.out.println(cursos[1].Creditos());
System.out.println(cursos[0].Creditos());

Jorge Pérez – Programación Orientada a Objetos en JAVA 54 / 57


Arreglos de objetos
I Ahora podriamos tener una clase Alumno como la siguiente:
class Alumno
{
String nombre;

private Curso[] cursos;

private int cantidadCursos;

private int maximaCantidadCursos;

public Alumno(String nom)


{
nombre = nom;
cantidadCursos = 0;
maximaCantidadCursos = 6;
cursos = new Curso[maximaCantidadCursos];
}

....

I Donde maximaCantidadCursos indica la máxima cantidad


permitida de cursos que puede tener asignado un alumno, y
I cantidadCursos representa la cantidad de cursos que
actualmente tiene adignado el alumno.
Jorge Pérez – Programación Orientada a Objetos en JAVA 55 / 57
Arreglos de objetos

I Ejercicio: complete la clase Alumno con los siguientes


métodos:
I public boolean TieneCurso(Curso c) que entrega true
si el alumno ya tiene asignado un curso en particular, y false
en otro caso.
I public void AsignaCurso(Curso c) para asignar un nuevo
curso al alumno.
I public int CantidadTotalCreditos() que entrega la
cantidad total de créditos del alumno.
I public void ImprimeListaCursos() para imprimir una
lista de toda la info de los cursos asignados al alumno.
I public void EliminaCurso(Curso c) para eliminar un
curso particular, previamente asignado al alumno (este método
es difı́cil porque se debe mantener la consistencia interiro del
objeto).

Jorge Pérez – Programación Orientada a Objetos en JAVA 56 / 57

You might also like