JAVA笔记四:包(package)与JAR文件

一、包(package)

1、包与包名

包:是将多个类组织在一起的集合。

使用包的原因是确保类名的唯一性,同一个包中的类名不能重复。

包名:用一个网络域名以逆序的形式作为包名。比如abc.edu.cn,逆序得到包名为cn.edu.abc,然后可以追加一个工程名corejava,在把类Employee放在这个包里,那么这个类的完全限定名为:cn.edu.abc.corejava.Employee

2、类的导入

一个类可以使用所属包中的所有类,以及其他包中的公共类。(public class)

两种方式访问另一个包中的公共类:使用完全限定名;使用import语句。

第一种方式:使用完全限定名:

java.time.LocalDate today = java.time.LocalDate.now();

第二种方式:使用import语句

import java.time.*;

LocalDate today = new LocalDate.now();

注意:使用"*"只能导入一个包中的所有类,而不能使用import java.*或import java.*.*导入以java为前缀的所有包。

如果导入的多个包发送类名冲突的时候,可使用完全限定名,即类名前加上完整的包名。

3、在包中增加类

要想将类加入包中,就必须在源文件的开头用package引入包名

package cn.edu.abc.corejava;

public class Employee{

        .......

}

 如果源文件开头没有package语句,则这个源文件的类属于无名包,无名包没有包名。

将源文件放在与完整包名匹配的子目录中,例如cn.edu.abc.corejava包中的所有源文件应该放置在子目录cn/edu/abc/corejava中(windows中则是cn\edu\abc\corejava)

 在其他源文件中利用import cn.edu.abc.corejava.*;

编译器处理文件命令: javac cn/edu/abc/corejava/Employee.java

解释器加载类命令:java cn.edu.abc.corejava.Employee

注意:

编译器编译的是文件,文件名使用目录分割符与java扩展名
解释器加载的是类,类名是以小数点分割无扩展名

 4、包访问

标记为public的部分可以由任意类使用,标记为private的部分只能由定义他们的类使用,如果没有指定public或private,这个部分(类、方法、变量)可以被同一个包中的所有方法访问。

public类可以没有,但是如果有的话,public修饰的类名必须与源文件名保持一致;并有且仅有一个!!

将原来的EmployeeTest.java拆成两个public类

 二、JAR文件

java归档(JAR)文件时将应用程序打包后形成的一个单独文件,JAR文件是zip压缩格式的文件。

1、创建JAR文件

可以使用JAR工具制作JAR文件(在默认的JDK安装中,这个工具位于jdk/bin目录下)。创建一个新的JAR文件常用命令如下:

jar cvf jarFileName file1 file2

 2、清单文件

每个JAR文件除了类文件,图像和其他资源外,还包含一个清单文件(manifest),用于归档文件的特殊特性。

清单文件被命名为MANIFEST.MF,它位于JAR文件的一个特殊META-INF子目录中。

3、命令行选项的说明

java开发包(JDK)的命令行一直以来都使用单个短横线加选项名的形式,但jar命令是个例外,这命令遵循经典的tar命令选项格式,而没有短横线。

从java9开始使用多字母前加两个短横线

jar --help

 三、类设计技巧

1、一定要保证数据私有

2、一定要对数据初始化。java不会初始化局部变量,会对对象的实例字段进行初始化。最好不要依赖系统的默认值,而是应该显示的初始化所有的数据。

3、不要在类中使用过多的基本类型

4、不是所有的字段都需要字段访问器与字段更改器

5、优先使用不可变的类

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值