工具类与算法.ppt_第1页
工具类与算法.ppt_第2页
工具类与算法.ppt_第3页
工具类与算法.ppt_第4页
工具类与算法.ppt_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Chap6工具类与算法 语言基础类库 Object类是java程序中所有类的直接或间接父类 也是类库中所有类的父类 publicclassObjectClassObjectistherootoftheclasshierarchy EveryclasshasObjectasasuperclass Allobjects includingarrays implementthemethodsofthisclass 主要方法 protectedObjectclone publicbooleanequals Objectobj publicfinalClassgetClass 返回对象所属类信息protectedvoidfinalize 终结器publicStringtoString 返回对象本身的信息 protectedObjectclone throwsCloneNotSupportedExceptionCreatesandreturnsacopyofthisobject Theprecisemeaningof copy maydependontheclassoftheobject Thegeneralintentisthat foranyobjectx theexpression x clone xwillbetrue andthattheexpression x clone getClass x getClass willbetrue butthesearenotabsoluterequirements Whileitistypicallythecasethat x clone equals x willbetrue thisisnotanabsoluterequirement publicclassex publicstaticvoidmain Stringargs booleanf Integern1 newInteger 100 Integern2 newInteger 100 f n1 equals n2 System out println f f n1 n2 System out println f xyxy1 newxy xyxy2 newxy xy1 i 10 xy2 i 10 f xy1 equals xy2 System out println f f xy1 xy2 System out println f classxy inti MicrosoftWindowsXP 版本5 1 2600 C 版权所有1985 2001MicrosoftCorp C DocumentsandSettings aa e E cdjavaE java javacex javaE java javaex运行结果truef n1 equals n2 falsef n1 n2 falsef xy1 equals xy2 falsef xy1 xy2 equals方法默认的操作是比较对象的内存和属性是否相同 系统中的类重写了这个方法使他只比较属性 是比较对象的内存和属性 数据类型类 引用数据类型 基本数据类型的第一个字母大写主要方法和属性 两个属性MAX VALUE和MIN VALUE其中IntegerByte这两个属性类型是int的 Long long构造函数Byte bytex Byte Strings doc Byte bytex 用x初始化类的对象Byte Strings 用字符串对象s初始化对象数据类型之间的相互转换方法byteValue doubleValue intValue longValue shortValue 字符串类型与数据类型间的转换 数据类型类 引用数据类型 字符转数据Integer parseInt Strings Float parseFloat Strings Integer valueOf Strings intValue Double valueOf Strings doubleValue 返回一个对象返回对象的值数据转字符串D1 toString Double toString doubled publicStringtoString publicstaticStringtoString doubled classjava lang Objectclassjava lang Boolean implementsjava io Serializable classjava lang Character implementsjava lang Comparable java io Serializable classjava lang Character Subsetclassjava lang Character UnicodeBlockclassjava lang Class implementsjava io Serializable classjava lang ClassLoaderclassjava lang Compilerclassjava lang Mathclassjava lang Number implementsjava io Serializable classjava lang Byte implementsjava lang Comparable classjava lang Double implementsjava lang Comparable classjava lang Float implementsjava lang Comparable classjava lang Integer implementsjava lang Comparable classjava lang Long implementsjava lang Comparable classjava lang Short implementsjava lang Comparable classjava lang Package Math类 用来完成一些常用的数学运算 是Object的子类Math类的方法都是static的 可以直接通过类名直接引用 另外 Math类是最终类 主要属性和方法 publicfinalstaticdoubleEpublicfinalstaticstaticdoublePIdoubleabs doublea 求绝对值doublerint doublea 对a四舍五入doublesqrt doublea 求平方根doublepow doublea doubleb 求a的b次方doublerandom 产生一个0 1间的随机数 不含1 System类 java lang Objectjava lang SystempublicfinalclassSystemextendsObjectTheSystemclasscontainsseveralusefulclassfieldsandmethods Itcannotbeinstantiated AmongthefacilitiesprovidedbytheSystemclassarestandardinput standardoutput anderroroutputstreams accesstoexternallydefined properties ameansofloadingfilesandlibraries andautilitymethodforquicklycopyingaportionofanarray System类 提供标准的输入输出工具 错误信息的输入输出不能被实例化 只有类方法和类属性 引用时以System为前缀 三个属性publicstaticPrintStreamerrpublicstaticInputStreaminpublicstaticPrintStreamout用System类的方法获取系统信息 完成系统操作 publicstaticvoidSystem exit 0 publicstaticvoidexit intstatus TerminatesthecurrentlyrunningJavaVirtualMachine Theargumentservesasastatuscode byconvention anonzerostatuscodeindicatesabnormaltermination ThismethodcallstheexitmethodinclassRuntime Thismethodneverreturnsnormally ThecallSystem exit n iseffectivelyequivalenttothecall Runtime getRuntime exit n publicstaticvoidgc Runsthegarbagecollector CallingthegcmethodsuggeststhattheJavaVirtualMachineexpendefforttowardrecyclingunusedobjectsinordertomakethememorytheycurrentlyoccupyavailableforquickreuse Whencontrolreturnsfromthemethodcall theJavaVirtualMachinehasmadeabestefforttoreclaimspacefromalldiscardedobjects ThecallSystem gc iseffectivelyequivalenttothecall Runtime getRuntime gc Applet类与Applet小程序 Applet的基本工作原理Applet类ClassHierarchyclassjava lang Objectclassjava awt Componentclassjava awt Containerclassjava awt Panel implementsjavax accessibility Accessible classjava applet Applet html文件 applet www浏览器 服务器 2下载文件 html文件 applet 3请求applet文件 4下载applet 1请求html文件 5解释执行applet文件 Applet类的主要方法 init 方法用来完成主类实例的初始化工作 用户可重载此方法 来完成创建和初始化对象等操作 start 方法用来启动浏览器运行applet的主线程 浏览器将在调用init方法之后 接着自动调用start方法 用户可以重载此方法 除此之外 applet被重新启动时也会被系统自动调用造成apple重启动的两种情况 一是使用了reload操作二是转向其他的html页面后 又返回 paint Graphicsg 方法主要作用是在applet界面中显示图形文字和其他界面元素 在applet启动后 由浏览器自动调用 导致浏览器调用paint方法的情况有三种 applet被启动后 自动调用来重新描绘自己的界面applet所在浏览器窗口改变时applet的其他相关方法被调用时 如repaint 方法被调用时 系统首先调用update 方法将applet所占空间的屏幕清空 然后再调用paint方法 paint方法固定参数Graphicsg Graphics用来完成较低级的图形用户界面操作的类 可以画点 线 圆 多边形 输出文字等 它是一个抽象类 用户不可以创建它的对象 stop 方法当用户离开该网页时 执行stop方法destroy 方法当用户退出浏览器时 浏览器中的applet的实例也在内存中被删除 在这之前浏览器会自动调用此方法 完成释放资源和关闭连接等操作 Applet的生命周期和绘图周期 当一个Applet开始运行时 会启动两个线程并执行 一个是主线程 生命周期 一个是AWT线程 绘图周期主线程包括init start stop destroy 分别对应生命周期的初始化 启动 终止和消亡各阶段AWT线程包括paint repaint 和update 方法 绘图周期图 初始化init 启动start 终止stop 消亡destroy 第一次载入 启动并执行applet 转向其他网页时 applet暂停执行 回到本网页时 重新激活applet 关闭浏览器 repaint update paint 第一次绘制 当某些操作破坏了显示 须重新绘制时 1 擦除并填充成背景颜色 2 调用paint 编程控制 绘图周期的几个主要方法 update 方法 用于更新图形 它首先清除背景 在调用paint 方法完成组建中的具体绘图 通常不改变update 方法 repaint 方法 主要用于重新绘图 在组件外形发生变化 repaint方法被系统自动调用 本方法将调用update方法实现对组件的更新 repaint方法有多种重载的方法paint 方法 一个AWT线程要处理各种组件的绘图工作 并负责其输入事件 因此在paint和update方法的程度尽量短 不要只形太耗时的操作 HTML文件参数传递 除了前面用过的CODEHEIGHTWIDTH之外 还有以下的参数 CODEBASE 当字节码文件与HTML文件保存位置不同时 给出地址URL形式ALT解释HTML页面的浏览器不包含JAVA解释器时 将信息显示给用户 ALIGN界面在浏览器中的对齐方式 ALIGN LEFT以上三个参数同CODE一样包含在内部向APPLET传递参数 HTML文件参数传递 HTML文件可以向所嵌入的APPLET程序传递参数 通过标记来完成参数名参数值在APPLET程序中利用getParameter Stringname 来去的参数值 例myhmlpara 同时实现APPLET与APPLICATION 例appletcation 同时实现APPLET与APPLICATION 实现方式有两种在已经成型的application的基础上进行改造 把它修改成一个applet在一个已经成型的applet的基础上进行改造 把它修改成一个application对于application只要求一个main方法 而applet可以有多个入口和方法 所以 后者 即在applet基础上改造成application较实用 importjava awt importjava awt event importjava applet Applet publicclassappletcationextendsApplet publicstaticvoidmain Stringargs Framefrm newFrame thisisapplication appletcationapp newappletcation frm add Center app frm setSize 200 200 frm validate frm setVisible true frm addWindowListener newWindowControl app app init app start publicvoidpaint Graphicsg g drawString hello 50 50 publicvoiddestroy System exit 0 classWindowControlextendsWindowAdapter Appletc publicWindowControl Appletc this c c publicvoidwindowClosing WindowEvente c destroy 数组 数组是相同数据类型的元素的集合数组中的各个元素是有先后顺序的 它们在内容中按照这个先后顺序连续存放在一起每个数组元素用整个数组的名字和它自己在数组中的顺序位置来表达a 0 声明数组数组元素类型数组名 Stringargs 或者数组元素类型 数组名 int ary1 注 元素类型可以是基本数据类型也可是对象Employee aryemp 创建数组空间即给数组分配内存空间数组名 new数组元素类型 数组元素的个数 或把声明数组和创建数据空间一起完成数组元素类型数组名 new数组元素类型 x e gintmyinary newint 100 Employ aryemp newEmploy 10 注意java不支持变长数组 创建空间必须指明数组长度对于基本数据类型还可以直接赋初值intmyintary 1 2 3 4 5 6 7 8 9 创建数组元素并初始化数组元素为基本数据类型则可以不用进行初始化否则 当数组的元素是某类的对象时 必须创建并初始化数组 employee Stringname doubleinitsal charsex employee myaryemp employee 10 for inti 0 i 10 i employee i newemployee null 300 m 如果强行使用未经初始化的数组会抛出NullPointException异常 数组 几点注意事项 数组的下标是从0开始 最末下标 个数 1所有的数组都有一个length属性java系统能自动检查是否有数组下标越界的情况 此时会抛出系统异常数组下标越界异常 因此在程序中要利用length来控制数组下标的上界 数组实际上是一种隐含的 数组类 的实例 向量 Vector 向量和数组使用情况 数组元素为基本数据类型元素的数目基本固定 插入 删除和查找操作少向量元素不能为基本数据类型需处理的对象的数目不定元素类型不同 都是对象插入删除操作较多经常需要定位查找不同类之间传递大量的数据 创建向量及常用方法 创建格式Vector对象名 newVector 向量是一个类因此创建一个向量类的对象同前面一样 构造函数有四个 Vector intinitCapacity intcapacityIncrement 1开始创建时Vector含有的元素数目2一次追加元素的数目Vectormyvect newVector 100 50 开始100 150 200 向量中添加元素的方法有两种 addElement Objectobj 在向量的尾部插入对象objinsertElement Objectobj intindex 在向量的指定位置插入对象obj Vectormyvector newVector 10 10 for inti 1 i 10 i myvector addElement newD200 card 200 50 0 向量名添加的元素即对象构造函数对对象进行初始化 myvector insertElement newD200 card 200 50 0 0 要插入的对象插入位置 第一个 向量中修改和删除元素的方法修改voidsetElement Objectobj intindex 在向量序列中指定位置的元素设置为obj删除booleanremoveElement Objectobj 删除向量中与指定的对象obj相同的第一个元素 同时将后面的元素提前补上空位 若不存在这样的元素 则返回false voidremoveElement intindex 删除指定位置的向量voidremoveElements 删除向量中所有的元素 myvector setElement newD200 card 300 50 0 0 查找向量序列中的元素ObjectelementAt intindex 返回指定位置的元素booleancontains Objectobj 检查向量序列中是否包含指定的对象元素obj 是则返回true否则返回falseintindexOf Objectobj intstart index 从指定位置start index开始向后搜索 返回第一个与指定对象obj相同的元素的下标位置 若不存在则返回 1intlastIndexOf Objectobj intstart index 从指定的位置start index开始向前搜索 返回第一个与指定对象obj相同的元素的下标位置 若不存在则返回 1 字符串 String类StringBuffer类JavaApplication命令行参数 String类 创建字符串常量String对象格式 Stringmystr newString Stringmystr xyz 构造函数 共有11 String 创建一个空的字符串常量String Stringvalue String charvalue 用一个字符数组的元素初始化String StringBufferbuffer String类封装的方法字符串常量的操作intlength 注意与数组中的Length属性的不同 判断字符串的前缀和后缀publicbooleanstartsWith Stringprefix 是否以prefix为前缀publicbooleanendsWith Stringsuffix 是否以suffix为后缀字符串中单个字符的查找intindexOf intch 从头向后查找 返回第一个与字符ch相同的字符的位置 从零开始 注意参数类型Strings1 abcedeio s1 indexOf int e intindexOf intch intfromIndex 从指定的位置fromIndex开始向后查找ch第一个出现的位置 从字符串的尾部开始比较的两个方法 intlastIndexOf intch intlastIndexOf intch intfromIndex 字符串中子串的查找indexOf方法的重载indexOf Stringstr indexOf Stringstr intfromIndex lastindexOf Stringstr lastindexOf Stringstr intfromIndex 两个字符串的比较intcompareTo StringanotherString 若两个字符串相同则返回0 若按字母需当前字符串大于参数字符串返回一个大于0的整数 若小于参数字符串返回一个小于0的整数booleanequals obj 重写了Object的方法booleanequalsIgnorCase StringanotherString 不区分大小写 连接两个字符串Stringconcat Stringstr 将当前字符串与参数字符串连接 并返回这个连接后的字符串 但是当前字符串本身并不发生改变Strings abc Strings1 s concat xyz s1 abcxyz s abc 数字类型转化成字符串类型valueOf方法toString方法 StringBuffer String字符串已经创建其长度和内容都不能更改 而且要求必须赋初值StringBuffer表示的是可以扩充 修改的字符串 创建的时候不一定要给出初值构造函数StringBuffer StringBuffer intlength 确定字符串的长度StringBuffer Stringstr 用str来初始化StringBuffer的字符串对象 对字符串变量的扩充 修改与操作StringBufferappend 参数类型参数对象名 在原字符串后面加由参数转化成的字符串StringBufferinsert int插入位置 参数类型参数名 在指定的位置后加字符串 如果要将StringBuffer在屏幕显示出来必须先用toString方法转换成String类型的 因为Print方法不接受StringBuffer类型的参数StringBuffersb1 newStringBuffer abced System out println sb1 Strings1 sb1 toString setCharAt intindex charch 用来修改指定位置index的字符用所给字符ch替换StringBuffersb1 newStringBuffer aaaaaa sb1 setCharAt 0 b 字符串的赋值和加法Stringmystr java mystr mystr program JavaApplication命令行参数 applet程序可以通过html传递参数 application可以通过命令行参数传递数据命令行参数通过main方法的数组参数args 传递 在运行命令之后紧跟参数 参数之间用空格分隔 如果命令行参数中有空格 则可以用双引号将整个参数括起来以示区别 命令行参数的类型均为字符串型例子6 4 因为main方法的参数args 是字符串类型的数组 因此每个元素的类型为字符串型 输入几个参数 数组中就有几个元素 在使用命令行参数时 要注意数组越界问题 运行程序时 系统会自动检查数组是否越界 并抛出越界异常 所以在程序中要检查用户输入的参数是否满足要求 由于下标越界产生的系统异常 使用数组的时候

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论