13.07.2015 Views

Perl 语言编程 - Linux教程

Perl 语言编程 - Linux教程

Perl 语言编程 - Linux教程

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

my $class = ref($invocant) || $invocant;# 对 象 或 者 类 名 字my $self = { };bless ($self, $class);return $self;}12.4.2 初 始 器大 多 数 对 象 维 护 的 信 息 是 由 对 象 的 方 法 间 接 操 作 的 。 到 目 前 为 止 我 们 的 所 有 构 造 器 都 创 建 了空 散 列 , 但 是 我 们 没 有 理 由 让 它 们 这 么 空 着 。 比 如 , 我 们 可 以 让 构 造 器 接 受 额 外 的 参 数 , 并且 把 它 们 当 作 键 字 / 数 值 对 。 有 关 OO 的 文 章 常 把 这 样 的 数 据 称 为 " 所 有 "," 属 性 "," 访 问者 "," 成 员 数 据 "," 实 例 数 据 " 或 者 " 实 例 变 量 " 等 。 本 章 稍 后 的 “ 实 例 变 量 ” 节 详 细 地 讨 论 这些 属 性 。假 设 一 个 Horse 类 有 一 些 实 例 属 性 , 比 如 "name" 和 "color":$steed = Horse->new(name => "shadowfax", color => "white");如 果 该 对 象 是 用 散 列 引 用 实 现 的 , 那 么 一 旦 调 用 者 被 从 参 数 列 表 里 删 除 , 那 么 键 字 / 数 值 对就 可 以 直 接 代 换 进 散 列 :sub new {my $invocant = shift;my $class = ref($invocant) || $invocant;my $self = { @_ };bless($self, $class);# 剩 下 的 参 数 变 成 属 性# 给 予 对 象 性 质return $self;}这 回 我 们 用 一 个 名 字 叫 new 的 方 法 做 该 类 的 构 造 器 , 这 样 就 可 以 把 那 些 C++ 程 序 员 哄得 相 信 这 些 都 是 正 常 的 。 不 过 <strong>Perl</strong> 可 不 认 为 “new” 有 任 何 特 殊 的 地 方 ; 你 可 以 把 你 的 构 造器 命 名 为 任 意 的 东 西 。 任 何 碰 巧 创 建 和 返 回 一 个 对 象 的 方 法 都 是 实 际 上 的 构 造 器 。 通 常 , 我们 建 议 你 把 你 的 构 造 器 命 名 为 任 何 在 你 解 决 的 问 题 的 环 境 中 有 意 义 的 东 西 。 比 如 , 在 Tk 模块 中 的 构 造 器 命 名 为 它 们 创 建 的 窗 口 构 件 。 在 DBI 模 块 里 , 一 个 叫 connect 的 构 造 器 返296

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!