2014-12-09 20:14:52

访问权限控制

1、访问权限控制出现的原因

  代码需要不断的重新创作才能变得完善。

  要完善的公用代码(如:类库)已经被客户程序使用,修改后,可能会影响客户程序的功能。

  添加约定规范,规定可能需要修改的公用代码不能被客户程序使用。

  这些约定规范利用访问权限控制来实现。

2、访问权限控制的实现方法:提供访问权限修饰词

  权限由大到小:public,protected,包访问权限(无关键词),private

3、包出现原因

  防止类的命名冲突,利用命名空间的不同来帮助解决类名冲突

4、包是什么?

  包就是一个单位命名空间。

  存在于单一目录中的类,默认位于默认包中。

  整个命名空间就是,环境变量CLASSPATH的值指定的目录。每个目录又以包为单位分成了若干单位命名空间。

  

5、每个包(库)实际上就是一组类

  每个编译单元(.java)有且只有一个public类。编译后,编译单元中定义了几个类,相应就会产生几个.class文件。

6、分割出命名空间(打包类)

  package coreservlets;

  package语句必须放在文件中除了注释之外的第一句

7、使用命名空间

  import java.util.*;

  使用类时,必须指明是哪个命名空间的类。

  编译时,javac遍历CLASSPATH指定的目录,寻找导入的命名空间。

8、package和import存在的意义:分割命名空间,避免名称冲突

9、如何创建独一无二的包名

  包名都使用小写(java是大小写敏感语言)

  惯例:创建者Internet域名反序+自定义包名

  eg:有域名MindView.net,则可以设置包名为:net.mindview.simple,此包存放目录:CLASSPATH/net/mindview/simple

10、使用jar文件时,不止要指明它所在位置的目录,要将它的实际名称写清楚

11、不同命名空间内有名字相同的类时,若被同一文件导入,则在使用此类时,用全称限制名,即包名+类名。示例程序ch601

12、创建自己的类库,放在CLASSPATH指定的目录下

13、java中,无条件编译,因为跨平台

14、java调试技巧

  发布版本中无调试信息,开发版本中有调试信息。

  通过导入不同的包来实现。

  例如:两个包debug和debugoff,两个包中有相同的类,debug包中的类可以打印调试信息,若不需要打印调试信息,则导入另一个包。

  示例程序:ch602

15、访问权限修饰词:public,protected,private及‘不提供修饰词’

16、默认包:处于同一目录路径且未限定任何包名称 的文件,自动归属到该目录的默认包中。

17、public:可以被所有类对象访问

  protected:可以被子类对象访问

  不提供修饰词:可以被同包内的类对象访问

  private:只能被本类对象访问

18、权限控制就是让类的制作者控制此类哪些能被客户端程序使用,哪些不能被客户端程序使用。能被使用的就被封装成接口,而具体实现不能直接被使用。总之,访问权限控制+接口与实现的分离=封装,大大增加了程序的可维护性。

19、使用时需要注意的几点:

  每个编译单元最多只能有一个public类,也可以没有public类

  public类的类名必须与编译单元名相同,大小写敏感

  

转载于:https://www.cnblogs.com/ISeeIC/p/4154669.html

