第六章、Java之API教学教材_第1页
第六章、Java之API教学教材_第2页
第六章、Java之API教学教材_第3页
第六章、Java之API教学教材_第4页
第六章、Java之API教学教材_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、第六章Java之API第一页,共39页。APIlAPI就是Application Programming Interface,叫做应用程序接口。l为什么要有API。l在实际编程当中,需要用到很多方法,比如:设计一个程序来控制火箭的发射(神州七号)指挥员可以使用该程序来使火箭点火升空,使得信号(xnho)发送和传回。指挥员火箭(hujin)发射程序信号传递(chund)程序信号传递类火箭发射类一些控制发射的方法一些控制信号传递的方法第二页,共39页。l在Java中的类库里有一些已经编写好并且能直接实现(shxin)的标准类。l在程序设计中可以直接调用类库所提供的类和接口,可以大大提高编程效率。l

2、类库里的类和接口大多封装在特定的包里,每个包有不同的功能。第三页,共39页。部分(b fen)常用包lJava.applet:提供了创建applet所需的所有类lJava.awt.*:提供创建图形界面所需的类lJava.beans.*:提供了开发java beans的类lJava.io:提供了数据流等系统的输入和输出lJava.lang.*:java的基本类库lJava.math.*:提供整数算术和十进制算术的基本函数lJ:提供了实现网络通信应用的所有类lJava.util.*:提供了集合、时间和日期的等常用包lJavax.swing.*:提供用户界面(yn h ji min)的组件,java

3、用户界面(yn h ji min)的常用包第四页,共39页。Java.langlJava.lang是java 中使用最广泛的包,它所包括的类是其他(qt)包的基础,使用时由系统自动引用,不必用import语句进行引入。第五页,共39页。一、String与StringBuffer类lString类是字符串类的标准格式,可以把定义的字符串通过String转换成字符串对象。String类中有很多构造函数。lString():初始化半含空字符串的String对象lString(charvalue):使字符串对象包含char类型数组的值。lString(charvalue,int offset,int

4、count):传入一个字符串型数组的值给String对象,从哪里(n li)传,传多少个。l演示String类的定义。l演示String类的多种定义。第六页,共39页。比较(bjio)lString a=“java”;lString b=“java”;lA和b是否代表两个(lin )对象?lString a=new String(“java”);lString b=new String(“java”);lA和b是否代表两个(lin )对象?第七页,共39页。比较(bjio)字符串lS1.equals(s2):如果相等则返回(fnhu)ture。lS1.equalsIgnoreCase(s2):

5、同上,只不过是忽略大小写。lSpareTo(s2):如果s1s2则返回(fnhu)大于零的值。l演示比较字符串。第八页,共39页。求字符串长度(chngd)lString类中的length(方法用来(yn li)返回字符串的长度)l演示返回字符串的长度。第九页,共39页。连接(linji)字符串l用+号和concat方法可以连接字符串。l例如(lr):用+号和concat的混合方法把hello,java!这个字符串打印出来。l演示连接字符串。第十页,共39页。复制(fzh)字符串l复制方法:lS1.copyValueOf(data):将数组date的内容全部复制到字符串中。lS1.copyVa

6、lueOf(data,int 起始地址,int count):将数组data以起始地址开始(kish)长度为count的内容复制到字符串中。lS1.getChar(int 字符起始地址,int 字符终止地址,data,int 数组起始地址):将s1的内容复制到数组data中。lData=s1.toCharArray():将s1全部内容复制到字符数组data中。lS2=s1.substring(int 起始地址,int 结束位置)l演示复制字符串。第十一页,共39页。查找(ch zho)字符串l可以(ky)利用函数来进行查找字符串和子串,并确定它们的位置。lS1.charAt(int index

7、):返回s1中index所对应的字符,index为下标号。lS1.indexOf(int char):返回字符char第一次出现的位置。lS1.lastIndexOf(int char):返回s1中char字符最后一次出现的位置。lS1.indexOf(s2):返回s2在s1中第一次出现的位置。lS1.lastIndexOf(s2):返回s2在s1中最后一次出现的位置。l演示查找字符串。第十二页,共39页。修改(xigi)字符串lS1.replace(oldchar,newchar):用新字符替代旧字符。lS1.toLowerCase():将s1中的所有(suyu)大写字母转化为小写字母。lS

