第7章包及访问控制权限7.1包的基本概念7.2系统常见包7.3包的导入7.4访问控制权限修饰符7.5jar命令的使用7.1包的基本概念•作用:为了避免类名的重复,Java使用包将类组织起来。这样,便于管理、组织类。•注意:在文件系统中,包的表现形式虽然是目录结构,但并不等同于先手工创建目录,然后再将字节码文件复制到里面。在实际项目中,必须保证在类里有包的声明语句。而且是类就必须放包里,不存在没包的类。1.定义包•声明:使用package关键字创建一个包。•要求:package语句必须放在Java源程序的首行,且只有一条package语句。•在Java中可以创建多级包,使用”.”间隔。•格式:package包名称.子包名称;•范例PackageDemo.javapackageorg.ly.demo07;//定义一个包classDemo{//读程序publicStringgetInfo(){returnHelloWorld!!!;}}publicclassPackageDemo{publicstaticvoidmain(Stringargs[]){System.out.println(newDemo().getInfo());}}•注意:类名的变化:没有包类名定义包包.类名org.ly.demo07.PackageDemo2.装包•编译:PackageDemo.javajavac–d.PackageDemo.java参数1:-d生成文件夹,生成的文件夹以package关键字定义的包为准。参数2:.表示在当前所在的文件夹中生成。或指定具体路径,如e:、f:、d:/某个文件夹•运行:必须输入完整名称“包.类名称”•操作:PackageDemo.javapackageorg.ly.demo07;7.2系统常见包序号包名称作用1java.lang基本包,现在自动导入2java.lang.reflect发射机制包3java.util工具包4java.text提供有关文本处理类库5java.sql数据库操作包6java.net网络编程7java.io输入、输出处理8java.awt图形用户界面重量级组件9javax.swing图形用户界面轻量级组件7.3包的导入•当一个包中的类文件需要使用另外一个包中的类文件时,需要使用导入命令。Java中使用import关键字导入包。•import语句格式①手工导入所需要的类import包名.子包名.类名;②由JVM自动加载所需的类import包名.子包名.*;•注意:如果一个类要被外包访问,该类一定要定义成public。•拆分PackageDemo.java中的两个类。①Demo存放在org.ly.demo07.a包中②PackageDemo存放在org.ly.demo07.b包中packageorg.ly.demo07;//定义一个包classDemo{publicStringgetInfo(){returnHelloWorld!!!;}}publicclassPackageDemo{publicstaticvoidmain(Stringargs[]){System.out.println(newDemo().getInfo());}}packageorg.ly.demo07.a;publicclassDemo{publicStringgetContent(){returnHelloWorld!!!;}}编译时先编译Demo.java,再编译ImportDemo.java,因为后者使用了前者的类进行操作。packageorg.ly.demo07.b;//放在不同的包中importorg.ly.demo07.a.*;//导入不同包中的Demo类publicclassImportDemo{publicstaticvoidmain(Stringargs[]){System.out.println(newDemo().getContent());}}7.4访问控制权限修饰符•学习了包的概念之后,就可以详细地学习Java中的访问控制权限。•访问控制权限共有4种。①public②default(默认)③protected④private•按照权限大小排序publicprotecteddefaultprivate访问权限汇总表范例privatedefaultprotectedpublic类内部同包无继承关系类同包子类不同包子类不同包无继承关系类packageorg.ly.demo07.h;importorg.ly.demo07.g.HelloDemo;classSubHelloDemoextendsHelloDemo{publicvoidprint(){System.out.println(访问受保护属性:+super.name);}}publicclassProtectedDemo{publicstaticvoidmain(Stringargs[]){System.out.println(newSubHelloDemo().print());}}packageorg.ly.demo07.g;publicclassHelloDemo{protectedStringname=LY;}观察protected访问权限7.5jar命令的使用•JDK的bin文件夹中jar.exe文件•要想使用jar命令,必须设置好classpath路径13环境设置•JAVA_HOME——作用:用于存放JDK安装路径E:\Java\jdk1.6.0-17•PATH——作用:使系统可以在任何路径下识别java的命令;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin•CLASSPATH——作用:为java加载类文件、jar文件.;%JAVA_HOME%\lib\dr.jar;%JAVA_HOME%\lib\tools.jarjar命令操作步骤1.定义一个类——Hello.java14packageorg.ly.demo;publicclassHello{publicStringgetInfo(){returnHelloWorld!!!;}}2.编译该程序,生成*.class文件javac–d.Hello.java生成的class文件在目录org\ly\demo下jar命令操作步骤3.将org文件夹打成jar包,生成压缩文件jar–cvfmy.jarorg创建并显示详细文档生成的压缩文件名称15•主要参数-c——创建新的文件-v——在标准输出中生成详细输出信息-f——指定存档的文件名4.要想使用jar文件必须设置classpath路径setclasspath=.;盘符:\java07\my.jar5.编写测试类,测试my.jar是否好用。16packageorg;importorg.ly.demo.*;publicclassJarDemo{publicstaticvoidmain(Stringargs[]){Helloh=newHello();System.out.println(h.getInfo());}}6.编译、运行测试类。jar命令操作步骤