Java包(package)

1、概念

为了更好的组织类,用于区别类名的命名空间,其实就是基于工程的一个文件路径,如:

2、作用

三个作用:

1)区分相同名称的类。
2)能够较好地管理大量的类。
3)控制访问范围。

在编写 Java 程序时,随着程序架构越来越大,类的个数也越来越多,这时就会发现管理程序中维护类名称也是一件很麻烦的事,尤其是一些同名问题的发生。

比如DateUtil 就有好多包下面都有同名的类,这些都可以通过包名进行区分,我们引入的三方包,大家都是各自开发,比如:
1)三方DateUtil类  包:com.hutool.core.data

2)我开发发了一个DateUtil类  包:club.chuige.appmanagement.common.util.DateUtil,java包在pom 管理的时候,都有一个坐标,就包含了groupId:club.chuige (继承父类),artifactId:app-management-common

有时,开发人员还可能需要将处理同一方面的问题的类放在同一个目录下,以便于管理。

3、包定义

Java 中使用 package 语句定义包,package 语句应该放在源文件的第一行,在每个源文件中只能有一个包定义语句,并且 package 语句适用于所有类型(类、接口、枚举和注释)的文件。定义包语法格式如下:

package 包名;

Java 包的命名规则如下:

1)包名全部由小写字母(多个单词也全部小写)

2)如果包名包含多个层次,每个层次用“.”分割。

3)包名一般由倒置的域名开头,比如 com.baidu,不要有 www。

4)自定义包不能 java 开头

4、包导入

4.1、导入指定类或全部类

Java 引入了 import 关键字,import 可以向某个 Java 文件中导入指定包层次下的某个类或全部类。

import 语句位于 package 语句之后,类定义之前。一个 Java 源文件只能包含一个 package 语句,但可以包含多个 import 语句。

1) 使用 import 导入单个类的语法:

import 包名+类名 import club.chuige.appmanagement.service.service.UserService;

2) 使用 import 语句导入指定包下全部类的用法按如下:

import club.chuige.appmanagement.service.service.*;

上面 import 语句中的星号(*)只能代表类,不能代表包,表明导入 example 包下的所有类。

提示:使用星号(*)可能会增加编译时间,特别是引入多个大包时,所以明确的导入你想要用到的类是一个好方法,需要注意的是使用星号对运行时间和类的大小没有影响。

通过使用 import 语句可以简化编程,但 import 语句并不是必需的,如果在类里使用其它类的全名,可以不使用 import 语句,无需导入import java.sql.Date

java.sql.Date d = new java.sql.Date();

4.2、默认导入包

Java 默认为所有源文件导入 java.lang 包下的所有类,因此前面在 Java 程序中使用 String、System 类时都无须使用 import 语句来导入这些类。但对于 Arrays 类,其位于 java.util 包下,则必须使用 import 语句来导入该类。

4.3、相同类名处理

在一些极端的情况下,import 语句也帮不了我们,此时只能在源文件中使用类全名。例如,需要在程序中使用 java.sql 包下的类,也需要使用 java.util 包下的类,则可以使用如下两行 import 语句:

import java.util.*;

import java.sql.*;

代码中强制用全路径来声明需要使用的类

java.sql.Date d = new java.sql.Date();

5、系统包

Java SE 提供了一些系统包,其中包含了 Java 开发中常用的基础类。在 Java 语言中,开发人员可以自定义包,也可以使用系统包,常用的系统包

