Java 包的使用详解
创始人
2024-05-11 16:46:52
0

在这里插入图片描述

文章目录

  • 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 都匹配,出现了歧义,不知道调用的是哪一个类。

在这里插入图片描述

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 / 新建 / 包 ,这样我们就创建好了一个包。

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

4. 包的访问权限控制

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

在这里插入图片描述
此时的错误原因是:TestPackage2.A 在 TestPackage2 中不是公共的; 无法从外部程序包中对其进行访问。

在这里插入图片描述

5. 常用的包

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

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


Java编程基础教程系列

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

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

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

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...