正在加载图片...
隐藏实现 将程序员分成类的创建者(c| ass creator那些创建新的数据类型的人)和 客户程序员( client programmer那些使用这些类编程的人)能帮助我 们更好地理解这个问题。客户程序员的目的是收集各种类,以便能快速开 发应用程序。而类的创建者的目的是创建一些这样的类,它们只透露一些 客户程序员必须知道的东西,其它部分则被完全隐藏了。为什么?因为隐 藏之后,客户程序员就不能访问了,也就是说类的创建者们可以根据需要 修改隐藏部分而不用担心会对其他人造成影响。通常隐藏起来的都是这个 类最脆弱的,很容易被粗心大意或不知情的客户程序员给弄坏的内脏部 分,所以把实现隐藏起来能减少程序的bug 隐藏实现,这一概念的重要性无论如何强调都不会过分。无论是那种关 系,有一个为各方都尊重的边界是非常重要的。创建一个类库之后,你就 与客户程序员建立了某种关系。他们也是程序员,他们用你的类库来组装 一个应用程序,也可能是一个更大的类库。如果所有人都能看到类的所有 成员,那么客户程序员就能对这个类作任何事,因此也谈不上什么强制性 的规则了。尽管你真的不想让客户程序员直接操控类中的某些成员,但是 如果没有访问控制的话,你也没办法禁止他去这么做。这个类只能赤裸裸 地面对整个世界。 所以要控制访问权限的首要原因就是,禁止那些客户程序员去碰他们不该 动的东西——就是那些数据类型内部运作所必须的东西。只允许他们接触 解决问题所必需的接口。实际上这也是提供给用户的一种服务,因为由此 他们能很方便的看出哪些东西对他们很重要,哪些跟他们没关系 第二个原因是允许类库设计人员能在不打搅客户程序员的情况下修改类的 内部工作方式。比如,刚开始设计这个类的时候时,为了降低开发难度, 你用了一种很简单的方法,但随后你发觉应该重写这段代码,让跑得快 些。如果这个类的接口与实现分得很清楚,并且保护得很好,那么做起来 就会很方便。 Java用了三个明确的关键词来设置类中的边界: public, private,和 protected。它们的用法和意思都相当明了。这些访问控制符表示谁能使 用由它定义的东西。 public表示后面跟着的东西谁都能用。而 private 关键词则表示,除非是类的创建者用这个类的方法进行访问,否则没人能 访问到这个元素。 private是竖在你与客户程序员之间的一堵墙。那些要 访问 private成员的人,会在编译的时候得到一个错误。 protected关键 词很像 private,它们的区别在于,继承类能够访问 protected成员,但 是不能访问 private成员。继承问题过一会再介绍 Java还有个“缺省”的访问权限,如果你没用上面三个的话,那就是指 它了。通常把它称为 package访问权限。因为同属这个 package的类 第7页共34页shhgs@wgqqh.com ￾ 7 ✁ ✂ 34 ✁ 7  âhšŽ/(Ÿš(class creator YÌŸR(,/(ª)  /0âhš ✄ ✟ ✆ (client programmer YÌçˆ Ì/áâ(ª);oŠ ‘r¢£ ׇˆ/0âhš(‚(‹4چ/ E=;sŒ ìvˆâhà/(Ÿš(‚(Ÿ3Ì ¦(/ AóŽ3Ì /0âhšo›( §A0=c ,™ZÊæ™ u /0âhšX;‡, [$/(ŸšÝEî% ïð àXˆÀqº¥§GªÚŽŸ · 9Q(Æ × /b‘( ŠRS=’q¹|X[(/0âhš¬(•  DEPñí 9Q;âh( b u g   ñí 3Ö(%ÜûÄæÆXº^ÜûY† w m3יڵÆ(™»¯·%(Ÿ3×/iu ¡ „/0âhšŸ ,´†wG[âhš Gˆ¡(/iQ-z 3×vˆâh [Ý;3×Â(/iÄÅDmªÆ;<g/(Dm Žš YZ/0âhš;¥ ×/1  æò[šXJZæn (&0,rF¡<(X|Ç/0âhšÒ$ÉÊ/*(´ÌŽš  ÄŜm‡Ên(› ¡[œR›+GJ ZT ×/ó;œ r¶¥¤×º» DE%Ên‡žÈ(~%åæ ›+YÌ/0âhšJŸGXw (yyYÌ,/X1Do›(óèŽG$  £N‡ˆDoî($XñJ [‚ƒ¬ˆ0(3†jþ æ™çò G;Šµ=(<!mÌ¥GŠ% mÌ¡Gœw ×åæèŽ/i[1ªš;FX]¢/0âhš([Æïð/( y1µ´8Ä £[1 ×/(M ™,¤¥ìUz ¡ˆ,3†Š (µ ¸¡ìvw« ¦p€ ǧ‰s3 ÌÄÅ ×/($X„ñ퉊lm žk§‰Š‘ YZT9Q ºŠµ= Ja va ˆ,L×Ï((³Q[6/*(™»7p u b l i c p ri va te  p rotected A(ˆ¹DÆ> Ï, ̏‡ÊnÌG¨;ç ˆçAO(p u b l i c G¶¡.(¨Æ;ˆà p ri va te (³0G 3¯/(Ÿšˆ ×/(µtE‡ L0œª; ‡g ×ÛÜp ri va te ©F¡„/0âhšu4(3ª«YÌ% ‡ p ri va te Žš(ª ºFá(M‰g3×Ó|p rotected ( ³Š} p ri va te A( ¼F) öK/;_‡ p rotected Žš  X;‡ p ri va te ŽšöK‡ˆ^3ºÁ Ja va m×Í ¬­Ï(‡žÈ ÄÅ¡œˆJ¶L×(› YŒ A,·PAݙ p a cka g e ‡žÈ晇) × p a cka g e (/
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有