Atribut ArrayList en Una Classe

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

Atribut d’una classe com a col·lecció d’objectes

Fins ara heu posat com a atribut d’una classe tipus de dades com String, int, etc i també de tipis de classe,
per exemple en l’exercici de l’hotel teníem com a atributs de Reserva els tipus Cliente i el tipus Habitación
public class Reserva {
private Cliente _cliente;
private Habitacion _habitacion;

Ara afegirem que un atribut sigui un ArrayList.

Fixeu-vos en l’exemple en Java ReproductorBasic que teniu disponible en el classroom.

La idea d’aquest exemple és que tenim una classe Audio.java, en aquesta classe tenim els atributs sobre la
informació d’un fitxer de tipus àudio.
public class Audio {
private String titol;
private String autor;
private int qualitat; // Qualitat audio (kbps)
private long temps; // temps en segons

Ara afegim una classe CD.java.

Un CD té un títol i té un conjunt de cançons, com ja sabeu un CD té n cançons, uns CDs en tenen més que
d’altres, per tant, Com emmagatzemem les cançons o àudios dins d’una classe CD?, doncs en un ArrayList.
public class CD {
private String titol;
private ArrayList<Audio> audioList;

Fixeu-vos en el constructor de la classe CD.java, tingueu en compte que el constructor s’executa en el


moment de fer el new, per exemple:

CD cd = new CD("I Still Do");

Per tant quan s’executi el constructor s’ha de crear l’ArrayList, tal i com es mostra a continuació
public CD(String titol) {
this.titol = titol;
audioList = new ArrayList<Audio>(25);
}

1
Ara bé, Com afegirem l’àudio dins de l’ArrayList de la classe CD?

Doncs he creat un mètode dins de la classe CD.java.


public void afegirAudio(Audio audio) {
this.audioList.add(audio);
}

Recordeu que audioList és un atribut de tipus ArrayList, per tant podem fer servir el mètode add de
l’ArrayList.

Mireu l’exemple de la classe appReproductorBasic.java

Tenint en compte la declaració de les variables següents:


Audio audio;
CD cd;
AlbumCD albumCD;

Primer fem una instància de la classe CD.java i l’hi posem un títol. Recordeu que en el constructor de la classe
CD es crea l’ArrayList, de moment es crea buit, sense objectes dins.
cd = new CD("Just One Night");

Desprès creem una instància de la classe Audio.java i li posem els valors que corresponen al títol, autor,
qualitat i temps de duració.
audio = new Audio("Tulsa Time", "Eric Clapton", 320, 300);

Com posarem aquest àudio dins de l’ArrayList del CD?

Recordeu que he creat un mètode a la classe CD que es diu afegirAudio


cd.afegirAudio(audio);

Aquesta operació la fem servir tantes vegades com sigui necessari, és dir per a cada àudio que volem posar
dins d’un CD. (mireu l’exemple a appReproductorBasic.java)

Ara volem crear un Àlbum de CDs, podem entendre un Àlbum com una col·lecció de CDs que volem agrupar,
per exemple per Autor, per gènere de música, etc.

Així doncs afegim la classe AlbumCD.java amb els atributs següents:


public class AlbumCD {
private String titol;
private ArrayList<CD> cdList;

2
Si us fixeu he creat un atribut que és de tipus ArrayList per a emmagatzemar-hi objectes de tipus CD.

La tècnica és la mateixa, en el constructor es crea l’ArrayList


public AlbumCD(String titol) {
this.titol = titol;
cdList = new ArrayList<CD>(25);
}

i per afegir objectes de tipus CD dins de l’ArrayList de la classe AlbumCD, doncs he creat el mètode afegirCD
public void afegirCD(CD cd) {
this.cdList.add(cd);
}

Ara tornem a l’exemple de la classe appReproductorBasic.java

Fem una instància de la classe AlbumCD i li posem un títol


albumCD = new AlbumCD("Col·lecció CDs d'Eric Clapton");

ara posem el CD que hem creat abans, dins de l’ArrayList de la classe AlbumCD
albumCD.afegirCD(cd);

Si us fixeu en l’exemple de la classe appReproductorBasic.java

Podeu observar que he creat 8 àudios, que estan repartits en dos CDs, i aquests dos CDs estan en un àlbum.

Podeu observar com he fet els toString????

You might also like