一、包:
1、java中的包就相当于windows文件夹。
2、包的作用:
1)解决类名重复产生冲突的问题:同一个类名,如果在不同包下,均会产生class文件,然后执行。如果都没有包名,那么后一个的class文件就会代替前一个的class文件。
2)便于软件版本的发布。
3、定义包的格式:package 包名;
4、包名命名规范:包名全部小写。
5、包语句要注意的事项:
1)package语句必须位于java文件中第一个语句。
2)如果一个类加上了包语句,那么该类的完整类名就是: 包名.类名
3) 一个java文件只能有一个包语句。
6、常见异常信息:
解决方法:如果使用包,那么应该把class文件放在一个文件夹下,也就是包。
7、问题: 每次编译的时候都需要自己创建一个文件夹,把对应的class文件存储到文件夹中。麻烦!!!
解决方法: sun提供导包语句让我们解决该问题。
javac -d 指定类文件的存放路径 java源文件
二、导包语句:
1、导包语句作用:简化书写。 (误区: 把一个类导入到内存中)
详解该误区:
package abao;
import bbao.Demo2;
class Demo1{
public static void main(String[] args) {
Demo2 d = new Demo2();
d.test();
}
}
package bbao;
public class Demo2{
static{
System.out.println("这个是Dmeo2的静态代码块...");
}
public void test(){
System.out.println("这个是Demo2的test方法...");
}
}
对比:
//仅仅改变Demo1的代码其它均不变
package abao;
import bbao.Demo2;
class Demo1{
public static void main(String[] args) {
}
}
解释:如果说是把类导入到内存中,那么静态代码块部分会显示出来,但这里并没有显示,说明import导包语句并没有这个功能。
2、导包语句的格式:
import 包名.类名;
(读法:导入xxx包中某个类)
3、导包语句要注意的细节:
1)一个java文件中可以出现多句导包语句。
2)”*”是导包语句的通配符。可以匹配任何的类名。
3)*import aa.*;
是不会作用于aa包下面的子包的。
4、推荐使用:import 包名.类名; 因为使用*通配符会导致结构不清晰。
5、什么时候使用import语句:
1)相互访问的两个类不是在同一个包下面,这时候就需要使用到导包语句。
2)java.lang 是默认导入的,不需要我们自己导入。