#java代码块


##jar包
目前存在的问题:
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提供给其他人去使用。


##练习
 package qq;
 class Demo3
 {
 public static void main(String[] args)
 {
 System.out.println(“Hello QQ”);
 }
 }

用于平时自己复习回顾,如有错误,欢迎指正