关于访问权限控制的几点问题

来源:互联网 发布:js移动端日期选择插件 编辑:程序博客网 时间:2024/05/16 11:47
1. 包命名全部为小写字母(Java2以前开头的com,org,net等为大写,为了规范现在均为小写),格式为创建者Internet域名的反顺序。eg. 我的网站为“www.lucky3.org”,我的程序的包名前缀应为“com.lucky3”。

2. JDK在运行编译好的字节码(.class)时,只会去搜寻CLASSPATH对应的目录下的文件。CLASSPATH可以设定为常用的项目目录,但需要包含当前目录“.”。若不设置CLASSPATH,JDK也会自动在当前目录进行查找,但一旦设置了CLASSPATH,若不包含当前目录“.”,则不会在当前目录进行查找。
CLASSPATH可以指定目录,也可指定jar包。但指定jar包时,必须精确到某个jar包,不能仅仅指定jar包所在的目录。

3. 源文件中用 package 声明的包名的结构一定要和字节码(.class)所在的目录路径对应,否则会导致运行出错。eg:
package com.lucky3.foo        对应
com\lucky3\foo\

3. 对于包含static方法的工具类,可以用静态导入 import static 语句将类中的静态方法导入,程序中可不加类名直接调用方法。

4. Java没有C/C++的条件编译功能,不能指定某段的编译条件。但是可以通过包导入的方式模拟实现:定义两个名称相同的类,隶属于不同的包中(一个包为调试用,一个包为发布用),调试时import调试包,发布时import发布包,即可实现将程序中用到的代码从调试版改为发布版。

5. 如果两个源文件处于同一目录,且都没有设定包名称,这也是可以通过编译的。编译器将这样的源文件自动看做是隶属于该目录的默认包中。

6. private构造器的作用:我们都知道private构造器可以用于创建单例对象或维护对象池,它还有个作用——如果默认构造器是唯一定义的构造器,且是private的,那么它将阻碍对此类的继承(子类需要调用父类的构造器)。

7. 每个编译单元(源文件)都最多只能有一个public类(也可以没有),且该public类的类名与源文件的文件名必须一致,包括大小写。如果不遵循以上规则,编译器会报错。

8. 若一个类为包访问权限(默认访问权限),将类中的方法赋予包访问权限是理所应当的,如果你有强迫症,设定为public效果一样。

9. 类的访问权限只能为public包访问权限,但有例外(内部类可以为private或protected)。
0 0
原创粉丝点击