8、1.toUpperCase():将s1中所有(suyu)小写字母转化成大写字母。l演示:修改字符串。第十三页,共39页。StringBuffer类lStringBuffer与String类相似,但是不同的是StringBuffer可以方便的在缓冲区被修改,被增加、替换字符,当完成字符串的调整之后,可以把其转换成标准字符串格式。l构造函数:lStringBuffer():长度(chngd)为16个字符空缓冲字符串lStringBuffer(int length):长度(chngd)为length的空缓冲字符串。lStringBuffer(String str):构造一个缓冲字符串,内容为字符串s

9、tr,再加上16个字符的空间。第十四页,共39页。lStringBuffer类所产生的对象里的内容可以改变,例如:在程序设计中可以不断的向对象插入(ch r)字符,直到最后结果时,则调用toString()来转换成String类。l通过append、insert可以向该对象中添加字符串。l演示创建StringBuffer对象。第十五页,共39页。l例:给x赋予(fy)字符串”abc”。lString x=“a”+”b”+”c”;lString x=new StringBuffer().append(“a”).append(“b”).append(“c”).toString();第十六页,共39

10、页。读取和改变(gibin)StringBuffer中的字符l可以利用方法。lS1.setCharAt(int index,char ch):用ch替代s1中位置为index的字符。lS1.replace(int start,int end,s2):s1中从start开始(含)到end(不含)结束之前的字符串以s2来代替(dit)。lS1.delete(int start,int end):删除从start(含)开始到end(不含)结束之间的字符串。lS1.delete(int index):删除s1中index位置的字符l演示改变StringBuffer字符串。第十七页,共39页。Strin

11、g类的程序(chngx)应用l设计程序,要求可以实现输入字符串,假如输入bye时则退出程序,输入其他任何字符串都会被打印出来。l(在程序运行结果中进行输入,用回车来执行(zhxng)输入字符完毕,然后判断是否为bye)第十八页,共39页。分析(fnx)思路l1、键盘输入的字符存在哪里。l2、接受的键盘输入是一个字符一个字符的输入,那么输入的字符串又以什么(shn me)样的形式存储。l3、程序设计的过程是什么(shn me)?(一个字符输完之后,下一步会进行什么(shn me),假如遇到回车后,会进行什么(shn me),不遇到回车又会进行什么(shn me))l4、需要几个变量来接受输进来的

12、字符。第十九页,共39页。注意(zh y)l1、定义一个字节型的数组可以存储输入的字符,但是在判断字符串内容的时候应该将数组里面所存(su cn)的字符串赋给一个String类型。l2、接受的是单个字符的输入,所以数组在一个一个字符存储的时候,不一定要存满,所以得有一个变量用来计数数组到底存到第几位。l3、最后比较字符串内容的时候,用equals方法(注意用equalsIgnoreCase()可以在比较内容的时侯忽略大小写)第二十页,共39页。基本数据类型的对象(duxing)包装类l除了基本数据类型(lixng)的类,java还提供了相应的包装类,这样可以满足特殊的需要。l例如:类中的很多方

13、法接受的都是Object类型(lixng),这些方法接受的参数都是对象类型(lixng),同时又需要用这些方法来处理基本数据类型(lixng)的数据,这时就用到包装类。第二十一页,共39页。包装(bozhung)类的种类l8种常用(chn yn)的数据类型都有其对应的包装类:lBoolean BooleanlByte BytelChar Characterlshort Shortlint Integerllong Longlfloat Floatldouble Double第二十二页,共39页。实际(shj)例子l打印(d yn)出星号组成的矩形。要求:在运行class文件时输入参数长、高就可

14、以设置打印(d yn)出星号矩形的长和高。第二十三页,共39页。思考(sko)l1、在运行class时输入的参数到底是字符串类型的还是int类型的。l2、怎样在运行时输入的参数就被转换成int类型的数据而参与下面的运算。l3、怎么用添加字符串的形式来打印出星号(循环多少次就添加多少回*字符串)用哪个字符串类来存储(cn ch)星号。l演示运行时设置宽和高。第二十四页,共39页。集合(jh)类l集合类用来存储一组对象,其中每个对象都称之为元素,里面有Vector类,Enumeration接口,ArrayList类和Iterator接口,Collection等类和接口。l一般在存入一组对象时可以用

