package类似一个文件夹,文件夹内有各种文件;package存在的意义是防止命名冲突造成使用不便。同一个文件夹内无法存在同名的文件,而不同名的文件夹里允许存在同名文件,因此不同文件夹(即不同package中允许出现相同class名)。
java引入了包机制:
1、包的信息存在与java代码的第一行,类的上面
2、包的定义规范 : com.yjxxt.xxxx(命名:公司域名倒写+功能名|模块名)
3、标识符规范 : 全部小写
作用:
1)方便管理众多资源
2)引入多重命名空间
注意:
1、不要定义与 jdk 相同的包,相同的类,否则会引起很多你觉得莫名其妙的问题
2、写项目时都要加包,不要使用默认包。
3、com.oop和com.oop.test,这两个包没有包含关系,是两个完全独立的包。只是逻辑上看起来后者是前者的一部分。
导包 :(import:存在package的下面,代码内容的上面)
导包是指明要使用的资源所在的位置
1)使用的位置使用权限定名java.util.Scanner,只在当前位置有效
2)使用import导包,在类的上面,package信息的下面,一个Java文件所有类有效
3)*模糊导入,模糊匹配当前包下的所有类,会降低编译效率,不会降低运行效率
4)静态导入只导入静态内容 import static
不需要导包的类 :一是java.lamg;二是同包下的类
package com.yjxxt.package05;
//import java.util.Scanner;
import java.util.*;
import static java.lang.Math.PI;
import static java.lang.Math.round;
public class Class001_Import {
public static void main(String[] args) {
//权限定名
java.util.Scanner sc = new java.util.Scanner(System.in);
Scanner sc2 = new Scanner(System.in);
Random ran = new Random();
System.out.println(PI);
System.out.println(PI);
System.out.println(PI);
System.out.println(round(3.5));
System.out.println(round(3.2));
}
}
class Demo{
public static void main(String[] args) {
//权限定名
java.util.Scanner sc = new java.util.Scanner(System.in);
Scanner sc2 = new Scanner(System.in);
Random ran = new Random();
}
}