Naast het gebruik van een array om de lijst met nummers bij te houden in de klasse PlayList, worden in dit voorbeeld ook arrays gebruikt in de klasse Song als hulpmiddel bij het beheer van de lijst met genres waartoe een bepaald nummer behoort. Bekijk het volgende fragment uit de definitie van de klasse Song:
private var _genres:String;
public function Song(title:String, artist:String, year:uint, filename:String, genres:Array)
{
...
// Genres are passed in as an array
// but stored as a semicolon-separated string.
this._genres = genres.join(";");
}
Wanneer een nieuwe instantie Song wordt gemaakt, wordt de parameter
genres
voor het opgeven van het genre (of de genres) van het nummer gedefinieerd als een instantie van het type Array. Dit maakt het gemakkelijker om meerdere genres te groeperen in één variabele die aan de constructor kan worden doorgegeven. Intern houdt de klasse Song de genres echter bij in de variabele van het type private
_genres
als instantie van het type String met een puntkomma als scheidingsteken. De parameter Array wordt omgezet in een tekenreeks met een puntkomma als scheidingsteken door de bijbehorende methode
join()
aan te roepen met de letterlijke tekenreekswaarde
";"
als opgegeven scheidingsteken.
Op dezelfde manier kunnen met de accessors van het type
genres
genres worden ingesteld of opgevraagd als Array:
public function get genres():Array
{
// Genres are stored as a semicolon-separated String,
// so they need to be transformed into an Array to pass them back out.
return this._genres.split(";");
}
public function set genres(value:Array):void
{
// Genres are passed in as an array,
// but stored as a semicolon-separated string.
this._genres = value.join(";");
}
De accessor
genres
set
gedraagt zich op precies dezelfde manier als de constructor: hij accepteert een Array en roept de methode
join()
aan voor de omzetting in een tekenreeks met een puntkomma als scheidingsteken. De accessor
get
voert een tegenovergestelde bewerking uit: de methode
split()
van de variabele
_genres
wordt aangeroepen, waardoor de String wordt opgedeeld in een array van waarden met het opgegeven scheidingsteken (dezelfde letterlijke tekenreekswaarde
";"
als daarvoor).