包 修饰符

目前存在的问题:

      1. 如果两个java文件的类名一致,那么后编译的class文件就会覆盖 前面编译的class文件。

包:java中的包相当于windows文件夹。

包的好处:

      1. 解决类名重复class文件覆盖的问题。

      2. 方便软件版本的发布。

包语句的格式:

      package 包名;

目前存在的问题: 有了包语句之后,每次编译成功我们都需要新建一个文件夹,把对应的class文件拖进去。烦!!

解决方案: 只需要在编译的时候加上-d 参数即可。               

                 格式:

                            javac -d 存放class文件的路径  java源文件

包要注意的事项:

      1. 一个java文件如果有了包语句,那么该类文件的完整类名是"包名+ 类名":

      2.  一个java文件只能有一个package语句。

      3. package语句必须位于java文件中的第一个语句。

有了包之后类与类之间的访问:  

问题:有了包之后,类与类之间的访问都必须加上包名!!烦!!!!

解决方案: sun引入导包语句解决该类文件。

导包语句的作用是简化书写。

导包语句的格式:

      import 包名.类名;

导包语句要注意的细节:

      1. 一个java文件可以出现多个import语句。

      2. 导包的时候可以使用通配符"*"来匹配类名。"*"可以匹配任何的类名。

      3. import bb.*; 该语句不会作用于bb包下面的子包。

推荐使用: 不要使用通配符导包,因为结构不清晰。

jvm加载class文件是属于懒惰型加载,只有使用到了该类文件的时候才会 被加载。

什么时候需要使用导包语句??

      类与类之间的访问,如果这两个类不属于同一个包,那么则需要使用到导包语句。

      java.lang包的类jvm会自动导入,不需要我们自己导入java.lang包的类。

访问权限修饰符:访问权限修饰符就是用于控制修饰的类、变量、方法的可见范围。

                      public          protected          default         private        (从大到小排序)                 

同一个类          true               true             true           true

同一个包         true             true                true           false

子父类           true             true              false             false

不同包           true             false              false             false

注意: 在不同包中类与类之间可以访问的权限修饰符只有public 与protected才可以相互访问 ,

       但是protected必须要在继承关系下才能使用。

打jar包:

如何将class文件打包成jar文件呢?

      需要使用 到jdk的开发工具jar.exe

jar工具的使用格式:

      jar cvf jar包名  class文件名|包名

jar要注意的事项:

      1. 打jar包 的时候必须要指定jar包的入口类,入口类的指定是在清单文件上去指定的,

      格式: Main-Class: 包名.类名

      2. jar双击运行仅对于图形化界面程序起作用,对于控制台 程序不起作用。

      3. 如果使用jar包中的类文件,一定要先设置好classpath路径。   

jar的作用:

      1. 可以将一个项目的class文件打包,方便用户运行项目

      2. 可以将工具类打包给jar提供给其他人去使用。

posted on 2018-09-08 16:37  天才疯子都在右  阅读(88)  评论(0编辑  收藏  举报

导航