Leser: 11
|< 1 2 >| | 11 Einträge, 2 Seiten |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# basisobjekt
my $mitarb1 = mitarbreiter->new(
'name','hans',
'birth','20.11.1969'
);
# folgendes objekt soll die eigenschaften von $mitarb1 erben
# d.h. auch im objekt $mitarb1_erw1 sollen die eigenschaften
# 'name' und 'birth' zur verfügung stehen
my $mitarb1_erw1 = mitarbreiter_abt_verwaltung->new(
'position','sachbearbeiter'
);
# gewueschtes resultat
print $mitarb1_erw1->get('name');
# -> hans
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package BasisKlasse;
use strict;
use warnings;
sub new{
my ($class,%args) = @_;
my $self = {};
bless $self,$class;
$self->{Name} = $args{name} || "testname";
$self->{Birthday} = $args{birth} || "00.00.0000";
return $self;
}
sub name{
my ($self,$name) = @_;
$self->{Name} = $name if(defined $name);
return $self->{Name};
}
sub birth{
my ($self,$birth) = @_;
$self->{Birthday} = $birth if(defined $birth);
return $self->{Birthday};
}
1;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package AbgeleiteteKlasse;
use strict;
use warnings;
use base qw(BasisKlasse);
sub new{
my ($class,%args) = @_;
my $self = $class->SUPER::new(%args);
$self->{Position} = $args{position} || "Angestellter";
return $self;
}
sub position{
#... mach was
}
1;
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/perl
use strict;
use warnings;
use lib qw(.);
use AbgeleiteteKlasse;
my $mitarbeiter = AbgeleiteteKlasse->new(name => 'Rainer', birth => '12.12.1947',position => 'Sachbearbeiter');
print "Name: ",$mitarbeiter->name(),"\n",
"Geburtsdatum: ",$mitarbeiter->birth(),"\n";
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# konfigurationsobjekt
my $mitarb1 = mitarbreiter->new(
'name','hans',
'birth','20.11.1969'
);
my @attr = $mitarb1->get_attributes();
# objekt mit einigen eigenschaften vom konfigurationsobjekt
my $mitarb1_erw1 = mitarbreiter_abt_verwaltung->new(
@attr,
'position','sachbearbeiter'
);
# gewueschtes resultat
print $mitarb1_erw1->get('name');
# -> hans
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package Irgendwas::Level::20;
use warnings;
use strict;
use Carp;
use base qw(Irgendwas::Level);
sub new {
my ($class, @properties) = @_;
unless (0 == scalar(@properties) % 2) { # oder so aehnlich
croak "Usage: Class->new(key1 => value1, key2 => value2)\n"
} # unless
my $self = {};
bless ($self, $class);
if ($self->SUPER::can('new')) {
$self->SUPER::new(@properties);
} # if
$self->_initialize(@properties);
return $self;
} # new
1
2
3
4
5
6
7
8
9
my %a = (haarschnitt => 'kurz',
auto => 'mercedes',
);
my %b = (auto => 'trabant',
augen => 'treu'
);
my %c = (%a, %b);
use Data::Dumper;
print Dumper \%c;
|< 1 2 >| | 11 Einträge, 2 Seiten |