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