说明
java.langJava 的核心类库,包含运行 Java 程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、异常处理和线程类等,系统默认加载这个包  
java.ioJava 语言的标准输入/输出类库,如基本输入/输出流、文件输入/输出、过滤输入/输出流等
java.util 包含如处理时间的 Date 类,处理动态数组的 Vector 类,以及 Stack 和 HashTable 类
java.awt  构建图形用户界面(GUI)的类库,低级绘图操作 Graphics 类、图形界面组件和布局管理(如 Checkbox 类、Container 类、LayoutManger 接口等),以及用户界面交互控制和事件响应(如 Event 类)
java.awt.image处理和操纵来自网上的图片的 Java 工具类库
java.wat.peer很少在程序中直接用到,使得同一个 Java 程序在不同的软硬件平台上运行
java.net实现网络功能的类库有 Socket 类、ServerSocket 类
java.lang.reflect 提供用于反射对象的工具
java.util.zip    实现文件压缩功能
java.awt.datatransfer处理数据传输的工具类,包括剪贴板、字符串发送器等
java.sql  实现 JDBC 的类库
java.rmi 提供远程连接与载入的支持
java. security  提供安全性方面的有关支持


    
   
 
    
    
    
   

    
 
   
 
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/225090.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

讲一下maven的生命周期

Maven是一种强大的项目管理工具,它可以帮助开发者组织和管理项目的构建过程。Maven的生命周期指的是一系列的活动,包括如何创建、准备、构建和测试项目的过程。以下是对Maven生命周期的主要阶段的简要概述: 获取项目:在这个阶段&…

vue2-使用vue-i18n搭建多语言切换环境

安装 注意:vue2.0要用8版本的,使用9版本的会报错 npm install vue-i18n8.27.0 --save 创建相关的语言包文件 在src目录下,新建i18n文件夹 在新文件夹i18n中新建langs文件夹,里边放语言文本文件.js zh.js:存…

html和css写淘宝的快速导航条