15、类似Vector类的对象来存储数据,然后通过(tnggu)接口Enumeration里面的方法来对这组数据进行处理。第二十五页,共39页。Vector和Enumeration例子(l zi)l将键盘中输入的一个数字序列中的每位数字存储在Vector对象中,然后在屏幕中打印出每位数字相加的结果。例如输入:1234,打印出10.l分析:l1、是否需要一个变量来存储键盘输入的每个字符,然后把这些(zhxi)字符存到Vector对象中l2、怎么把一个整型的数据存到Vector对象中l3、相加的问题:这些(zhxi)个数字如何累加,加完一个,指针如何指向下一个,而且全部加完后,又怎么样停止。第二十六页,

16、共39页。l演示:TestVector。l注意:这些类都是外包的,所以(suy)要引用:lImport java.util.*;第二十七页,共39页。Collection接口(ji ku)与Iterator接口(ji ku)lCollection接口的使用方法类似Vector类,可以往里面存储(cn ch)数据,可以通过方法来取出,通过方法来返回一个Iterator接口对象,这时存在里面的数据就被给了Iterator对象,然后通过方法来一个个取出。lIterator接口类似与Enumeration接口,没有它那么冗长的名字。lCollection接口不能直接创建对象,所以得用实现了其接口的类来

17、创建对象,为ArrayList。第二十八页,共39页。l所以可以(ky)同样用ArrayList类和Iterator接口可以(ky)同样处理把数据存入并且进行处理。l看ArrayList代码。第二十九页,共39页。lArrayList类同时实现了List接口(同样为集合类接口),由于顺序(shnx)关系,可以对List接口的对象进行排序。l看List类的排序。第三十页,共39页。Hashtable与Propertiesl在Hashtable对象中可以动态的存储一系列对象,同时可以对存储的每一个(y )对象(值)都安排另一个(y )对象(关键字)与之相关联。l其中可以通过对关键字来对值进行检索。

18、l存储数据:put(Object key,Object value)l检索数据:get(Object key)l演示Hashtable简单测试l可以把值定义成一个(y )字符串对象。New String(“value”);第三十一页,共39页。实际(shj)应用l此类实现一个哈希表,该哈希表将关键字映射到相应的值。任何非 null 对象都可以用作键或值。 l为了成功地在哈希表中存储和获取对象,用作键的对象必须实现 hashCode 方法和 equals 方法。 hashCode方法返回的是一个由其里面对象地址转化来的一个值。l注意:在Object类中也有equals和hashCode方法。l覆

19、盖equals方法:因为比较所用(su yn)关键字和Hashtable中存储的某个关键字是否相同,假如判断不出这两个关键字对象是否相同,则不行。l覆盖hashCode方法:因为即使内容相同的两个对象,存储的地址不一样,返回的hashCode值也不一样,所以需要覆盖。第三十二页,共39页。实例(shl)l应用关键字和值的对应关系:l假如关键字为一个对象,里面有年龄和姓名两个变量,假如这两个变量都相同,那么就认为他是同一个人,代表是同一个对象,这时就会返回该关键字所对应的值。l注意:怎么判断假如在姓名和年龄都相等(xingdng)的前提下,就属于同一个对象,这样才会使得关键字是同一个对象。第三十

20、三页,共39页。Properties类lProperties类是Hashtable类的子类。l它不但可以具有Hashtable的方法,还增加了将Hashtable对象中的关键字和值保存到一个文件(wnjin)中,而且还能从文件(wnjin)中读取关键字和值到Hashtable对象中去的方法。l注意:如果要向文件(wnjin)中去存储Properties对象中的内容,要使用Properties.store方法,这时每个属性的关键字和值都必须是String类型。第三十四页,共39页。实例(shl)l制作一个程序,每一次运行(ynxng)都能显示出当前运行(ynxng)的是第几次。l准备:l1、可以定义一个Properties对象,里面存储着关键字和值,每运行(ynxng)一次,通过get方法把那个值查出来,然后再加一,再把这个值打印出来,就会显示程序运行(ynxng)的第几次。l2、在运行(ynxng)时去读取存储着关键字和值的那个文档,把里面的值读出来,看做运行(ynxng)了第几次,当运行(ynxng)结束后,再把Properties对象中的关键字和值再存回到那个文档中去(这时的值已经加完1)l3、本程序要注意:在读取里面的值还有把值存入到里面的时候要注意类型的转换。还有异常的处理。第三十五页,共39页。

温馨提示

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

评论

0/150

提交评论