一丶包的定义及使用
1、包的定义
<–>使用package关键字完成。
同一个文件夹中是不可能同时存在同一个 *.class 文件的。
包实际上就属于一个文件夹。
一个类的完整名称是“包.类”名称。
在实际的开发中没有包的类是不存在的。
程序中定义一个包之后可以通过以下的命令进行编译:【javac -d . Hello.java】。
-d:表示将根据package的定义生成文件夹。
. :表示在当前所在的文件夹之中生成 *.class 。
访问的时候必须连包一起访问:【java org.lxh.demo.Hello】。
2、包的导入
<–>使用import语句。
①、调用另一个包中所包含的类。
import 包.类;
②、导入一个包的多个类。
import org.demoa.*; //导入所需要的类
在两个包中有相同的类,只能通过完整的“包.类”的方式进行对象的实例化。
org.demoa.Info info = new org.demoa.Info();
<-----包-----> 名称 = new <-----包----->();
③、关于public class和class声明的区别:
public class:类名称必须和文件名称一致,【可以被外包所访问】。
class:类名称可以与文件名称不一致,但是执行的时候要【执行类名称】,而且【不能被外包所访问】。
3、静态导入。
一个类中的全部方法都是静态方法,可以直接将方法导入进来。
二丶系统的常用包
在 Java 语言中为开发者准备了各种各样的开发包,常见的包有以下几种:
java.lang:是一个基础的开发包。
包含了一些常用类:String、Integer、Exception、Object
java.lang.reflect:是反射操作包。
java.util:为开发的工具包。
java.io:完成 IO 操作的开发包。
java.sql:完成数据库的开发包。
java.text:格式化的开发包。
java.applet:Applet程序的实现包。
java.awt、javax.swing:图形界面的开发包。
三丶JAR命令
(1)创建jar包
jar cf hello.jar hello
利用test目录生成hello.jar包,如hello.jar存在,则覆盖。
(2)创建并显示打包过程
jar cvf hello.jar hello
利用hello目录创建hello.jar包,并显示创建过程。
例:E:\>jar cvf hello.jar hello
`标明清单(manifest)`
增加:hello/(读入= 0) (写出= 0)(存储了 0%)
增加:hello/TestServlet2.class(读入= 1497)(写出= 818)(压缩了 45%)
增加:hello/HelloServlet.class(读入= 1344)(写出= 736)(压缩了 45%)
增加:hello/TestServlet1.class(读入= 2037)(写出= 1118)(压缩了45%)
(3)显示jar包:
jar tvf hello.jar
查看hello.jar包的内容
指定的jar包必须真实存在,否则会发生FileNoutFoundException。
(4)解压jar包:
jar xvf hello.jar
解压hello.jar至当前目录
(5)jar中添加文件:
jar uf hello.jar HelloWorld.java
将HelloWorld.java添加到hello.jar包中。
(6)创建不压缩内容jar包:
jar cvf0 hello.jar *.class
利用当前目录中所有的.class文件生成一个不压缩jar包。
(7)创建带manifest.mf文件的jar包:
jar cvfm hello.jar manifest.mf hello
- 创建的jar包多了一个META-INF目录,META-INF止录下多了一个manifest.mf文件,至于manifest.mf的作用,后面会提到。
(8)忽略manifest.mf文件:
jar cvfM hello.jar hello
生成的jar包中不包括META-INF目录及manifest.mf文件。
(9)加-C应用:
jar cvfm hello.jar mymanifest.mf -C hello/
表示在切换到hello目录下然后再执行jar命令。
(10)-i为jar文件生成索引列表:
- 当一个jar包中的内容很好的时候,你可以给它生成一个索引文件,这样看起来很省事。
jar i hello.jar
- 执行完这条命令后,它会在hello.jar包的META-INF文件夹下生成一个名为INDEX.LIST的索引文件,它会生成一个列表,最上边为jar包名。
(11)导出解压列表:
jar tvf hello.jar >hello.txt
如果你想查看解压一个jar的详细过程,而这个jar包又很大,屏幕信息会一闪而过,这时你可以把列表输出到一个文件中。
(12)jar -cvf hello.jar hello/*
例如原目录结构如下:
hello
|---com
|---org
问题。
本想只把com目录和org目录打包,而这时jar命令会连同hello目也一块打包。
解决。
jar命令生成的压缩文件会包含它后边出的目录。
我们应该进入到hello目录再执行jar命令。
2、Manifest.mf文件编写规则:
(1)不能有空行和空格的地方。
第一行不可以是空行( 第一行的行前不可以有空行),行与行之间不能有空行,第行的行尾不可以有空格。
(2)一定要有空行的地方。
最后一行得是空行(在输完你的内容后加一个回车就OK)。
(3)一定有空格的地方。
key: value 在分号后面一定要写写一个空格。
四丶命名规范(知道)
1、
定义【类名称】的时候,每个单词的首字母大写:HelloInfo
2、
定义【方法名称】的时候,第一个单词的首字母小写,之后每个单词的首字母大写:printInfo()
3、
定义【属性】的时候,第一个单词的首字母小写,之后每个单词的首字母大写:empName
4、
定义【常量】的时候,所有的单词字母都要大写:INFO
5、
定义【包名称】的时候,所有的单词的字母都要小写:org.demo
五丶访问权限
位置 | public | protected | default | private |
---|---|---|---|---|
本类 | √ | √ | √ | √ |
本包中的其他类 | √ | √ | √ | × |
不同包的子类 | √ | √ | × | × |
不同包的非子类 | √ | × | × | × |