目录 1、css代码 2、html代码 1、css代码 <style>* {margin: 0;padding: 0;list-style: none;text-decoration: none;}.nav {width: 900px;height: 40px;background-color: rgb(247, 249, 250);margin: 50px auto;padding-left: 30px;}.nav>li {float: left;width: 1…

ERP和MES的区别与联系,这篇接地气的文章终于讲明白了!

一、ERP和MES之间的“区别” ERP和MES系统在企业管理中都扮演着重要的角色&#xff0c;但它们的功能和职责各有不同。 既然今天要聊ERP和MES的区别&#xff0c;那肯定要给大家讲明白了才行。 所以&#xff0c;这里首先得从工厂的业务模式说起。 作为一个工厂&#xff0c;存…

外包干了2个多月,技术明显有退步了。。。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;19年通过校招进入武汉某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年国庆&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

阿里云 ACR 制品中心 AI/大数据镜像专场上新推荐榜

今天&#xff0c;AI 领域的快速发展不仅需要算法的突破&#xff0c;也需要工程的创新。随着容器技术和服务在企业的应用程度不断加深&#xff0c;企业对于容器的使用也越来越多地从在线业务逐渐向 AI、大数据类型的工作负载发展。同时&#xff0c;开发人员在考虑如何通过云原生…

深入openai的发展历程,发现惊人细节

ChatGPT 是历史上增长最快的消费软件应用程序。从它的卑微起步到成为科技领域的革命性力量&#xff0c;我们将追溯它的历程和里程碑。 OpenAi公司发展史 2015-2016年成立初期&#xff1a; OpenAI成立于2015年12月&#xff0c;由伊隆马斯克&#xff08;Elon Musk&#xff09;…

Linux——操作系统与进程的基础概念

操作系统与进程的基础概念 本章思维导图&#xff1a; 注&#xff1a;思维导图对应的.xmind和.png文件都已同步导入至资源 1. 操作系统&#xff08;OS&#xff09; 操作系统的基本概念&#xff1a; 操作系统(operator system)简称OS&#xff0c;是一个管理软硬件资源的软件 1.…

新生儿皮肤护理的全面指南

引言&#xff1a; 新生儿的皮肤娇嫩而敏感&#xff0c;需要特别细致的护理来保持健康和舒适。正确的护理不仅能够防止皮肤问题的发生&#xff0c;还有助于促进宝宝的整体健康成长。本文将深入探讨新生儿皮肤护理的注意事项&#xff0c;为父母提供详尽的指南&#xff0c;以确保…

pycharm中debug,py文件

1、先把需要的实参传入 2、在合适位置打上断点 3、在小三角旁边右键调用调试 4.步进/步出查看 5.选择单步执行&#xff0c;走的更慢

Ubuntu安装向日葵【远程控制】

文章目录 引言下载向日葵安装向日葵运行向日葵卸载向日葵参考资料 引言 向日葵是一款非常好用的远程控制软件。这一篇博文介绍了如何在 Ubuntu Linux系统 中安装贝瑞向日葵。&#x1f3c3;&#x1f4a5;&#x1f4a5;&#x1f4a5;❗️ 下载向日葵 向日葵官网: https://sunl…

STM32 LCD 简单显示彩色图片

STM32 LCD 数组方式简单显示彩色图片 文章目录 STM32 LCD 数组方式简单显示彩色图片前言1、图片处理1.1 准备图片1.2 查看和调整图片大小 2、Picture2Hex软件使用3、函数代码实现3、图片显示效果4、显示图片太大会报错总结 前言 在使用LCD填充的时候发现正点原子提供了一个很好…

016 OpenCV Laplacian边缘检测

目录 一、环境 二、拉普拉斯原理 三、完整代码 一、环境 本文使用环境为&#xff1a; Windows10Python 3.9.17opencv-python 4.8.0.74 二、拉普拉斯原理 拉普拉斯算子是一种常用于图像处理的边缘检测技术&#xff0c;它有助于识别图像中的边缘和纹理特征。原理上&#x…

接雨水-困难

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a;输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表…

【精选】设计模式——策略设计模式-两种举例说明,具体代码实现

Java策略设计模式 简介 策略设计模式是一种行为型设计模式&#xff0c;它允许在运行时选择算法的行为。 在软件开发中&#xff0c;我们常常需要根据不同情况采取不同的行为。通常的做法是使用大量的条件语句来实现这种灵活性&#xff0c;但这会导致代码变得复杂、难以维护和扩…

017 OpenCV 向量机SVM

目录 一、环境 二、SVM原理 三、完整代码 一、环境 本文使用环境为&#xff1a; Windows10Python 3.9.17opencv-python 4.8.0.74 二、SVM原理 OpenCV中的向量机&#xff08;SVM&#xff09;是一种监督学习算法&#xff0c;用于分类和回归分析。它通过找到一个最优的超平…

VideoAssembler 一种新颖的方法,生成具有多样化内容的视频的方法

文章目录 摘要方法代码 VideoAssembler: Identity-Consistent Video Generation with Reference Entities using Diffusion Model 本文提出了VideoAssembler&#xff0c;一种新颖的方法&#xff0c;生成具有多样化内容的视频。它可以保留实体的保真度&#xff0c;并生成可控的内…

SAP 工序委外简介

在SAP系统中,外部加工分为工序委外和标准委外两种,对于工序委外,它存在于很多的模块中,在PP、PM、PS等模块中都有应用。 工序委外中字面理解就是在生产过程中,加工的某道工序需要外发给供应商进行加工,物权没有发生转变,只是支付给供应商相应是加工费用,实际加工成本最终…

动手学深度学习——Anaconda、pytorch、paddle安装(cpu版本)

之前出了个Windows下的深度学习安装&#xff0c;但在继续学习的过程中发现&#xff0c;沐神的一些代码跑不起来&#xff0c;这里又提供pytorch和paddle的安装&#xff0c;各位用pytorch或者百度飞桨paddlepaddle来学习深度学习也是可以的。 安装Anaconda 1. 打开Anaconda链接&…

每日一题,快来挑战,投个平台题目。

本关任务:将十个数进行从大到小的顺序进行排列。 相关知识&#xff08;略&#xff09; 编程要求 根据提示&#xff0c;在右侧编辑器Begin-End处补充代码。 输入 输入十个整数。 输出 以从大到小的顺序输出这个十个数。 测试说明 样例输入&#xff1a; 1 2 3 4 5 6 7 8 9 …