Java 包的使用详解

Java 包的使用详解_第1张图片

文章目录

  • 1. 概念
  • 2. 导入包中的类
    • 2.1 使用类的全路径
    • 2.2 导入包
    • 2.3 静态导入包
  • 3. 自定义包
  • 4. 包的访问权限控制
  • 5. 常用的包
  • Java编程基础教程系列

1. 概念

在开发过程中,会定义很多的类,随着类的定义越来越多,难免会出现类名重复的情况,对类的管理变的很困难,为了方便对类进行管理,我们可以把相关联的类放在同一个目录下,该目录就是一个包,包的实质就是文件夹。

包是对类和接口的封装,给类提供了多层命名空间。这样管理不同的类就可以允许在同一个项目中存在相同名称的类,只需要把相同名称的类放在不同的包里面。

2. 导入包中的类

我们把相关联的类放在同一个包中,使用时只需导入包中的类,Java中有三种方法导入包中的类。

2.1 使用类的全路径

示例:

public class Test {
    public static void main(String[] args) {
        //getTime()方法 从 1970 年 1 月 1 日开始计算到 Date 对象中的时间之间的毫秒数。
        java.util.Date time = new java.util.Date();
        System.out.println(time.getTime());
    }
}

使用此方法每次创建一个对象都需要导入类,比较麻烦。但是优点是不会出现冲突,像在程序开头使用导包的方式就会出现冲突的情况,但是依然建议使用导包的形式导入包中的类,在容易出现冲突的情况下特殊处理。

2.2 导入包

示例:

import java.util.Date;

public class Test {
    public static void main(String[] args) {
        Date time=new Date();
        System.out.println(time.getTime());
    }
}

使用此方法更加的方便,但是会出现冲突。例如,如果不知道 Date 类是哪一个包中的类,可以直接导入 java.util.* ,表示导入 java.util 包中的所有类。示例:

import java.util.*;
import java.sql.*;

public class Test {
    public static void main(String[] args) {
        Date time=new Date();
        System.out.println(time.getTime());
    }
}

示例中的代码出现了错误,原因是同时导入的两个包中都存在 Date 类, java.sql 中的类 java.sql.Date 和 java.util 中的类 java.util.Date 都匹配,出现了歧义,不知道调用的是哪一个类。

Java 包的使用详解_第2张图片

2.3 静态导入包

示例:

//静态导入
import static java.lang.Math.PI;
import static java.lang.Math.random;
import static java.lang.Math.round;
//或者:import static java.lang.Math.*;
public class Test {
	public static void main(String[] args) {
		//静态导入省略"Math."
		//不使用静态导入:System.out.println(Math.random());
		System.out.println(random());
		System.out.println(PI);
		System.out.println(round(5.6));
	}
	
}

使用静态导入类时,只需要在 import 关键字后面加上 static 关键字。此方法是在 JDK 5 后面添加,其目的是减少字符输入量,提高代码可读性。但是如果同时导入的两个类中有重命名的静态成员,会出现报错。

3. 自定义包

在代码的最上方加上一个 package 语句指定该代码位于哪个包中,这样的方式叫做自定义包。如果没有使用 package 语句,代码放在默认包中,包名的定义需要唯一且一般使用域名的颠倒形式,其和代码的路径相同,例如:

package com.baidu.www

接下来我们在 IDEA 中创建一个包:右键 src / 新建 / 包 ,这样我们就创建好了一个包。

Java 包的使用详解_第3张图片

在新建的包中添加类:右键新创建的包 / 新建 / 类。

Java 包的使用详解_第4张图片

打开相应的文件目录查看是否创建成功。

Java 包的使用详解_第5张图片

同样的,此时文件的最上面已经生成了 package 语句。

在这里插入图片描述

4. 包的访问权限控制

前面我们使用访问权限修饰符 private 来修饰类的成员属性,使我们无法在类外访问。同样,访问权限修饰符也控制了不同的包之间的访问规则。例如,使用 default 访问权限时,在同一个包中可以互相使用,在不同的包中就无法调用。示例:

Java 包的使用详解_第6张图片
此时的错误原因是:TestPackage2.A 在 TestPackage2 中不是公共的; 无法从外部程序包中对其进行访问。

Java 包的使用详解_第7张图片

5. 常用的包

  • java.lang 系统常用基础类(String、Object)
  • java.net 进行网络编程开发包。
  • java.sql 进行数据库开发的支持包。
  • java.util 是java提供的工具程序包。(集合类等) 非常重要
  • java.io I/O编程开发包

其中使用 java.lang 包中的类时,不需要手动导包,系统会默认导入。


Java编程基础教程系列

【Java编程进阶】封装继承多态详解

【Java编程进阶】Java抽象类与接口详解

【Java编程进阶】Object类及常用方法详解

你可能感兴趣的:(#,付费专栏试读,java,开发语言,jvm)