【发布时间】:2020-10-25 14:13:01
【问题描述】:
我正在研究一个大学问题(在 Perl 中)。我们正在创建模块,我需要编写一个简单的模块,该模块“具有四个属性的 get/set 方法:lastname、firstname、full_name 和一个子对象列表”。
我想我已经把它记下来了,但让我感到震惊的是那些也是人的孩子的名单。我猜模块需要接受一个列表然后创建一个对象列表? Python 是我的核心语言,所以这个语言让我很吃惊。 get/set 方法工作正常。有什么想法吗?
我的模块在这里...
#!/usr/bin/perl
package Person;
sub new
{
my $class = shift;
my $self = {
_firstName => shift,
_lastName => shift,
};
bless $self, $class;
return $self;
}
sub setFirstName {
my ( $self, $firstName ) = @_;
$self->{_firstName} = $firstName if defined($firstName);
return $self->{_firstName};
}
sub getFirstName {
my( $self ) = @_;
return $self->{_firstName};
}
sub setLastName {
my ( $self, $lastName ) = @_;
$self->{_lastName} = $lastName if defined($lastName);
return $self->{_lastName};
}
sub getLastName {
my( $self ) = @_;
return $self->{_lastName};
}
sub getFullName {
my( $self ) = @_;
return $self->{_lastName}.",".$self->{_firstName};
}
1;
我的代码在这里.....
#!/usr/bin/perl
use Person;
$object = new Person("Elvis","Presley");
# Get first name which is set using constructor.
$firstName = $object->getFirstName();
$lastName = $object->getLastName();
$fullname = $object->getFullName();
print "(Getting) First Name is : $firstName\n";
print "(Getting) Last Name is: $lastName\n";
print "(Getting) Full Name is: $fullname\n";
【问题讨论】:
-
“我猜模块需要接受一个列表,然后创建一个对象列表?” 如果你传递一个
Person对象列表,那么就没有什么可做的了创造。您的对象需要另一个字段,_children,它是一个数组。您可以在构造函数_children => []中使用空数组对其进行初始化,并使用另一个setter 将其添加到其中。您将以与创建$object相同的方式创建多个子代,并为它们分配类似$object->setChildren($kid1, $kid2, $kid3)