java中的包通过关键字package来实现管理,package的使用有两个要点:
1.
- 通常是类的第一句非注释性语句;
- 包名:域名倒着写即可,再加上模块名,便于内部管理类。
(由于java是一个开源的语言,当你编写的类最后封装成一个包之后可以供别人使用的,因此域名保证了不会冲突,比如我有域名www.sxt.cn(实际上没有),那么我在创建包的时候一般用cn.sxt后加包名)
此时再在里面添加类,就可以得到:
去包的文件目录看就能看到:
写项目的时候都要加包是一个好习惯,第一句一般会eclipse会帮我们生成package cn.sxt.oo;他一定是第一句非注释性语句。
package的使用:
java的jdk里为我们提供了很多包
例如java.lang,包含java语言的核心类,这个包的特点是不用导入就可以使用,比如里面的System和String就是里面的类。
那么import怎么使用呢?
如果在一个包里的一个类里想要使用同一个包的类,那么久可以直接使用,
但是如果要用另一个包的类,那在前面就要进行导入,或者要在前面再加上前置的限定。
比如:
就不可以,那么解决这个问题可以在里面的
但是每个类前面都这样太麻烦。因此可以在前面直接导入类:
如果某个包里的类需要用到的很多,那么就可以在import的时候直接import xxxx.*;
但是如果某几个包里有同名的类,导入之后在实例化的时候就会不清楚是哪个,比如java.util.Date;和java.sql.Date都叫Date类,那么这种时候就建议在使用的时候按照前面的写法,写的具体一些。
静态导入:
静态导入 import static xxxx;就可以导入静态属性。
import mypractice04.User;
import static java.lang.Math.*;//静态导入
public class User1 {
public static void main(String[] args)
{
//mypractice04.User user=new mypractice04.User();
User user=new User();
String str;//String类所在的包不用导入
System.out.println();//System类所在的包也是一样不用导入
System.out.println(Math.PI);//Math类里的PI静态变量
System.out.println(PI);//因为前面导入的时候用了import static所以PI就可以直接使用
}
}