编程思想--第6章--访问权限控制

访问权限控制

访问控制(或隐藏具体实现)与“最初的实现并不恰当”有关。

重构即重写代码,以使得它更可读,更易理解,并因此而更具可维护性。

访问权限控制的等级,从大到小是:public,protected,包访问权限(没有关键词)和private。

java用关键字package将构建捆绑到一个内聚的类库单元中。

一、包:库单元

包内包含一组类,他们在单一的名字空间下被组织在一起。

import java.util.* 导入类使用的 “*”,就是提供一个管理名字空间的机制,所有类成员的名称都是彼此隔离的。

由于名字之间的潜在冲突,在java中对名称空间进行完全控制并为每个类创建唯一的标识符组合就成为了非常重要的事情。

未命名的包,被称为默认包,java包命名的规则是全部使用小写字母。java源代码文件通常被称为编译单元,每个编译单元都必须有一个后缀名 .java 该java文件中的每个类都会有一个输出文件,该输出文件名称与 .java文件中每个类的名称相同,只是多了一个后缀名 .class。

java可运行程序是一组可以打包并压缩为一个java文档文件(JAR,使用java的jar文档生成器)的.class文件。java解释器负责这些文件的查找,装载和解释。

package关键字归纳属于同一个群组的 java文件,它必须在java文件中除注释外的第一句程序代码。

package名称的第一部分是类的创建者的反顺序的Internet域名,域名是独一无二的,因此你的包名也是独一无二的。

java运行解释器运行过程如下:首先,找出环境变量CLASSPATH,CLASSPATH包含一个或多个目录,用作查找.class文件的根目录。从根目录开始,解释器获取包的名称并将每个句点替换成反斜杠,以从CLASSPATH根中产生一个路径名称(package foo.bar.baz变成foo\bar\baz或者foo/bar/baz),得到的路径会与CLASSPATH中的各个不同的项相连接,解释器就在这些目录中查找与你所要创建的类名称相关的.class文件。

二、java访问权限修饰词

public,protected,包访问权限(没有关键词)和private。每个访问权限修饰词筋控制它所修饰的特定定义的访问权

1,包访问权限

默认访问权限没有任何关键字,但通常是指包访问权限(有时也表示成为friendly)。这意味着当前的包中的所有其他类对那个成员都有访问权限,但对于这个包之外的所有类,这个成员是private。由于一个编译单元(即一个文件),只能录属于一个包,所以经由包访问权限,处于同一个编译单元中的所有类彼此之间都是自动可访问的。

2,pubilc:接口访问权限

使用关键字public,就意味着public之后紧跟着的成员生命自己对每个人都是可用的,尤其是使用类库的客户程序员更是如此。

3,private:你无法访问

关键字private意思是除了包含该成员的类之外,其他任何类都无法访问这个成员。

4,protected继承访问权限

关键字protected处理的是继承的概念,通过继承可以利用一个现有类-我们称其为基类,然后将新成员添加到该现有类中而不必碰该现有类。还可以改变该类的现有成员行为。

三、接口和实现

访问权限的控制常被称为是具体实现的隐藏,把数据和方法包装进类中,以及具体实现的隐藏,常共同被称为是封装。其结果是一个同时带有特征和行为的数据类型。

出于两个很重要的原因,访问权限控制将权限的边界划在了数据类型的内部。1,要设定客户端程序员可以使用和不可以使用的界限。2,将接口和具体实现进行分离。

四、类的访问权限

在java中,访问权限修饰词也可以用于确定库中哪些类对于该库的使用者是可用的。

每个编译单元都只能有一个public类。public类的名称必须完全与含有该编程单元的文件名相匹配,包括大小写。编译单元内完全不带public类也是可能的。

注意:类既不可以是private的也不可以说protected。所以对于类的访问权限,仅有两个选择:包访问权限或public。

五、总结

无论是在什么样的关系中,设立一些为各成员所遵守的界限始终是很重要的。

本章讨论了类是如何被构建成类库的:首先,介绍了一组类是如何被打包到一个类库中的,其次,类是如何控制对其成员的访问的。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,752评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,100评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,244评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,099评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,210评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,307评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,346评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,133评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,546评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,849评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,019评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,702评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,331评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,030评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,260评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,871评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,898评论 2 351

推荐阅读更多精彩内容