前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >什么是包?

什么是包?

作者头像
BWH_Steven
发布2021-10-13 12:04:57
6320
发布2021-10-13 12:04:57
举报
文章被收录于专栏:理想二旬不止理想二旬不止

为满足移动端和PC端的双重阅读体验,以及文章质量的保证,开始重构的以及新写的文章都会基于 “语雀” 平台编写,公众号会同步刚发布的文章,但随后的修改或者更新只会在语雀中维护。

👉 点击底部左下角 “阅读原文” 即可跳转到文章最新页面!理想二旬不止@BWH_Steven

1. 入门

1.1 概念

在我们设计一个程序的时候(尤其是多人合作),会写一些类来实现功能,但是往往会有重名的现象发生,为了解决这个问题,则专门设计了包。

理解:不同的城市之间存在相同名字的小区,用城市名则可以区分这些重名小区,城市名就可以理解为上面的包,小区则可以看做是重名的类,通过这个前缀,解决了重名问题。

但是包的为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。 其实可以理解为就是文件夹,并且使用了树形目录的存储方式。

1.2 作用

  1. 区分同名的类
  2. 对类进行分类管理
  • 按照功能分 —— 把功能相似或者相关的类或接口组织在同一个包中
  • 按照模块分 —— 例如用户模块或者消息模块等等放在不同的包下

1.3 定义

格式

代码语言:javascript
复制
// 多级包用 . 隔开
package 包名;

举例

代码语言:javascript
复制
package cn.ideal.user.service.impl

一般来说,包名的命名都是用企业或者个人的域名反写,例如 www.baidu.com 就可以写 com.baidu.www 然后后面再跟具体的业务。例如上例中,cn.ideal 后面的才是我的具体业务,用户模块 user 下的业务层 service 下的实现层 impl 。

1.4 注意

  • package 语句必须在文件中的第一条有效语句
  • 在一个 Java 文件中,只能有一个 package

1.5 带包的编译和运行(选看)

如果想要了解以及使用 java javac 命令编译带有包结构的文件,可以查看一下命令。而在 IDEA 和 Ecplise 等编译器中会自动的生成包名的结构,不需要自己主动引入包路径。

代码语言:javascript
复制
javac -d . xxx.java
//可以使用 *.java代表当前目录下的所有源文件

//运行:
java 包名.HelloWorld

2. 导包

当你需要使用一个包中的成员的时候,我们就需要在 Java 程序中导入该包,如果两个类在同一个包中,则不必导包

格式:
第一种:
代码语言:javascript
复制
// 导入单个(推荐)
import 包名;

注意:我们用谁就导谁。(尽量少用星号* 如下)

第二种:
代码语言:javascript
复制
// 导入java.io下的所有类(不推荐)
import java.io.*

注意:

代码语言:javascript
复制
// 前两句是否能用最后一句代替
import java.lang.*;
import java.io.*;

// 无法代替上面两句,只能指向到单层的包中
import java.*;

注意:使用 java.lang 的内容是不用导包的,具体可以查看 jdk-api

作用:

使用某一包中对应成员,并且简化书写 例如我们想使用 java.io 包下的 BufferedReader 我们可以

代码语言:javascript
复制
import java.io.BufferedReader

BufferedReader in = new BufferedReader(new FileReader("foo.in"));

如果没有使用import导包 我们在使用java类库的时候,就需要写出该类的全路径名称,明显代码过于冗长

代码语言:javascript
复制
java.io.BufferedReader in = new java.io.BufferedReader(new FileReader("foo.in"));

6.3 权限修饰符 看完包的基本概念,我们也就理解了当初所讲权限修饰符的问题

本类

同一个包下

不同包下的子类

不同包下的无关类

public

Y

Y

Y

Y

protected

Y

Y

Y

默认

Y

Y

private

Y

这四种权限修饰符在任何情况下只能出现一种

🔥️ 语雀地址:

  • https://www.yuque.com/ideal-20

🔥️ 本篇语雀地址:

  • https://www.yuque.com/ideal-20/java/qgrpy0

🔥️ 或者点击左下角 “阅读原文”

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-09-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 理想二旬不止 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 入门
    • 1.1 概念
      • 1.2 作用
        • 1.3 定义
          • 1.4 注意
            • 1.5 带包的编译和运行(选看)
            • 2. 导包
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档