第6章 访问权限控制相关推荐

  1. java学习笔记 java编程思想 第6章 访问权限控制

    文章目录 6.1 包:库单元(the library unit) 6.1.1 代码组织 6.1.2 创建独一无二的包名 练习1 练习2 6.1.3 定制工具类 6.1.4 用import改变行为 练习 ...

  2. 关于访问权限控制问题

    实际上Java中是有访问权限控制的,就是我们个人的隐私的一样,我不允许别人随便来查看我们的隐私,只有我们自己同意的情况下,才能告诉别人我们的名字.年龄等隐私信息. 所以说Java中引入了访问权限控制( ...

  3. Java访问权限控制

    面向对象的核心思想之一就是封装,只把有限的方法和成员公开给别人,这也是迪米特法则的内在要求,是外部调用方对方法体内的实现细节知道得尽可能少. 如何实现封装呢? 需要使用某些关键字来限制外部对类内属性和 ...

  4. C++知识点11——this指针,const成员函数,访问权限控制

    1.this指针 每个类都有this指针,this指针指向this指针指向的是类的对象本身 class A { public:A() {}~A() {}void func() {cout<< ...

  5. android 静态方法 构造方法,android基础-Java篇02:类和对象、构造方法、访问权限控制、重载、this关键字、static关键字...

    一.类和构造方法 (类和对象在百度百科已经有详细的介绍,这里只做简单的描述以及帮助理解:百度百科:类和对象,需要注意的是,百度百科类和对象的举例中都是C++,书写格式不要和Java混淆!) 什么是类? ...

  6. 文件服务器共享文件夹访问权限,5对文件服务器中的共享文件夹进行访问权限控制...

    对文件服务器中的共享文件夹进行访问权限控制 1. 实训目的 在Windows Server 2003环境下设置文件服务器的目的是要对多用户进行资源共享,这其中经常遇到不同用户应该分配不同权限的问题,通 ...

  7. [THINKING IN JAVA]访问权限控制

    6 访问权限控制 6.1 包:库单元 package.import.import *.import static: 修改classpath环境变量可以将自己写的类库添加至环境变量并在任何java程序中 ...

  8. Java成员的访问权限控制

    Java中的访问权限控制包含两个部分: 类的访问权限控制 类成员的访问权限控制 对类来说,访问权限控制修饰符可以是public或者无修饰符(默认的包访问权限): 对于类成员来说,访问权限控制修饰符可以 ...

  9. java权限控制是什么_Java访问权限控制的重要性深入讲解

    前言 人在什么面前最容易失去抵抗力? 美色,算是一个,比如说西施的贡献薄就是忍辱负重.以身报国.助越灭吴:金钱,算是另外一个,我们古人常说"钱乃身外之物,生不带来死不带去",但我们 ...

最新文章

  1. HDU2141(二分查找)
  2. ResNet最强改进版来啦!ResNest在多项任务中达到SOTA
  3. 通过公历年计算天干地支
  4. 检察机关计算机涉密案例,三原县检察院:扎实做好新时代检察机关保密工作
  5. visual studio如何给源码文件添加header信息?(创建者,创建日期等)(License Header Manager插件)
  6. python paramiko模块:远程执行命令及上传和下载
  7. matlab watershed函数简单实现_函数指针方法实现简单状态机(附代码)
  8. Visual C# 2008+SQL Server 2005 数据库与网络开发--13.1.1 菜单创建
  9. 面试稳了!网易资深工程师揭秘运维面经!
  10. MYSQL 时间处理
  11. Linux下安装Nginx详细图解教程
  12. 今日头条php面试经验,「今日头条」前端面试题和思路解析
  13. 反射(3)反射应用:一个插件项目
  14. OpenLayers学习入门篇
  15. U盘容量变小实用解决方案
  16. 利用 画图 快速给图片添加文字
  17. 【USACO】青铜莲花池[2]
  18. android6.0原生壁纸,惊呆了!安卓6.0壁纸竟然是这样得来的
  19. 内存优化 · 基础论 · 初识 Android 内存优化
  20. 经验转行产品经理|纯经验分享

热门文章

  1. 利用HTML+JS+CSS实现简单的网页计算器,附html所有源代码,可直接黏贴运行
  2. 使用python制作ArcGIS插件(1)工具介绍
  3. 深入浅出Docker(二):Docker命令行探秘
  4. TweenLite中文帮助手册
  5. access查询设计sol视图_Access删除索引
  6. 为什么eolinker发送老是等待_eolinker环境管理之开发、测试和生产环境
  7. python 堆栈溢出_IAR堆栈溢出的问题
  8. tomcat的服务器目录在哪个文件夹,Tomcat目录结构详细介绍
  9. Ros使用自定义数据通讯无法收到消息的分析和解决
  10. Sqoop 数据增量导出,--update-key添加多个字段