Java中package和import关键字的使用

217 阅读3分钟

一、package关键字的使用

  1. 说明
  • package:包

  • package用于指明该文件中定义的类、接口等结构所在的包

  • 一个源文件只能有一个声明包的package语句

  • package语句作为Java源文件的第一条语句出现。若缺省该语句,则指定为无名包。

  • 包名,属于标识符,满足标识符命名的规则和规范(全部小写)、见名知意

  • 包通常使用所在公司域名的倒置:com.atguigu.xxx。

  • 大家取包名时不要使用"java.xx"包

  • 包对应于文件系统的目录,package语句中用 “.” 来指明包(目录)的层次,每.一次就表示一层文件目录。

  • 同一个包下可以声明多个结构(类、接口),但是不能定义同名的结构(类、接口)。不同的包下可以定义同名的结构(类、接口)

  1. 包的作用
  • 包可以包含类和子包,划分项目层次,便于管理

  • 帮助管理大型软件系统:将功能相近的类划分到同一个包中。比如:MVC的设计模式

  • 解决类命名冲突的问题

  • 控制访问权限

  1. JDK中主要的包

java.lang----包含一些Java语言的核心类,如String、Math、Integer、 System和Thread,提供常用功能
java.net----包含执行与网络相关的操作的类和接口。
java.io ----包含能提供多种输入/输出功能的类。
java.util----包含一些实用工具类,如定义系统特性、接口的集合框架类、使用与日期日历相关的函数。
java.text----包含了一些java格式化相关的类
java.sql----包含了java进行JDBC数据库编程的相关类/接口
java.awt----包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。

二、import关键字的使用

  • import : 导入
  • import语句来显式引入指定包下所需要的类。相当于import语句告诉编译器到哪里去寻找这个类
  • import语句,声明在包的声明和类的声明之间。
  • 如果需要导入多个类或接口,那么就并列显式多个import语句即可
  • 如果使用a.*导入结构,表示可以导入a包下的所有的结构。举例:可以使用java.util.*的方式,一次性导入util包下所有的类或接口。
  • 如果导入的类或接口是java.lang包下的,或者是当前包下的,则可以省略此import语句。
  • 如果已经导入java.a包下的类,那么如果需要使用a包的子包下的类的话,仍然需要导入。
  • 如果在代码中使用不同包下的同名的类,那么就需要使用类的全类名的方式指明调用的是哪个类。
  • (了解)import static组合的使用:调用指定类或接口下的静态的属性或方法

三、举例

PackageImportTest类

package com.atguigu06.package_import;  
  
//import java.util.ArrayList;  
//import java.util.HashMap;  
//import java.util.Scanner;  
  
import com.atguigu05.method_more._04recursion.RecursionTest;  
import com.atguigu05.method_more._04recursion.exer2.RabbitExer;  
  
import java.lang.reflect.Field;  
import java.util.*;  
  
import static java.lang.System.out;  
import static java.lang.Math.PI;  
  
public class PackageImportTest {  
    public static void main(String[] args) {  

        Scanner scan = new Scanner(System.in);  

        ArrayList list = new ArrayList();  

        HashMap map = new HashMap();  

        HashSet set = new HashSet();  

        String str = "hello";  
        System.out.println(str);  

        Person p = new Person();  

        Field field = null;  

        RecursionTest test = null;  

        RabbitExer exer = null;  

        //Date可以使用import的方式指明  
        Date date = new Date();  

        //使用全类名的方式  
        java.sql.Date date1 = new java.sql.Date(121231231L);  

        out.println("hello");  

        out.println(PI);  

    }  
}

Person类

package com.atguigu06.package_import;  
public class Person {  
  
}