Java 包(什么是包?)

article/2025/9/22 22:57:54

  • 概念
  • 导入包中的类
  • 静态导入
  • 将类放到包中
    • 基本规则
    • 操作步骤
  • 包的访问权限控制
  • 常见的系统包

概念

包(package) 是组织的一种方式.
使用包的主要目的是保证类的唯一性.
例如:你在代码中写了一个 Test 类. 然后你的舍友也可能写一个 Test 类. 如果出现两个同名的类, 就会冲突, 导致代码不能编译通过。

导入包中的类

Java 中已经提供了很多现成的类供我们使用.当我们在idea中通过.操作符访问时会自动弹出很多包
在这里插入图片描述

public class Text {public static void main(String[] args) {java.util.Date date = new java.util.Date();//得到一个毫秒级别的时间戳System.out.println(date.getTime());}}

可以使用== java.util.Date== 这种方式引入 java.util 这个包中的== Date== 类。
但是这种写法比较麻烦一些, 可以使用 import 语句导入包。

import java.util.Date;//导入包
public class Test {public static void main(String[] args) {Date date = new Date();// 得到一个毫秒级别的时间戳System.out.println(date.getTime());}
}

再比如经常见到的ScanneArrays

import java.util.Arrays;
import java.util.Scanner;
public class Text {public static void main(String[] args) {Scanner sc = new Scanner(System.in);//需要导入包int n = sc.nextInt();int[] arr = new int[n];for (int i = 0; i < n; i++) {arr[i] = sc.nextInt();}System.out.println(Arrays.toString(arr));//需要导入包}}

在这里插入图片描述
如果需要使用 java.util 中的其他类, 可以使用 import java.util.*

//本来是这样
import java.util.Date;
import java.util.Scanner;
public class Text {public static void main(String[] args) {Scanner sc = new Scanner(System.in);Date date = new Date();}
}//然后是这样
import java.util.*;
public class Text {public static void main(String[] args) {Scanner sc = new Scanner(System.in);Date date = new Date();//还可以写new util中的更多类}
}

但是我们更建议显式的指定要导入的类名. 否则还是容易出现冲突的情况。

import java.util.*;
import java.sql.*;
public class Test {public static void main(String[] args) {// util 和 sql 中都存在一个 Date 这样的类, 此时就会出现歧义, 编译出错Date date = new Date();System.out.println(date.getTime());}
}
// 编译出错
Error:(5, 9) java: 对Date的引用不明确
java.sql 中的类 java.sql.Date 和 java.util 中的类 java.util.Date 都匹配//处理
import java.util.*;
import java.sql.*;
public class Test {public static void main(String[] args) {//这样就相当于点名道姓了java.util.Date date = new java.util.Date();System.out.println(date.getTime());}
}

静态导入

使用 import static 可以导入包中的静态的方法和字段.

import static java.lang.System.*;
public class Test {public static void main(String[] args) {out.println("hello");//打印不用写System了}
}//这样写代码有时候也方便
import static java.lang.Math.*;
public class Test {public static void main(String[] args) {double x = 30;double y = 40;// 静态导入的方式写起来更方便一些.// double result = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));double result = sqrt(pow(x, 2) + pow(y, 2));System.out.println(result);}
}

将类放到包中

基本规则

在文件的最上方加上一个 package 语句指定该代码在哪个包中
包名需要尽量指定成唯一的名字, 通常会用域名的颠倒形式(例如 com.bit.demo1 ).
包名要和代码路径相匹配. 例如创建 com.bit.demo1 的包, 那么会存在一个对应的路径 com/bit/demo1 来存储代码.
如果一个类没有 package 语句, 则该类被放到一个默认包中

操作步骤

在 IDEA 中先新建一个包: 右键 src -> 新建 -> 包
在这里插入图片描述
在弹出的对话框中输入包名
在这里插入图片描述
在包中创建类, 右键包名 -> 新建 -> 类, 然后输入类名即可
在这里插入图片描述
在新创建的 Test.java 文件的最上方, 就出现了一个 package 语句

在这里插入图片描述

包的访问权限控制

我们已经了解了类中的 public 和 private. private 中的成员只能被类的内部使用。
如果某个成员不包含 public 和 private 关键字, 此时这个成员可以在包内部的其他类使用, 但是不能在包外部的类使用。
在这里插入图片描述


package com.baidu.www;
public class Text {int a = 10;
}package com.baidu.www;
public class Text1 {public static void main(String[] args) {Text t = new Text();System.out.println(t.a);}
}
//执行结果
10

不可以在包的外部。
在这里插入图片描述

import com.bit.demo.Demo1;
public class Test {public static void main(String[] args) {Demo1 demo = new Demo1();System.out.println(demo.value);}
}
// 编译出错
Error:(6, 32) java: value在com.bit.demo.Demo1中不是公共的; 无法从外部程序包中对其进行访问

常见的系统包

