访问控制权限
2015-10-23 12:54
183 查看
访问控制与最初的实现并不恰当有关。
访问控制权限的等级从最大到最小依次是public,protected,包访问和private。
当编写一个Java源代码文件时,此文件通常被称为编译单元。每个编译单元都必须有个后缀名.java。而在编译单元内则可以有一个public类,该类的名称必须与文件的名称相同,每个编译单元只能有一个public类,否则编译报错。若在该编译单元之中还有额外的类,那么在包外时不见的。因为它们不是public,并且他们主要用来为主public提供支持。当编译一个Java文件时,在.java文件中的每个类都会输出一个文件,与.java文件中每个类的名称相同,后缀为.class
Java可运行程序是一组可以打包并压缩为一个Java文档文件(JAR)的。Java解释器负责这些文件的查找,装载和解释
类库实际上是一组类文件。每个文件都有一个public类以及任意数量的非public类。因此,每个文件都有一个构件。若希望这些构件从属于一个群组,可以使用package。若使用package关键字,它必须是文件中除注视外的第一句程序代码,表明该编译单元是XX类库的一部分
Java解释器的运行过程如下:首先先找出环境变量classpath,classpath包含一个或多个目录,用作查找.class的根目录。从根目录开始,解释器获取包的名称并将每个句点替换为反斜杠。从而得到一个路径名称。得到的路径名称会与.classpath中的诶个不同的项相连。解释器就在这些目录中查找与你所要创建类的名称相关的.class文件
默认访问权限没有任何关键字,意味着当前的包中的所有其他类对这个成员都有访问权限,但对于这个包之外的所有类们则个成员都是private
获取成员访问权限的途径是:使该成员称为public;不添加访问修饰词将其与要访问的代码放到同一个包中;通过继承可以访问public和protected成员;提供访问器(accessor)和变异器(get/set)方法
处于相同的目录并没有给自己设定任何包的名称的情况下,Java将这样的文件自动看作是隶属于该目录的默认包中
任何可以肯定知识该类的一个助手方法的方法,都可以把它指定为private,对于类中的private域,除非必须公开底层实现细节,否则应该将所在的域指定为private
若创建了一个新的包,并从另一个包中继承了该类,那么它唯一可访问的成员是源包的public和proctected成员。若在同一个包中继承,它可以操作包访问权限和protected成员;相同包内的其他类可以访问protected成员;访问权限的的控制常称为是具体实现的隐藏,把数据和方法包装在类中,以及具体实现的隐藏,常被称为“封装”
访问权限控制将权限的边界划在了数据类型内部。因为要设定客户端程序员可以喝不可以使用的界限和使接口和具体实现分离
若编译单元里有个public类,这时可以随意对其命名
类不恶意时private,也不可以是protected。若不想其他任何人对该类拥有访问权限,可以把其构造器指定为private,但是该类的static成员仍可内部创建
void可以不返回任何东西,但也可返回一个对象的引用
访问控制权限的等级从最大到最小依次是public,protected,包访问和private。
当编写一个Java源代码文件时,此文件通常被称为编译单元。每个编译单元都必须有个后缀名.java。而在编译单元内则可以有一个public类,该类的名称必须与文件的名称相同,每个编译单元只能有一个public类,否则编译报错。若在该编译单元之中还有额外的类,那么在包外时不见的。因为它们不是public,并且他们主要用来为主public提供支持。当编译一个Java文件时,在.java文件中的每个类都会输出一个文件,与.java文件中每个类的名称相同,后缀为.class
Java可运行程序是一组可以打包并压缩为一个Java文档文件(JAR)的。Java解释器负责这些文件的查找,装载和解释
类库实际上是一组类文件。每个文件都有一个public类以及任意数量的非public类。因此,每个文件都有一个构件。若希望这些构件从属于一个群组,可以使用package。若使用package关键字,它必须是文件中除注视外的第一句程序代码,表明该编译单元是XX类库的一部分
Java解释器的运行过程如下:首先先找出环境变量classpath,classpath包含一个或多个目录,用作查找.class的根目录。从根目录开始,解释器获取包的名称并将每个句点替换为反斜杠。从而得到一个路径名称。得到的路径名称会与.classpath中的诶个不同的项相连。解释器就在这些目录中查找与你所要创建类的名称相关的.class文件
默认访问权限没有任何关键字,意味着当前的包中的所有其他类对这个成员都有访问权限,但对于这个包之外的所有类们则个成员都是private
获取成员访问权限的途径是:使该成员称为public;不添加访问修饰词将其与要访问的代码放到同一个包中;通过继承可以访问public和protected成员;提供访问器(accessor)和变异器(get/set)方法
处于相同的目录并没有给自己设定任何包的名称的情况下,Java将这样的文件自动看作是隶属于该目录的默认包中
任何可以肯定知识该类的一个助手方法的方法,都可以把它指定为private,对于类中的private域,除非必须公开底层实现细节,否则应该将所在的域指定为private
若创建了一个新的包,并从另一个包中继承了该类,那么它唯一可访问的成员是源包的public和proctected成员。若在同一个包中继承,它可以操作包访问权限和protected成员;相同包内的其他类可以访问protected成员;访问权限的的控制常称为是具体实现的隐藏,把数据和方法包装在类中,以及具体实现的隐藏,常被称为“封装”
访问权限控制将权限的边界划在了数据类型内部。因为要设定客户端程序员可以喝不可以使用的界限和使接口和具体实现分离
若编译单元里有个public类,这时可以随意对其命名
类不恶意时private,也不可以是protected。若不想其他任何人对该类拥有访问权限,可以把其构造器指定为private,但是该类的static成员仍可内部创建
void可以不返回任何东西,但也可返回一个对象的引用
相关文章推荐
- 11.11 双十一 前端教你一键领取天猫千张优惠券 (领前先想想有没有钱花这些优惠券)
- 大型网站架构演化发展历程(转)
- H5移动前端完美布局之padding
- nodejs中exports与module.exports的区别
- mac 生成批处理文件
- 一个软件项目开始应该怎么入手分析,搭建
- Codeforces 589J. Cleaner Robot
- Android 运行 C/C++程序 (使用 arm-linux-gcc 交叉编译环境)
- 用 Graphviz+pvtrace 可视化函数调用
- LintCode-删除排序数组中的重复数字 II
- jquery.rotate插件实现转盘抽奖示例
- PHP文件下载实例
- [Leetcode]Partition List
- 大型网站核心的架构(6-1)基本要素
- Bootstrap 学习(1)
- Redis学习笔记十五、实例代码
- poj 3984 迷宫问题..
- 微信开发(一):用JSAPI做微信支付+微信卡包(代金券)
- Redis学习笔记十四、内存优化
- C++多级指针的”解引用“