1 / 16

面向对象程序设计

面向对象程序设计. Object-oriented programming. Java 程序设计实践教程 第八章 包. 目标. 包 访问控制 使用 jar 文件. System. String. java. lang. io. 包( package ). 包的定义 为了便于管理大型软件系统中数目众多的类,解决类的 命名冲突 问题, Java 引入了 包 ( package )机制,提供类的 多重命名空间 。. 包( package ). 打包( package 语句)

darren
Download Presentation

面向对象程序设计

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 面向对象程序设计 Object-oriented programming

  2. Java程序设计实践教程 第八章 包

  3. 目标 • 包 • 访问控制 • 使用jar文件

  4. System String java lang io 包(package) • 包的定义 • 为了便于管理大型软件系统中数目众多的类,解决类的命名冲突问题,Java引入了包(package)机制,提供类的多重命名空间。

  5. 包(package) • 打包(package语句) • package语句作为Java源文件的第一条语句,指明该文件中定义的类所在的包。(若缺省该语句,则指定为无名包)。 • 语法格式:package pkg1[.pkg2[.pkg3…]]; • Java编译器把包对应于文件系统的目录层次结构,package语句中,用“·”来指明包(目录)的层次。 • 例如使用语句package cn.lntu;则该文件编译产生的类应位于..\cn\lntu目录下。

  6. 包(package) • 打包(package语句) • 解释运行类时,格式必须为java 包名.类名 • 在当前目录下生成包 • javac -d . Test.java • 在指定目录下生成包 • javac -d E:\JavaLesson Test.java • 例:Test.java

  7. 包(package) • 打包(package语句) • 虚拟机在装载带有包名的类时,会先找到classpath环境变量指定的目录,再按照与包名层次相对应的目录结构去查找.class文件。 • classpath设置一定是指向顶层包所对应目录的父目录。 • 注意:不要以为把一个类放在某个目录下,这个目录名就成了这个类的包名。 • 包名必须在程序中通过package语句指定。

  8. 包(package) • 导入包(import语句) • 如果使用一个包中的类时,必须使用该类的全名(例如:cn.lntu),Java编译器才会找到该类。 • 也可以使用import在文件的开头引入使用到的类。 • 例如:import java.io.File; • import语句引入整个包中类。 • 例如:import java.io.*; • 在同一包中的类可以互相引用,无需import语句。 • 为了在任何地方都可以用到导入包中的类文件,应将该目录加到环境变量classpath中。 例:Test2.java

  9. 包(package) • 导入包(import语句) • 注意: • 如果父包中的类调用子包中的类,必须引用子包的全名,而不能省略父包名部分。 • import了一个包中所有的类,并不会import这个包中的子包中的类,如果程序中用到了子包的类,需要再次对子包作单独引入。 • import java.awt.*; import java.awt.event.*;

  10. 包(package) • JDK中常用的包 • java.lang----包含一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能。自动导入,不需要使用import导入。 • java.util----包含一些工具类,如定义系统特性、使用与日期日历相关的函数。 • java.awt----包含构成抽象窗口的工具集(abstract window toolkit)的多个类,用来构建和管理应用程序的图形用户界面(GUI)。 • java.applet----包含applet运行需要的一些类。

  11. 包(package) • JDK中常用的包 • java.text----包含Format、DateFormat、SimpleDateFormat等,提供各种文本或日期格式。 • java.net----包含执行与网络相关的操作的类。 • java.io----包含提供多种输入/输出功能及文件操作的类。 • java.sql----提供数据库应用功能的类库。 • javax.swing----扩充和增强图形用户界面功能。

  12. 包(package) • Java.lang.NoClassDefFoundError: • 文件名错误 • 没有import类所在的包名 • classpath设置错误

  13. 访问控制 • 类成员的访问控制 • private访问控制: • private修饰的成员只能在这个类的内部使用。 • 注意:不能在方法体内声明的变量前加private。 • 默认访问控制: • 成员方法或成员变量名前没有使用任何访问控制符,那么这个成员是默认的(default)。可以被这个包中的其他类访问,但不能被不同包中的子类访问。

  14. 访问控制 • 类成员的访问控制 • protected访问控制: • 既可以被同一个包中的其他类访问,也可以被不同包中的子类访问。 • public访问控制: • 可以被所有的类访问。

  15. 访问控制 • 类的访问控制 • public访问控制: • public修饰的类能被所有的类访问。 • 默认访问控制: • 默认修饰的类只能被同一包中的其他类访问。

  16. 使用jar文件 • jar文件包 • jar文件是一种压缩文件,与ZIP压缩文件格式兼容。 • 可以把多个类文件压缩成jar包提供给别人使用。 • Java虚拟机会自动在内存中解压jar文件,把这个jar文件当成一个目录,在这个jar文件中去寻找所需要的类及包名所对应的目录结构。 • 生成jar文件,一方面可以方便我们管理大量文件,另一方面,进行压缩可以减少文件所占的空间。 • C:\myjava>jar cvf test.jar xx

More Related