  1. java.lang:系统常用基础类(String、Object),此包从JDK1.1后自动导入。
  2. java.lang.reflect:java 反射编程包;
  3. java.net:进行网络编程开发包。
  4. java.sql:进行数据库开发的支持包。
  5. java.util:是java提供的工具程序包。(集合类等) 非常重要
  6. java.io:I/O编程开发包

http://chatgpt.dhexx.cn/article/r4sjVQ2D.shtml

相关文章

一、JAR包

一、JAR包 1、什么是jar包 **jar包就是 Java Archive File&#xff0c;顾名思义&#xff0c;它的应用是与 Java 息息相关的&#xff0c;是 Java 的一种文档格式&#xff0c;是一种与平台无关的文件格式&#xff0c;可将多个文件合成一个文件。**jar 包与 zip 包非常相似——准…

jar 包

文章目录 1.什么是 jar 包?2.怎么打 jar 包&#xff1f;2.1在 cmd 环境下打 jar 包2.2在 cmd 使用打的 jar 包方式一方式二 2.3补充&#xff1a;jar 包是可以直接运行的2.4在IDEA中打 jar 包2.5在IDEA中运行打好的 jar 包 3.补充&#xff1a;cmd环境变量相关命令 1.什么是 jar…

jar包是什么?

什么是jar包 JAR&#xff08;Java ARchive&#xff0c;Java 归档&#xff09;是一种与平台无关的文件格式&#xff0c;可将多个文件合成一个文件。用户可将多个 Java applet 及其所需组件&#xff08;.class 文件、图像和声音&#xff09;绑定到 JAR 文件中&#xff0c;而后作…

Jar包基础学习

一.什么是jar包 在软件领域&#xff0c;JAR文件&#xff08;Java归档&#xff0c;英语&#xff1a;Java Archive&#xff09;是一种软件包文件格式&#xff0c;通常用于聚合大量的Java类文件、相关的元数据和资源&#xff08;文本、图片等&#xff09;文件到一个文件&#xff…

jar包完全解读

本文抄自&#xff1a;jar包的一些事儿 前言&#xff1a; 作为java程序员&#xff0c;日常工作就是打jar包&#xff0c;可是对jar包的了解有多少呢&#xff1f; 一、什么是jar包 jar包就是 Java Archive File&#xff0c;顾名思义&#xff0c;它的应用是与 Java 息息相关的&…

Python-基于词典-中文分词算法

文章目录 三种分词算法比较逆向最大匹配从后往前扫描词典匹配 概率分词原理DAG计算大概率路径 封装 图论知识补充图的表示方法概率图模型贝叶斯网络 三种分词算法比较 dt {空调: 1, 调和: 1, 和风: 1, 风扇: 1,空: 1, 调: 1, 和: 2, 风: 1, 扇: 1} # 词典 max_len max(len(…

分词算法介绍

如有需要可以转载&#xff0c;但转载请注明出处&#xff0c;并保留这一块信息&#xff0c;谢谢合作&#xff01; 部分内容参考互联网,如有异议,请跟我联系! 作者:刀剑笑(Blog:http://blog.csdn.net/jyz3051) Email:jyz3051 at yahoo dot com dot cn(at请替换成&#xff…

为什么中文分词比英文分词更难?有哪些常用算法?(附代码)

导读&#xff1a;人类文明的重要标志之一是语言文字的诞生。数千年来&#xff0c;几乎人类所有知识的传播都是以语言和文字作为媒介。 自然语言处理是使用计算机科学与人工智能技术分析和理解人类语言的一门学科。在人工智能的诸多范畴中&#xff0c;自然语言的理解以其复杂性、…

中文分词工具讨论

中文分词工具讨论 1 中文分词原理介绍 1.1 中文分词概述 中文分词(Chinese Word Segmentation) 指的是将一个汉字序列切分成一个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。 1.2 中文分词方法介绍 现有的分词方法可分为三大类&#xff1…

几种中文分词工具

word分词 word分词是一个Java实现的分布式的中文分词组件&#xff0c;提供了多种基于词典的分词算法&#xff0c;并利用ngram模型来消除歧义。能准确识别英文、数字&#xff0c;以及日期、时间等数量词&#xff0c;能识别人名、地名、组织机构名等未登录词。能通过自定义配置文…

NLP词法分析(一):中文分词技术

文分词介绍 中文分词相较于英文分词要难许多&#xff0c;因为英文本身就是由单词与空格组成的&#xff0c;而中文则是由独立的字组成的&#xff0c;但同时语义却是有词来表达的。因此对于中文的分析与研究&#xff0c;首先应寻找合适的方法进行分词。现有的中文分词技术主要分…

双向最大匹配算法——基于词典规则的中文分词(Java实现)

目录 前言 一、中文分词理论描述 二、算法描述 1、正向最大匹配算法 2、反向最大匹配算法 3、双剑合璧 三、案例描述 四、JAVA实现完整代码 五、组装UI 六、总结 前言 中文分词所需要的词典放在公众号&#xff0c;关注文章末尾的公众号&#xff0c;回复“字典”获取…

中文分词技术及应用

中文分词技术及应用中文分词算法有5大类&#xff1a; 1、 基于词典的方法 2、基于统计的方法 3、基于规则的方法 4、基于字标注的方法 5、基于人工智能的技术&#xff08;基于理解&#xff09;的方法 中文分词目前有4个瓶颈&#xff1a; 1、分词歧义 2、未登陆词识别 3、分词粒…

【NLP】为什么中文分词比英文分词更难?有哪些常用算法?(附代码)

导读&#xff1a;人类文明的重要标志之一是语言文字的诞生。数千年来&#xff0c;几乎人类所有知识的传播都是以语言和文字作为媒介。 自然语言处理是使用计算机科学与人工智能技术分析和理解人类语言的一门学科。在人工智能的诸多范畴中&#xff0c;自然语言的理解以其复杂性、…

正向最大匹配中文分词算法

中文分词一直都是中文自然语言处理领域的基础研究。目前&#xff0c;网络上流行的很多中文分词软件都可以在付出较少的代价的同时&#xff0c;具备较高的正确率。而且不少中文分词软件支持Lucene扩展。但不管实现如何&#xff0c;目前而言的分词系统绝大多数都是基于中文词典的…

NLP|中文分词技术及应用

摘要:中文分词是中文信息处理的重要基础,本文详细阐述了目前主要的几种中文分词算法的技术原理 、中文分词目前的瓶颈和评价准则,以及中文分词的具体应用。 中文分词指将一个汉字序列切分成一个个单独的词。现有的中文分词算法有五大类:基于词典的方法,基于统计的方法,基…

入门科普:一文看懂NLP和中文分词算法(附代码举例)

导读&#xff1a;在人类社会中&#xff0c;语言扮演着重要的角色&#xff0c;语言是人类区别于其他动物的根本标志&#xff0c;没有语言&#xff0c;人类的思维无从谈起&#xff0c;沟通交流更是无源之水。 所谓“自然”乃是寓意自然进化形成&#xff0c;是为了区分一些人造语言…

中文分词算法—— 基于词典的方法

1、基于词典的方法&#xff08;字符串匹配&#xff0c;机械分词方法&#xff09; 定义:按照一定策略将待分析的汉字串与一个“大机器词典”中的词条进行匹配&#xff0c;若在词典中找到某个字符串&#xff0c;则匹配成功。 按照扫描方向的不同&#xff1a;正向匹配和逆向匹配…

【NLP】中文分词:原理及分词算法

一、中文分词 词是最小的能够独立活动的有意义的语言成分&#xff0c;英文单词之间是以空格作为自然分界符的&#xff0c;而汉语是以字为基本的书写单位&#xff0c;词语之间没有明显的区分标记&#xff0c;因此&#xff0c;中文词语分析是中文信息处理的基础与关键。 Lucene中…

常见分词算法综述

常见分词算法综述 文章目录 常见分词算法综述一、基于词典的分词1. 最大匹配分词算法2. 最短路径分词算法&#xff1a;2.1基于dijkstra算法求最短路径&#xff1a;2.2N-dijkstra算法求最短路径&#xff1a;2.3. 基于n-gram model的分词算法&#xff1a; 二、基于字的分词算法生…