13.07.2015 Views

Perl 语言编程 - Linux教程

Perl 语言编程 - Linux教程

Perl 语言编程 - Linux教程

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

多 数 情 况 下 是 不 需 要 这 么 做 的 , 因 为 大 多 数 类 都 把 它 们 的 对 象 的 属 性 保 存 在 一 个 匿 名 散 列 表里 。 对 象 的 实 例 数 据 保 存 在 这 个 散 列 表 里 , 这 个 散 列 表 也 是 该 对 象 自 己 的 小 名 字 空 间 , 用 以划 分 哪 个 类 对 该 对 象 进 行 了 哪 些 操 作 。 比 如 , 如 果 你 希 望 一 个 叫 $city 的 对 象 有 一 个 数 据域 名 字 叫 elevation, 你 可 以 简 单 地 $city->{elevation} 这 样 访 问 它 。 可 以 不 用 声 明 。方 法 的 封 装 会 为 你 做 这 些 。假 设 你 想 实 现 一 个 Person 对 象 。 你 决 定 它 有 一 个 叫 “name” 的 数 据 域 , 因 为 某 种 奇 怪 的一 致 性 原 因 , 你 将 把 它 按 照 键 字 name 保 存 在 该 匿 名 散 列 表 里 , 该 散 列 表 就 是 为 这 个 对 象服 务 的 。 不 过 你 不 希 望 用 户 直 接 修 改 数 据 。 要 想 获 得 封 装 的 优 点 , 用 户 需 要 一 些 方 法 来 访 问该 实 例 变 量 , 而 又 不 用 揭 开 抽 象 的 面 纱 。比 如 , 你 可 能 写 这 样 的 一 对 访 问 方 法 :sub get_name {my $self = shift;return $self ->{name};}sub set_name {my $self = shift;$self->{name} = shift;}它 们 会 导 致 下 面 的 代 码 的 形 成 :$him = Person->new();$him->set_name("Laser");$him->set_name( ucfirst($him->get_name) );你 甚 至 可 以 把 两 个 方 法 组 合 成 一 个 :sub name {my $self = shift;311

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

Saved successfully!

Ooh no, something went wrong!