Array i klasse
- To: sslug@sslug
- Subject: Array i klasse
- From: Jan Eggert Kofoed <sslug@sslug>
- Date: Sat, 21 Sep 2002 15:31:47 +0200
- Newsgroups: sslug.perl
- Organization: SSLUG
- User-agent: Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.0.1) Gecko/20020826
Jeg har en klasse (Album i Album.pm)
hvor jeg ønsker at have et array (Grupper, som optræder på et album).
Jeg har implementeret en metode (albumartist) som kan indsætte
et element i et array, som jeg har lagt 'uden for klassen',
dvs. uden for den hash, som initialiseres i constructor new.
Det ser ud til at virke efter hensigten, men jeg kunne godt tænke mig
* at forstå objektorientering i Perl lidt bedre
* at have en klasse, som ligner andre objektorienterede sprog.
Min løsning, se eksemplet (uddrag fra mit projekt) nedenfor,
vil ikke tillade data-hiding, dvs. flere instantieringer af Album,
antageligvis?
Hvordan kan jeg gemme et array i en klasse?
Hvordan kan jeg tilgå (indsætte/hente data) arrayet?
Jeg har ikke kunnet finde eksempler i mine bøger
eller i ActivePerl's dokumentation.
-------------------
# $Header$
package Album;
use strict;
use Group;
my @_groups = (); # first [0] is album artist, rest is tracks [t]
sub new
{
my $self = shift;
my $r_Album =
{
"_name" => undef,
"_id" => undef,
"_dbname" => undef,
"_released" => undef,
"_albumartist" => undef
};
bless $r_Album;
return $r_Album;
} # constructor
sub albumartist
{
my $self = shift;
if (@_)
{
$self->{_albumartist} = shift;
$_groups[0] = Group->new();
print "scalar(_groups)=".scalar(@_groups)."\n";
}
return $self->{_albumartist};
} # albumartist
-------------------
mvh
Jan Eggert Kofoed
 |
 |
 |
| |
|
|
 |
| |
|
Henvendelse vedrørende websiderne til <www_admin>.
|
Senest ændret
2005-08-10, klokken 19:54
Denne side vedligeholdes af
MHonArc
.
|
|
|
 |
 |
 |