Java中的包、环境变量和访问控制
一、java中的包
Java利用包来组织代码,一来使大型项目的代码结构清晰,二来包是一个命名空间的划分,即不同包中可以有相同名字的类,只需在在类名前加上包名即可区分它们。
Package xxx 必须位于java文件除了注释以外的第一行,用来指明当前文件中的类属于哪一个包,如果没有package语句,则该文件中的类都属于默认包。
Import xxx用来在当前java文件中导入不属于当前包中的类,从而可以在当前文件中使用它们。
二、java中的环境变量
1.path
环境变量其实就是一组变量(废话),它的作用是给系统和应用程序提供参数。例如:path,它告诉系统和应用程序一些系统必备的程序的存储位置,比如你要运行ipconfig命令,系统去哪里找它呢,就是通过path变量,把它所存储的位置挨个找一遍,直到找到为止。
在java中,当我们要运行java程序,在控制台输入java xxx时,java这个应用程序(exe文件)到哪里找呢?系统就得通过path,这样就得把包含java这个应用程序的目录拷贝到path环境变量中,这样以后,再运行java xxx 就不会出现“‘java’不是内部或外部命令,也不是可运行的程序或批处理文件。”了。
2.classpath
说完path,再来说说classpath,解决了java这个命令的问题,还有javac这个命令的问题,这里就牵扯到java中的包机制了。
Java程序是由一个一个类构成的,类之间可以相互调用,还有一些java语言已经定义好的类,那么当程序要用到这些类的时候,去哪里找他们呢,这就需要classpath这个环境变量来指点迷津了。
总结:classpath指明了类查找路径,如果类没有被打包,那就需要将其所在目录添加到classpath中,如果类被打包为JAR文件,则需要将JAR文件的实际名称写清楚。
Classpath一般设置为“.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;”
其中.代表当前目录,%JAVA_HOME%代表java jdk的路径。Dt.jar中主要是swing包中的各种控件类。Tools.jar中是各种工具类。
当编译器碰到import语句时,就开始在CLASSPATH所包含的目录中查找。
(参考:http://www.linuxidc.com/Linux/2012-01/52713.htm)
3.JAVA_HOME
指明jdk的路径
三、访问权限控制
1.类成员的访问控制
访问控制符:public/protected/包访问权限(无关键字即默认)/private
| 类本身 | 同包中的子类 | 不同包中的子类 | 同包中的非子类 | 不同包中的非子类 | 总之 |
public | 可以 | 可以 | 可以 | 可以 | 可以 | 都可以 |
private | 可以 | 不可以 | 不可以 | 不可以 | 不可以 | 仅自身可见 |
default | 可以 | 可以 | 不可以 | 可以 | 不可以 | 仅同包可见 |
protected | 可以 | 可以 | 可以 | 可以 | 不可以 | 子类或者同包可见 |
2.类的访问控制权限
类只有两种访问控制权限:默认(即包访问控制权限)和public