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’不是内部或外部命令,也不是可运行的程序或批处理文件。”了,javac同理。

2.classpath

  说完path,再来说说classpath,这里就牵扯到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

  注意注意!以上是比较旧的说法,在JDK1.4以后就不用再设置CLASSPATH,Java默认会搜索上面说的那几个位置。也就是说,只用把Java的JDK的bin目录添加到Path中去,一步就完成了环境变量的配置!多废话一句,不用设置不是说不可以设置,如果你非得设置,也可以,但是切记切记不要忘了那个小小的点代表的当前目录。如果你设置了,系统会按照你设置的classpath来找类,默认的搜索路径失效,所以一定要仔细仔细再仔细!

3.JAVA_HOME

  指明jdk的路径

三、访问权限控制

1.类成员的访问控制

访问控制符:public/protected/包访问权限(无关键字即默认)/private

类本身

同包中的子类

不同包中的子类

同包中的非子类

不同包中的非子类

总之

public

可以

可以

可以

可以

可以

都可以

private

可以

不可以

不可以

不可以

不可以

仅自身可见

default

可以

可以

不可以

可以

不可以

仅同包可见

protected

可以

可以

可以

可以

不可以

子类或者同包可见

2.类的访问控制权限

类只有两种访问控制权限:默认(即包访问控制权限)和public

最新文章

  1. vs2015 安装之后安装MSSM 2016 导致 vs启动报错 System.ArgumentException 已添加了具有相同键的项,ActivityLog.xml
  2. 可以结合react的ui组件
  3. linux系统下搭建php环境之-Discuz论坛
  4. 读取svg图片为UIBezierPath,开心做动画
  5. 关于AutoComplete整合
  6. Scanner中next()和nextline()读取字符串方法和区别
  7. setPixel抛出java.lang.IllegalStateException
  8. KNN(k-nearest neighbor的缩写)又叫最近邻算法
  9. 类加载器子系统——JVM之四
  10. Android编程中的5种数据存储方式
  11. 申请9位数QQ
  12. Linux Centos6.9下安装部署VNC的实操详述
  13. php composer windows安装
  14. JDK内置工具使用
  15. HDU1521 排列组合(生成函数 背包)
  16. Caused by: java.security.InvalidKeyException: Illegal key size or default parameters
  17. CodeFirst简单演示的步骤
  18. P1383 高级打字机
  19. UploadFtp
  20. Storm1.0.3集群部署

热门文章

  1. YYCache 源码分析(二)
  2. 《Android开发艺术探索》读书笔记 (3) 第3章 View的事件体系
  3. java.util 中的property
  4. 关于svn获取获取文件时 Unable to connect to a repository at URL"https://..."执行上下文错误:参数错误
  5. `~!$^*()[]{}\|;:'",<>/?在英文怎么读?
  6. CSS样式的优势
  7. .net中XML的创建02(linqToXml)
  8. 跟我学android-android常用布局介绍
  9. id class
  10. Tomcat部署多个项目及相关配置