java基础 --- java包(package)

简介: java基础 --- java包(package)

1. 概述

1.1 为什么需要包这个概念

package可以简单理解为创建文件夹,windows中不能存储同类型同名称的文件,java也是。

为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间

1.2 包的作用

  • 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
  • 如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。
  • 包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。

2. 包的使用

2.1 创建包

  • 包申明必须在源文件的第一行,每个源文件只能有一个包申明,这个文件中的每个类型都应用于它
  • 如果一个源文件中没有包申明,那么其中的类、函数、枚举、注释等将被放在一个无名的包(unnamed package)中

包语句的语法格式为:

package pkg1 [.pkg2[. pkg3...]];

2.2 package目录结构

示例:一个Test.java里面的内容:

1. package net.java.util;
2. public class Test{
3. 
4.     ...
5. }

其在文件夹中的存储路径为net/java/util/Test.java,同时生成的class文件在net/java/util目录下。

类放在包中会有两种主要结果:

  • 包名成为类名的一部分
  • 包名必须与相应的字节码所在的目录结构相吻合

还是上面的示例,正确的类名是:net.java.util.Test.

2.3 使用import导入包

在 java 源文件中 import 语句应位于 package 语句之后,所有类的定义之前,可以没有,也可以有多条,其语法格式为:

import package1[.package2…].(classname|*);

导入其实和直接写在java文件中是一样的,编译器最后都会把他们写在一起。就像C中的define一样,编译的时候会展开。

3. 常见的系统包

在java中,除了我们自定义包外,java本身还提供了许多常用的系统包,如下表所示:

包名

作用

Java.lang

Language的缩写,包含了基本数据类型以及包装类,String类,线程类等,该包由系统默认加载(import).

Java.lang,reflect

反射对象包, 该包里提供关于类和对象反射信息的工具,在后续章节学习

Java.util

工具包,提供日期Date、堆栈Stack、向量Vector,链表LinkList随机数Random

Java.util.regex

正则工具包,用来匹配字符串

Java.text

处理文本包,用来格式化日期、数字和消息,分析,搜索和排序字符串,以及迭代字符、单词、语句和换行符等

Java.io

数据流包,处理文件读写、标准设备输出等

Java.net

网络编程包,里面包含了Socket (TCP客户端,用于连接远程主机)

ServerSocket(TCP服务端,用来接受客户端套接字的连接)

DatagramSocket(UDP 端点,用于发送和接收数据包)

MulticastSocket (是 DatagramSocket 的子类,用来处理广播)

Java.sql

数据库操作包,提供了与各种数据库操作的工具

4. 导入类的三种方式

  • 通过import导入完整的类路径

         import com.baidu.Test.Bus;      //import后面是有分号的

  • 通过import导入包路径

         比喻要使用某个包的所有类,可以用通配符*, impor com.baidu.Test.*;

  • 通过完整路径的方式使用类

参考链接:

https://baijiahao.baidu.com/s?id=1610064438454407570&wfr=spider&for=pc

https://www.runoob.com/java/java-package.html

https://blog.csdn.net/qq524752841/article/details/78089786

https://www.cnblogs.com/lifexy/p/10855188.html

相关文章
|
25天前
|
Java
【Java基础面试四】、介绍一下Java的数据类型
这篇文章介绍了Java的数据类型,包括8种基本数据类型(整数、浮点、字符、布尔)和3类引用数据类型(数组、类、接口),并提供了基本数据类型所占内存空间和数据范围的详细信息。
|
25天前
|
Java C++
【Java基础面试十七】、Java为什么是单继承,为什么不能多继承?
这篇文章讨论了Java单继承的设计原因,指出Java不支持多继承主要是为了避免方法名冲突等混淆问题,尽管Java类不能直接继承多个父类,但可以通过接口和继承链实现类似多继承的效果。
【Java基础面试十七】、Java为什么是单继承,为什么不能多继承?
|
25天前
|
Java
【Java基础面试三】、说一说你对Java访问权限的了解
这篇文章介绍了Java中的四种访问权限:private、default(无修饰符时的访问权限)、protected和public,以及它们分别在修饰成员变量/方法和类时的不同访问级别和规则。
【Java基础面试三】、说一说你对Java访问权限的了解
|
17天前
|
Java Maven 数据库
Java 包(package)
Java 包(package)
22 1
|
19天前
|
Java
Java应用结构规范问题之在biz层的convert包实现转换的问题如何解决
Java应用结构规范问题之在biz层的convert包实现转换的问题如何解决
|
24天前
|
Java
【Java基础面试三十七】、说一说Java的异常机制
这篇文章介绍了Java异常机制的三个主要方面:异常处理(使用try、catch、finally语句)、抛出异常(使用throw和throws关键字)、以及异常跟踪栈(异常传播和程序终止时的栈信息输出)。
|
24天前
|
Java
【Java基础面试三十八】、请介绍Java的异常接口
这篇文章介绍了Java的异常体系结构,主要讲述了Throwable作为异常的顶层父类,以及其子类Error和Exception的区别和处理方式。
|
25天前
|
Java
【Java基础面试十六】、Java中的多态是怎么实现的?
这篇文章解释了Java中多态的实现机制,主要是通过继承,允许将子类实例赋给父类引用,并在运行时表现出子类的行为特征,实现这一过程通常涉及普通类、抽象类或接口的使用。
|
15天前
|
存储 安全 Java
java基础Java的Deque之Deque、BlockingDeque、LinkedBlockingDeque、ArrayDeque
在实际编程中,合理利用Java的Deque和它的具体实现,可以在不同的应用场景中发挥高效和线程安全的队列管理功能。通过了解和比较Deque的不同实现,可以根据应用需求做出适当的技术选型,以支持高效且健壮的应用架构。
9 0
|
24天前
|
JavaScript Java API
Java日志通关(二) - Slf4j+Logback 整合及排包
作者日常在与其他同学合作时,经常发现不合理的日志配置以及五花八门的日志记录方式,后续作者打算在团队内做一次Java日志的分享,本文是整理出的系列文章第二篇。