书签 分享 收藏 举报 版权申诉 / 82
上传文档赚钱

类型《Java面向对象程序设计(第4版)》课件chapter07 Java实用包.ppt

  • 上传人(卖家):momomo
  • 文档编号:5842002
  • 上传时间:2023-05-12
  • 格式:PPT
  • 页数:82
  • 大小:1.08MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《《Java面向对象程序设计(第4版)》课件chapter07 Java实用包.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Java面向对象程序设计第4版 Java面向对象程序设计第4版课件chapter07 Java实用包 Java 面向 对象 程序设计 课件 chapter07 实用
    资源描述:

    1、教学目标教学目标nJava 程序设计中经常使用的类nMathnStringnStringBuildernStringTokenizern泛型集合nCollection接口与Iterator迭代器nList(ArrayList、LinkedList、Vector)和Enumeration类nCollections的算法nHashSet与TreeSetnMapn Using The package And Classes Supplied With java 包名 类 包名 类 java.langString,StringBuffer StringBuilder javax.swing JButt

    2、on Wrapper classes JLabel JTextfield .java.util Calendar java.io InputStream Date OutputStream 泛型类java.text DateFormatjava.awt Graphics Button Label TextField7.1 Math类类 njava.lang.Math是标准的数学函数类:封装了一些数学函数和常量如:三角函数、指数函数、随机数函数等。njava.lang.Math类是final型的,不能被子类化或实例化,nMath类的所有方法和常量是静态的。public class MathDem

    3、opublic static void main(String args)System.out.println(Math.E=+Math.E);/输出常量eSystem.out.println(Math.round(Math.E)=+Math.round(Math.E);/四舍五入取整System.out.println(Math.PI=+Math.PI);/输出常量p/输出大于等于e的最小双精度整数System.out.println(ceil(E)=+Math.ceil(Math.E);/输出小于等于e的最大双精度整数System.out.println(floor(E)=+Math.fl

    4、oor(Math.E);/将双精度值p 转化为一个整数值,输出double型System.out.println(rint(PI)=+Math.rint(Math.PI);System.out.println(lnE=+Math.log(Math.E);/计算e的自然对数值System.out.println(sin(pi/4)=+Math.sin(Math.PI/4);/计算p/4的正弦值System.out.println(Math.random();/产生0到1之间的double型数System.out.println(int)(100*Math.random()+1);/产生1到100

    5、之间的整数 7.2 字符串类字符串类String nStringnSeries of characters treated as single unitnMay include letters,digits,etc.nObject of class StringnWhen String object is created,its contents cannot change ni.e.,constant strings njava.lang.String7.2 字符串类字符串类Stringn7.2.1 String的构造函数n7.2.2 String的方法7.2.1 String构造函数构造函

    6、数 构造函数用途String()默认构造函数,创建一个String实例,该实例中不包含字符String(bytebytes)创建一个被byte数组初始化的字符串String(bytebytes,intoffset,intlength)创建一个被byte数组的子区域所初始化的字符串。参数offset指定子区域开始的下标(注意:第一个字符的下标为0),参数length指定所使用byte的长度String(charvalue)创建一个被字符数组初始化的字符串String(charvalue,intoffset,intcount)创建一个被字符数组的子区域所初始化的字符串。参数offset指定子区域开

    7、始的下标(注意:第一个字符的下标为0),参数count指定所用字符的个数。String(Stringoriginal)构造一个String对象,该对象包括了与String对象original相同的字符序列表表7-1String类的常见构造函数类的常见构造函数n例7-2的程序演示了String类的常见的6个构造函数的使用。/StringConstructors.javaimport javax.swing.*;public class StringConstructors public static void main(String args)char charArray=b,i,r,t,h,d

    8、,a,y;byte byteArray=(byte)n,(byte)e,(byte)w,(byte),(byte)y,(byte)e,(byte)a,(byte)r;String s=new String(hello);7.2.1 String构造函数(续构造函数(续)7.2.1 String构造函数(续构造函数(续)String s1=new String();String s2=new String(s);String s3=new String(charArray);String s4=new String(charArray,6,3);String s5=new String(byte

    9、Array,4,4);String s6=new String(byteArray);String output=s1=+s1+ns2=+s2+ns3=+s3+ns4=+s4+ns5=+s5+ns6=+s6;JOptionPane.showMessageDialog(null,output,String类构造函数的使用,JOptionPane.INFORMATION_MESSAGE);System.exit(0);分别调用String类的六个构造函数7.2.2 String的方法的方法 方法用途char charAt(intindex)获取字符串中某一指定位置(从0开始编号)的字符int co

    10、mpareTo(Stringstr)与str进行字符串比较。若相等,则返回0;如小于,则返回一个负数;若大于,则返回一个正数int compareToIgnoreCase(Stringstr)比较str字符串。注意比较时不区分字符的大小写String concat(Stringstr)连接两个String对象,并返回一个新的String对象,该对象包含两个源字符串中的字符boolean endsWith(Stringsuffix)判断调用方法的字符串是否以参数suffix所对应的字符串为结尾boolean equals(String str)判断调用方法的字符串是否与参数str所对应的字符串相

    11、等表7-2String类的常用方法7.2.2 String方法(续)方法(续)boolean equalsIgnoreCase(StringanotherString)判断调用方法的字符串是否与参数anotherString所对应的字符串相等,判断时不区分字符的大小写void getChars(intsrcBegin,intsrcEnd,chardst,intdstBegin)以参数srcBegin作为起始下标,以参数srcEnd-1作为结束下标,从调用方法的字符串中取子串复制到以参数dstBegin为起始下标的字符数组中int indexOf(Stringstr),int indexOf(c

    12、har c)定位参数str在字符串中第一次出现的位置int indexOf(Stringstr,intfromIndex)以参数fromIndex为起始索引,定位参数str在字符串中第一次出现的位置int lastIndexOf(Stringstr)定位参数str在字符串中最后一次出现的位置int lastIndexOf(Stringstr,intfromIndex)以参数fromIndex为起始索引,进行反向查找第一次出现str的位置7.2.2 String方法(续)方法(续)int length()确定字符串的长度replace(charoldChar,charnewChar)返回一个新的

    13、String对象,在该对象中,字符串中的参数oldChar所指定的字符均被参数newChar所指定的字符替代String substring(intbeginIndex)从字符串中截取从参数beginIndex所指定的下标开始,到字符串结束的一个子字符串String substring(intbeginIndex,intendIndex)从字符串中截取从参数beginIndex所指定的下标开始,到endIndex-1指定的下标结束的一个子字符串String toLowerCase()将字符串中的所有大写字母改为小写,并返回该字符串String toUpperCase()将字符串中的所有小写字母

    14、改为大写,并返回该字符串String trim()将出现在字符串开头和结尾的空格删除,并返回该字符串n例7-3 String类的length、charAt和getChars方法的使用/StringMiscellaneous.javaimport javax.swing.*;public class StringMiscellaneous public static void main(String args)String s1=hello there;char charArray=new char 5;String output=s1:+s1;output+=nLength of s1:+s1

    15、.length();output+=nThe string reversed is:;for(int count=s1.length()-1;count=0;count-)output+=s1.charAt(count)+;s1.getChars(0,5,charArray,0);7.2.2 String的方法(续)的方法(续)7.2.2 String方法(续)方法(续)output+=nThe character array is:;for(int count=0;count charArray.length;count+)output+=charArray count;JOptionPan

    16、e.showMessageDialog(null,output,String类的length、charAt和getChars方法的使用,JOptionPane.INFORMATION_MESSAGE);System.exit(0);下面的例子通过使用String类的equals、equalsIgnoreCase、compareTo方法来进行字符串的比较。n例7-4字符串的比较7.2.2 String方法(续)方法(续)7.2.2 String方法(续)方法(续)/StringCompare.javaimport javax.swing.JOptionPane;public class Stri

    17、ngCompare public static void main(String args)String s1=new String(hello);String s2=goodbye;String s3=Happy Birthday;String s4=happy birthday;String output=s1=+s1+ns2=+s2+ns3=+s3+ns4=+s4+n;7.2.2 String方法(续)方法(续)if(s1.equals(hello)output+=s1 equals hellon;else output+=s1 does not equal hellon;if(s3.e

    18、qualsIgnoreCase(s4)output+=s3 equals s4n;else output+=s3 does not equal s4n;调用String类的equals方法判断字符串是否相等调用String类的equalsIgnoreCase方法在不区分大小写的情况下判断两字符串是否相等7.2.2 String方法(续)方法(续)output+=pareTo(s2)is +pareTo(s2)+pareTo(s1)is +pareTo(s1)+pareTo(s1)is +pareTo(s1)+pareTo(s4)is +pareTo(s4)+pareTo(s3)is +pare

    19、To(s3)+n;JOptionPane.showMessageDialog(null,output,字符串的比较,JOptionPane.INFORMATION_MESSAGE);System.exit(0);调用String类的compareTo方法进行两字符串的大小比较n下面的例子通过调用String类的indexOf和lastIndexOf方法来完成定位字符串中的字符和子字符串。n例7-5 字符串检索7.2.2 String方法(续)方法(续)7.2.2 String方法(续)方法(续)/StringIndexMethods.javaimport javax.swing.*;publi

    20、c class StringIndexMethods public static void main(String args)String letters=abcdefghabcdefgh;String output=c is located at index +letters.indexOf(c);output+=na is located at index +letters.indexOf(a,1);output+=n$is located at index +letters.indexOf($);调用String类的indexOf方法定位某个字符在字符串中第一次出现的位置7.2.2 St

    21、ring方法(续)方法(续)/String letters=abcdefghabcdefgh;output+=nLast c is located at index +letters.lastIndexOf(c);output+=nLast a is located at index +letters.lastIndexOf(a,10);output+=nLast$is located at index +letters.lastIndexOf($);output+=ndef is located at index +letters.indexOf(def);output+=ndef is l

    22、ocated at index +letters.indexOf(def,7);output+=nhello is located at index +letters.indexOf(hello);调用lastIndexOf方法定位某个字符在字符串中最后一次出现的位置 调用indexOf方法定位某个子字符串在字符串中第一次出现的位置7.2.2 String方法(续)方法(续)/String letters=abcdefghabcdefgh;output+=nLast def is located at index +letters.lastIndexOf(def);output+=nLast

    23、def is located at index +letters.lastIndexOf(def,25);output+=nLast hello is located at index +letters.lastIndexOf(hello);JOptionPane.showMessageDialog(null,output,字符串检索,JOptionPane.INFORMATION_MESSAGE);System.exit(0);调用lastIndexOf方法定位某个子字符在字符串中最后一次出现的位置n例7-6 字符串截取通过调用String类的substring方法来实现在字符串中提取一个子

    24、字符串7.2.2 String方法(续)方法(续)7.2.2 String方法(续)方法(续)/SubString.javaimport javax.swing.*;public class SubString public static void main(String args)String letters=abcdefghabcdefgh;String output=Substring from index 10 to end is +letters.substring(10)+n;output+=Substring from index 3 up to 6 is +letters.su

    25、bstring(3,6)+;JOptionPane.showMessageDialog(null,output,字符串截取,JOptionPane.INFORMATION_MESSAGE);System.exit(0);调用substring方法在字符串中提取一个子字符串将任意类型的数据转换成将任意类型的数据转换成String类型的方类型的方法法 String valueOf methodsstaticstatic String valueOf valueOf(type b)Returns the string representation of the type argument.例子:bo

    26、olean booleanValue=true;boolean booleanValue=true;String.valueOf(booleanValue);String.valueOf(booleanValue);/“true”import javax.swing.*;public class StringValueOf public static void main(String args)char charArray=a,b,c,d,e,f;boolean booleanValue=true;char characterValue=Z;int integerValue=7;long lo

    27、ngValue=10000000L;float floatValue=2.5f;/f suffix indicates that 2.5 is a floatdouble doubleValue=33.333;Object objectRef=hello;/assign string to an Object reference String output=char array=+String.valueOf(charArray)+npart of char array=+String.valueOf(charArray,3,3)+nboolean=+String.valueOf(boolea

    28、nValue)+nchar=+String.valueOf(characterValue)+nint=+String.valueOf(integerValue)+nlong=+String.valueOf(longValue)+nfloat=+String.valueOf(floatValue)+ndouble=+String.valueOf(doubleValue)+nObject=+String.valueOf(objectRef);JOptionPane.showMessageDialog(null,output,String valueOf methods,JOptionPane.IN

    29、FORMATION_MESSAGE);System.exit(0);/end class StringValueOf7.3 StringBuildernClass StringBuildernWhen String object is created,its contents cannot change ni.e.,constant strings nStringBuilder is used for creating and manipulating dynamic string datani.e.,modifiable stringsnCan store characters based

    30、on capacitynCapacity expands dynamically to handle additional charactersnUses operators+and+=for String concatenationnStringBuffer功能类似于功能类似于StringBuilder,但运行速度,但运行速度慢,线程安全慢,线程安全7.3 StringBuilder类类 n7.3.1 StringBuilder构造函数 n7.3.2 StringBuilder类的方法 7.3.1 StringBuilder构造函数构造函数构造函数用途StringBuilder()默认构造函

    31、数,创建一个不包含字符、且初始容量为16个字符的StringBuilder对象StringBuilder(intlength)创建一个不包含字符、且初始容量由参数length指定的StringBuilder对象StringBuilder(Stringstr)创建一个StringBuilder对象,该对象包含参数str所指定的字符串,且初始容量等于参数str所指定的字符串的长度再加上16表表7-3 StringBuilder类的构造函数类的构造函数7.3.1 StringBuilder构造函数(续)构造函数(续)/StringBuilderConstructors.javaimport java

    32、x.swing.*;public class StringBuilderConstructors public static void main(String args)StringBuilder buffer1=new StringBuilder();StringBuilderbuffer2=new StringBuilder(10);StringBuilderbuffer3=new StringBuilder(hello);String output=buffer1=+buffer1.toString()+nbuffer2=+buffer2.toString()+nbuffer3=+buf

    33、fer3.toString()+;JOptionPane.showMessageDialog(null,output,StringBuffer类的构造函数的使用,JOptionPane.INFORMATION_MESSAGE);System.exit(0);调用默认构造函数创建StringBuffer对象buffer1调用指定初始容量的构造函数创建StringBuffer对象buffer2调用指定初始字符串的构造函数创建StringBuffer对象buffer37.3.2 StringBuilder类的方法类的方法7.3.2 StringBuilder类的方法类的方法(续续)7.3.2 Str

    34、ingBuilder类的方法(续)类的方法(续)例例7-8 StringBuilder7-8 StringBuilder类的的应用类的的应用.public class StringBuilderOperation public static void main(String args)char charArray=a,r,e,e,f;String student=student.;/调用默认构造函数创建StringBuilder对象buffer1 StringBuilder buffer1=new StringBuilder();/调用指定初始字符串的构造函数创建StringBuilder对象

    35、buffer3 StringBuilder buffer2=new StringBuilder(You);buffer1.append(buffer2);buffer1.append();buffer1.append(charArray,0,3);buffer1.append(a);buffer1.append(student);System.out.printf(%s.n,buffer1.toString();buffer1.insert(10,good);/在位置10处插入子串“good”System.out.printf(After insert:n%sn,buffer1.toStrin

    36、g();buffer1.replace(10,14,best);/用best替换从位置10到位置13的子串 System.out.printf(After replace:n%sn,buffer1.toString();buffer1.setLength(3);/重新设置字符串的长度为3 System.out.printf(After setLength:n%sn,buffer1.toString();7.4 StringTokenizer类类 nStringTokenizer类可以将字符串分解为组成它的语言符号(单词)。n如一句话被分解为语言词汇(token):独立的单词和标点符号.n语句单

    37、词之间由定界符分开,如空格、制表符、换行符和回车符等nStringTokenizer类位于java.util包7.4 StringTokenizer类类The following is one example of the use of the tokenizer.The code:StringTokenizer st=StringTokenizer st=new StringTokenizer(this is a test);new StringTokenizer(this is a test);while(st.hasMoreTokens()while(st.hasMoreTokens()

    38、System.out.println(st.nextToken();System.out.println(st.nextToken();prints the following output:this is a test 7.4 StringTokenizer类类(续)(续)表表7-5 StringTokenizer类的构造函数类的构造函数构造函数用途StringTokenizer(Stringstr)以字符串str为参数,以默认定界符(空格、换行符、制表符、回车符)建立一个StringTokenizer对象StringTokenizer(Stringstr,Stringdelim)以字符串s

    39、tr为参数,以delim为定界符字符串,建立一个StringTokenizer对象7.4 StringTokenizer类类(续)(续)表表7-6 StringTokenizer类的常用方法类的常用方法方法用途int countTokens()返回要进行语言符号化的字符串中语言符号的数目boolean hasMoreTokens()检测正在进行语言符号化的字符串中是否还有更多的语言符号String nextToken()获取StringTokenizer类中的下一个语言符号/TokenExample.java import java.util.*;class TokenExample publ

    40、ic static void main(String args)String s=This%is!the$way#theworld%ends;String delimiters=!%$#;StringTokenizer st=new StringTokenizer(s,delimiters);while(st.hasMoreTokens()System.out.println(st.nextToken();ThisistheWay TheWorldendsn例7-9 StringTokenizer类的使用该例子说明StringTokenizer类的使用:显示一个窗口,在窗口的一个JTextFi

    41、eld中输入要一个语句,按回车后,程序将符号化的结果显示在窗口的JTextArea中。7.4 StringTokenizer类类(续)(续)7.4 StringTokenizer类类(续)(续)/TokenTest.javaimport java.util.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class TokenTest extends JFrame private JLabel promptLabel;private JTextField inputField;private JTe

    42、xtArea outputArea;public TokenTest()super(测试StringTokenizer类);Container container=getContentPane();container.setLayout(new FlowLayout();promptLabel=new JLabel(输入一个句子,然后按回车);container.add(promptLabel);inputField=new JTextField(20);7.4 StringTokenizer类类(续)(续)inputField.addActionListener(new ActionList

    43、ener()public void actionPerformed(ActionEvent event)StringTokenizer tokens=new StringTokenizer(event.getActionCommand();outputArea.setText(Number of elements:+tokens.countTokens()+nThe tokens are:n);while(tokens.hasMoreTokens()outputArea.append(tokens.nextToken()+n););调用StringTokenizer构造函数以JTextFiel

    44、d字段中的字符串(event.getActionCommand())建立对象tokens调用StringTokenizer类的方法countTokens调用StringTokenizer类的方法hasMoreTokens方法调用StringTokenizer类的方法nextToken方法7.4 StringTokenizer类类(续)(续)container.add(inputField);outputArea=new JTextArea(10,20);outputArea.setEditable(false);container.add(new JScrollPane(outputArea)

    45、;setSize(275,240);setVisible(true);public static void main(String args)TokenTest application=new TokenTest();application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);7.5 泛型集合泛型集合n集合类:用于存放一组对象的引用变量集合,又叫容器类n泛型(generic)集合类:n容器中存放的元素类型是通用的,使用时能够定制类型n对容器的常用操作算法(如插入、修改、删除、查询和排序等)已经封装在集合类中,并且也为通用的(即算法可以作

    46、用于不同的数据类型上)。nJava集合框架的根接口:Collection和Mapn集合类 位于包 java.util7.5.1 Collection接口与接口与Iterator迭代器迭代器1、Collection接口:接口:定义了List、Set和Queue的一组公共操作方法7.5.1 Collection接口与接口与Iterator迭代器迭代器2.迭代器迭代器Iterator:用于遍历集合中的元素。nIterator的方法:n boolean hasNext():如果被迭代的集合元素还没有被遍历,则返回true。n Object next():返回集合里下一个元素。n void remove

    47、():删除集合里上一次next方法返回的元素。nJava每一个集合类,都拥有一个方法iterator(),其返回一个迭代器对象。例如,test是一个集合对象List test=new ArrayList();Iterator it=test.iterator();while(it.hasNext()/遍历方法2 System.out.printf(%s ,it1.next();n。7.5.2 List(ArrayList、LinkedList、Vector)和和Enumeration类类1.List1.List接口概述接口概述nList泛型集合:存放着有序的一组元素,n使用索引(从0开始)来表

    48、示元素位置,T是泛型类型 List list=new ArrayList();n实现 List接口的类:ArrayList、LinkedList、Vector7.5.2 List(ArrayList、LinkedList、Vector)和和Enumeration类类2.ArrayList2.ArrayList类类nJava数组的存储空间大小是固定的:它们不能随应用程序的存储需求而变化。nArrayList类:是一个可变长的动态数组:数组元素个数能够动态地被改变。n每个ArrayList对象都有一个容量(Capacity),容量可随着不断添加新元素而自动增加。nArrayList的随机访问(se

    49、t、get)速度快,但插入和删除比较慢。当需要插入大量元素时,在插入前可以调用列表对象的ensureCapacity 方法来增加存储容量以提高插入效率。7.5.2 List(ArrayList、LinkedList、Vector)和和Enumeration类类 例例7-10 ArrayList7-10 ArrayList类和类和IteratorIterator类的应用:类的应用:建立建立ArryListArryList对象,然后对列表添加、修改和对象,然后对列表添加、修改和遍历。遍历。7.5.2 List(ArrayList、LinkedList、Vector)和和Enumeration类类

    50、3.Vector类类n类似于ArrayList的一种顺序存储的数据结构。n能存放到Vector中的数据元素必须是引用类型,不能基本的据类型。nVector的构造方法nVector的常用方法 3.Vector类类表表7-10 Vector类的构造函数类的构造函数构造函数用途Vector()创建一个Vector原始容量为10个元素,容量增量等于0。在需要变大时,该Vector将大小增大一倍Vector(Collectionc)创建集合元素c的副本,并将它们存储到Vector中Vector(intinitialCapacity)创建一个Vector其原始容量由initialCapacity指定Vec

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《Java面向对象程序设计(第4版)》课件chapter07 Java实用包.ppt
    链接地址:https://www.163wenku.com/p-5842002.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库