包(package)是组织类的一种方式,使用包的主要目的是保证类的唯一性.
可以把很多类放在一起(把一些具有一定关联关系的类放在同一包中)
把同名的类放在不同的包中,起到了命名空间的作用.
导入包中的类
java中已经提供了很多现成的类供我们使用
public class Test{
public static void main(String[] args){
java.util.Date date=new java.util.Date();
System.out.println(date.getTime());
}
}
我们可以看到可以使用java.util.Date这种方式来引入java.util这个包中的Date类.但是这种写法比较麻烦,我们更多的使用import语句导入包
import java.util.Date;
public class Test{
public static void main(String[] args){
Date date=new Date();
System.out.println(date.getTime());
}
}
我们也可以使用
import java.util.*;
*在这里就是一个通配符,但是一般不建议这样使用.
//例如在util和sql中都含有Date这个类
import java.util.*;
import java.util.*;
//如果都有这两个声明,此时使用Date时就会出现歧义,编译报错
静态导入
使用 import static 可以导入包中的静态的方法和字段
使用这种方法可以更简单的写一些代码:
import static java.lang.Math.*;
public class Test{
public static void main(String[] args){
double x=30.0;
double y=20.0;
//double result=Math.sqrt(Math.pow(x,2)+Math.pow(y,2));
//静态导入的方式写起来更方便一点
double result=sqrt(pow(x,2)+pow(y,2));
}
}
将类放入包中
基本规则
- 在文件的最上方加一个package语句指定该代码在哪个包中.
- 包名需要尽量指定成唯一的名字
- 包名要和代码路径相匹配.例如创建一个com.baidu.www的包,那么会存在一个路径com/baidu/www来储存代码
- 如果一个类没有package语句,则该类被放到一个默认包中
包的访问权限控制
java访问权限控制:
1.public
2.private
3.包级权限
4.protected
如果一个成员不加任何修饰,那么这个就是包级权限,此时这个成员可以被包内部的其他类使用,但是不能被包外部的类使用