包与组件化开发

包的概述

  • Java中的可复用软件资源以包的形式提供
  • 每个包都针对某个领域:如网络,GUI(用户图形界面)等
  • 包中存放了彼此在功能上互补的类
  • 包类似于C++中等namespace

为何要引入包?

  1. 解决类的同名问题
  2. 便于代码复用与维护
    在这里插入图片描述
  • JDK的各个组件,都是以包的形式提供的
  • 图中每个“方块”,都代表着一个特定的技术领域,而每个领域都包容着若干个包,每个包中,包容若干个类和接口
常见的包


在这里插入图片描述

包的创建与使用

  • 使用import语句在Java程序中使用包的类型
    (1)导入特定的类型(类或接口)
import 包名.类型名

(2)导入指定包中的所有类型

import 包名.*
  • Java编译器会将import语句引入的包字符串拼接到标识符前

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • Java从一开始,就规范了代码的命名规范,比如,所有用户自己开发的包,都不能以java和javax开头,另外,声明为public的类,应该放到与其类名一致的文件中,与此同时,以点号分隔的包名,其实对应着相应的文件结构,这样一来,给定一个完整的类型名,就可以很快地定位到其编译后的.class 文件
  • 当使用java命令运行一个.class文件时,此文件必须放在与它所在的包名一致的文件夹层次结构之下
  • 当使用java命令运行一个.class文件时,JVM会默默地加载JRE中的多个包
  • 在这里插入图片描述

Java组件化开发

为了应对功能复杂、规模增大的软件系统,将可重用的代码抽取出来单独构建:Component。开发新系统时,直接使用,“组件化开发”(component based development)的基本思想。

  • Java应用程序开发时,最普遍使用的组件就是jar包,JDK的各个组件,就是以jar包的形式提供给Java开发者的。
  • 重构:方法抽取(把能够在很多地方用到的功能抽取成方法)

在这里插入图片描述
在这里插入图片描述

谈谈jar文件

  • jar文件其实是一个压缩包,遵循于zip数据压缩标准,可以使用解压软件打开
  • jar文件中包容一个清单(manifest)文件,包容一些重要信息。比如可以在Windows资源管理器中“双击”执行的jar包,其清单文件必须指明包中哪个类是主类(main class),从而让JVM知道应该从哪个类中的main方法开始执行
  • 可执行jar包在生成jar包时,可以指定主类(main class)。在Windows资源管理器中,双击可直接运行,但前提是这个包中必须包容所有所需组件。如果一个指定了主类的jar包,它依赖于另外的jar包,则必须将其合并起来,才能正确运行
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
Jar命令示例
jar cf test.jar test//将当前文件夹下test子文件夹的所有内容打包为test.jar
jar cvf test.jar test//同前,只不过在压缩时显示压缩过程信息
jar tf test.jar//查看jar文件内容
jar xvf test.jar//解压缩jar包

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值