1、sisejava语言程序设计实用教程java语言程序设计实用教程sisejava语言程序设计实用教程第七讲 java的基本类库sisejava语言程序设计实用教程3本章学习要点:l理解java包的概念l掌握java类库的结构l学会java api规范技术文档的使用sisejava语言程序设计实用教程7.1 java包sisejava语言程序设计实用教程java包l java语言中每一个类都会生成一个类文件.class。当编写一个比较大的java项目时,它会生成许多的.class文件。为了有效管理这些.class文件,java提供了包机制。一个包就相当于操作系统的文件夹,包中的类就相当于文件 l
2、 包的作用:q合理组织程序文件q提供名字空间q实现更多层面的访问控制l 包层次:通过包的层次性,可以实现:把相关的的类组合进一个包,把相关的包组合进一个更大的包l 如在sdk中,大多数被分组进名为java的核心包中,我们也可以创建自己的包和包含进此包的相关的类。同一包中类名是唯一的 sisejava语言程序设计实用教程java包格式qpackage 包名;包名; q如:如:package mypackage;q class myclassq q sisejava语言程序设计实用教程java包的目录层次l 包的目录层次(java类的物理存放)l java解释器要求类文件物理存放的匹配包层次的目录
3、层次中。如在windows系统中,类circle.class位于chapter4.shape.shape2d包中,即类的完整引用为:chapter4.shape.shape2d.cirle,那么,circle类的物理位置必为目录chapter4shapeshape2dcircle.classsisejava语言程序设计实用教程包的使用与classpath环境变量l使用import引入包中的类;l当运行java应用程序时,java解释器必须找到被引用的类。在默认情况下,java会在jdk类的安装目录的基目录中,或在你所创建类的当前目录中查找。如把包对应的目录层次放在其它地方,则通过classpa
4、th环境变量来寻找,即使用classpath来包含java搜索类的目录类表。 sisejava语言程序设计实用教程import语句 l import语句位于package语句之后,类的定义之前 ;l 格式:import package1.package2.(class-name | *); l package1是最外层的名称,package2是由圆点(.)分隔的第 二层包的名称l 采用*号不影响程序的运行性能,但会影响编译速度。指明具体类比引入整个包更为合理。 sisejava语言程序设计实用教程类成员的访问控制修饰符 l private:只能在本类中对其进行访问;l 默认默认:类成员的默认访
5、问控制修饰符,此成员能被同一包中的其他类访问;l protected:允许被同一包中的类和子类访问(子类是否为同一包没有限制);l public:允许任何包中的任何类对其进行访问。 sisejava语言程序设计实用教程包内的访问示意图sisejava语言程序设计实用教程包间的访问示意图sisejava语言程序设计实用教程类成员的访问控制修饰符(p139,例7-1) l private:只能在本类中对其进行访问;l 默认默认:类成员的默认访问控制修饰符,此成员能被同一包中的其他类访问;l protected:允许被同一包中的类和子类访问(子类是否为同一包没有限制);l public:允许任何包中
6、的任何类对其进行访问。 sisejava语言程序设计实用教程7.2 java类库的结构sisejava语言程序设计实用教程回顾:java 2平台版本 l j2se(java 2 standard edition, java 2平台标准版):适于创建普通台式电脑上的应用系统,例如桌面系统、包括c/s结构l j2me(java 2 micro edition, java 2平台微型版):针对嵌入式设备及消费类电器的应用系统,例如:如手机和掌上电脑的操作系统等,它使用了一系列更小的包,可以升级到j2se和j2eel j2ee(java 2平台企业版):适于创建服务器端的大型应用软件和服务系统,例如面
7、向企业应用、计算的平台sisejava语言程序设计实用教程j2se类库结构 (p141)l javal javaxl orgl sunl java基础的类库文件为rt.jar,请大家打开该文件,观察其组织结构(演示)sisejava语言程序设计实用教程java核心包中的常用子包l (1 1)java.langjava.lang包:包:是是javajava语言平台中最核心的包,提供语言平台中最核心的包,提供了一些了一些javajava程序设计中最基础的类,在编程时,该包不需程序设计中最基础的类,在编程时,该包不需使用使用importimport语句导入,包中的所有类由系统自动加载。语句导入,包中
8、的所有类由系统自动加载。l (2 2)java.utiljava.util包:主要包含大量的实用工具类,如包:主要包含大量的实用工具类,如datedate、calendarcalendar、randomrandom等。等。l (3 3)java.iojava.io包:包:主要包含与输入输出相关的类与接口,主要包含与输入输出相关的类与接口,在本章的输入输出流与文件一节中将介绍其中的一些常用在本章的输入输出流与文件一节中将介绍其中的一些常用类的使用。类的使用。l (4 4)包:主要包含用于网络编程的相关的类与接包:主要包含用于网络编程的相关的类与接口。口。l (5 5)java.sqljava.s
9、ql包:包:主要包含用于数据库连接与处理的相关主要包含用于数据库连接与处理的相关的类与接口。的类与接口。l (6 6)java.awtjava.awt包:用于开发图形用户界面的早期版本。包:用于开发图形用户界面的早期版本。sisejava语言程序设计实用教程j2ee类库结构 (p148)l javaxl 由j2ee应用服务器提供,jar的名字可能不一样(演示)sisejava语言程序设计实用教程j2me类库结构(p152) l cdc(connected device configuration):用于内存及电力等资源相对丰富的信息家电产品,如电视机顶盒、网络电视等,所用的java虚拟机jvm
10、为cvml cldc(connected limited device configuration):用于内存及电力等资源相对贫乏的信息家电产品,如手机、pda等移动设备,所用的java虚拟机jvm为kvml 对于各类ic卡,提供javacard api,运行在cardvm的虚拟机上sisejava语言程序设计实用教程cldclcldc包含了一个基本的j2me运行环境,其中包括虚拟机和核心的java类库lcldc的核心是虚拟机和核心类库虚拟机运行在设备的操作系统之上,对下层的硬件提供必要的兼容和支持;核心类库提供操作系统所需的最小的软件需求lcldc对j2se类库进行了大量的简化,其类库只保留
11、了java规范中定义的最核心的3个包,即java.io、java.lang 和java.util,并重新定义了一个新的包javax.microeditionsisejava语言程序设计实用教程7.3 java.lang包中的常用类sisejava语言程序设计实用教程基本语言和系统类(p153)l object:是类层次结构的根类,java中所有的类都是通过直接或间接地继承java.lang.object得到的。如果一个类没有extends一个父类,则java会自动用object作为其父类l class:它的实例表示正在运行的java应用程序中的类和接口。class.forname(xxx.xx
12、.xx)作用是要求jvm查找并加载指定的类,返回的是一java基础的类库个类。l cloneable:是一个空接口,体为空的接口称为标志接口。他对java系统有特殊的意义,java系统要求,可复制的类需要实现cloneable接口sisejava语言程序设计实用教程基本语言和系统类(续)l classloader:是一个抽象类,负责加载类的对象。定义自己的类是一个抽象类,负责加载类的对象。定义自己的类加载器时通常需要继承该类。加载器时通常需要继承该类。l securitymanager:允许应用程序实现安全策略的类。例如对于可能允许应用程序实现安全策略的类。例如对于可能不安全的操作该如何操作不安全的操作该如何操
13、作l system:是由是由final修饰的类修饰的类,不能被不能被实例化实例化,其包含一些有用的静其包含一些有用的静态类字段和静态方法。例如:标准输入、标准输出和错误输出流,态类字段和静态方法。例如:标准输入、标准输出和错误输出流,快速复制数组等快速复制数组等l runtime:每个每个javajava应用程序都有一个应用程序都有一个runtimeruntime类实例,使应用程序类实例,使应用程序能够与其运行环境相连接,以获得运行时的信息能够与其运行环境相连接,以获得运行时的信息l process:由由processbuilder.start()processbuilder.start()和
14、和runtime.execruntime.exec方法创建一方法创建一个本机进程,并返回个本机进程,并返回processprocess的一个实例。一个的一个实例。一个processprocess对象可以使对象可以使用用geterrorstream( )geterrorstream( )获取该进程错误信息获取该进程错误信息l compiler:主要支持主要支持javajava到本机代码的编译器及相关服务到本机代码的编译器及相关服务sisejava语言程序设计实用教程使用示例:使用示例: class类与类与runtime类类q 通过class类与runtime类中的方法可以获得运行时的信息,如当前
15、类每、超类名、包名以及内存空间,操作系统名称等。看下例。 sisejava语言程序设计实用教程q public class run1q public static void main (string args) q string str = new string();q system.out.println(本类名本类名 =+str.getclass().getname();q system.out.println(超类名超类名 =+str.getclass().getsuperclass().getname();q system.out.println(包包 名名 =+str.getclas
16、s().getpackage().getname();q system.out.println(操作系统操作系统=+system.getproperty();q system.out.println(java版本版本=+system.getproperty(java.vm.version);q system.out.println(内存总量内存总量=+runtime.getruntime().totalmemory();q system.out.println(剩余空间剩余空间=+runtime.getruntime().freememory();q q sisejava语言程序
17、设计实用教程错误和异常类l 何谓异常(例外)?特殊的运行错误对象,对应着java语言特定的运行处理机制。l java中的每一个异常都是java.lang包中的throwable类或其子类的实例对象l throwable类有两个直接的子类q错误类errorq不可恢复和不可捕获,如系统崩溃等q异常exceptionq可以捕获且可能被恢复,如下标越界sisejava语言程序设计实用教程exception类的继承结构throwable类error类exception类runtimeexceptionillegalaccessexceptionclassnotfoundexceptionawtexcep
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/20632.html