一、包(package)
- 对类文件进行分类管理
- 给类提供多层命名空间
- 写在程序文件的第一行
- 类名的全称是 包名.类名
- 包也是一种封装形式
- 将java文件和class文件分离了
二、编译
- 格式:javac -d . 类名.java -d用于指定目录 . 代表当前目录,也可以指定其他目录
- 运行:java 包名.类名
三、包与包之间的访问
- 包与包之间进行访问,被访问的包中的类以及类中的成员,需要public修饰
- 不同包中的子类还可以直接访问父类中被protected权限修饰的成员
- 包与包之间可以使用的权限只有两种:public 和 protected
四、不同的权限修饰符
public protected default private
同一个类中 ok ok ok ok
同一个包中 ok ok ok
子类 ok ok
不同包中 ok
五、注意
一个java文件中只能有一个public类 并且 java文件名必须和public类名相同
六、import
- import导入的是包中的类,不包含子包中的类
- 可以简化类名的书写
- 如:import java.util.*;
- 建议:不要写通配符 * ,要用到哪个类就导入哪个类 如:import java.util.Collections;
七、包名
- 包名全小写
- 定包名不要重复,可以实用url来完成定义,因为url是唯一的
- 如:面试传智播客:官方网址是:www.itcast.cn 定包名可以为:package cn.itcast.demo
八、jar包
- 是java的压缩包
- 方便项目的携带
- 方便使用,只要在classpath设置jar路径即可,如:set classpath=%classpath%;E:\first.jar;
- 数据库驱动,SSH框架等都是以jar包体现的
- 将多个包打成jar包:jar -cf jar包名字.jar 包1 包2....
九、jar命令具体用法
1,用法:jar {ctxui}[vfm0Me] [jar-文件] [manifest-文件] [-C 目录] 文件名 ...
2,选项:
-c 创建新的存档
-t 列出存档目录
-x 解压缩已存档的指定(或所有)文件
-u 更新已存在的存档
-v 生成详细输出到标准输出上
-f 指定存档文件名
-m 包含指定清单文件中的清单信息
-e 为捆绑到可执行 jar 文件的独立应用程序指定应用程序入口点
-0 仅存储:不实用任何zip压缩
-M 不创建所有项的清单(manifest〕文件
-i 为指定的jar文件生成索引信息
-C 更改为指定的目录并包含其中的文件
3,如果一个文件名是一个目录,它将被递归处理。
4,清单(manifest〕文件名和存档文件名和入口点名的指定顺序与“m”、“f”、“e”标志的指定顺序相同
5,示例1:将两个class文件存档到一个名为 'classes.jar' 的存档文件中:
jar cvf classes.jar Foo.class Bar.class
6,示例2:用一个存在的清单(manifest)文件 'mymanifest' 将 foo/ 目录下的所有文件存档到一个名为 'classes.jar' 的存档文件中:
jar cvfm classes.jar mymanifest -C foo/ .
7,打成jar包后jar包里会自动生成一个META-INF目录
定义入口点:
新建任意名称txt文件:
写入:Main-Class: com.mycompany.myapp.Sample //冒号后必须有空格,结尾键入回车
Smple为带主函数的class这样生成的jar可以双击执行
十、常见的软件包:
- java.lang : language java的核心包,Object System String Throwable jdk1.2版本后,该包中的类自动被导入。
- java.awt : 定义的都是用于java图形界面开发的对象。
- javax.swing: 提供所有的windows桌面应用程序包括的控件,比如:Frame , Dialog, Table, List 等等,就是java的图形界面库。
- java.net : 用于java网络编程方面的对象都在该包中。
- java.io : input output 用于操作设备上数据的对象都在该包中。比如:读取硬盘数据,往硬盘写入数据。
- java.util : java的工具包,时间对象,集合框架。
- java.applet: application+let 客户端java小程序。server+let --> servlet 服务端java小程序。