常用的Java基本类.ppt_第1页
常用的Java基本类.ppt_第2页
常用的Java基本类.ppt_第3页
常用的Java基本类.ppt_第4页
常用的Java基本类.ppt_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

第九章常用的Java基本类,主要任务:学会创建与使用字符串类对象、系统类对象、数学函数类对象、日期类对象的方法,本章主要内容,1.字符串类String与StringBuffer2.几个主要的Java基础类3.总结提高4.知识扩展,9.1字符串类String与StringBuffer,字符串是程序设计中经常用到的数据结构,很多编程语言将字符串定义为基本数据类型。但在Java语言中,字符串被定义为一个类,无论是字符串常量还是变量,都必须先生成String类的实例对象然后才能使用。,9.1.1字符串类的特点,在Java中,字符串分为两种类型:一种是用双引号括起来字符串常量,例如“Thisisateststring”,其字符串长度与内容不可改变,创建字符串常量时需要指定字符串的具体内容。字符串常量可以赋给任何一个String对象引用。一种是字符串变量,在创建字符串对象后字符串的内容可以改变。,Java将字符串定义为类有哪些好处呢?,首先,在任何系统平台上都能保证字符串本身以及对字符串的操作是一致的。其次,String和StringBuffer经过了精心设计,其功能是可以预见的。为此,二者都被说明为最终类,不能派生子类,以防用户修改其功能。最后,String和StringBuffer类在运行时要经历严格的边界条件检验,它们可以自动捕获异常,提高了程序的健壮性。,9.1.2字符串类的构造方法,例9.1字符串的构造方法,如图所示。,importjava.io.*;importjava.Applet.Applet;importjava.awt.Graphics;publicclassStringDemoextendsAppletbyteb=A,b,y,t,e,a,r,r,a,y;charc=A,c,h,a,r,a,r,r,a,y;Strings1,s2,s3,s4,s5,s6,s7,s8,s9;StringBufferb1,b2,b3;,publicvoidinit()b1=newStringBuffer();/创建一个空StringBuffer对象b2=newStringBuffer(10);/创建长度为10的空StringBuffer对象b3=newStringBuffer(Astringbuffer);/以字符串为参数创建StringBuffer对象s1=newString();/创建一个空String对象s2=newString(Astring);/以字符串为参数创建String对象s3=newString(b3);/以StringBuffer对象为参数创建String对象s4=newString(b);/以b为参数创建String对象,8位字节自动转为16位字符,s5=newString(b,2,4);/从b的第3位,取4个元素为参数创建String对象try/如果下面的字符集编码不存在将抛出异常s6=newString(b,2,10,GBK);/同s5,最后的字符串参数为字符集编码s7=newString(b,GBK);/同s4,最后的字符串参数为字符集编码catch(UnsupportedEncodingExceptione)/捕获异常s8=newString(c);/以字符数组c为参数创建String对象s9=newString(c,2,4);/从c的第3位,取4个元素为参数创建String对象,publicvoidpaint(Graphicsg)g.drawString(s1=+s1,20,20);g.drawString(s2=+s2,20,35);g.drawString(s3=+s3,20,50);g.drawString(s4=+s4,20,65);g.drawString(s5=+s5,20,80);g.drawString(s6=+s6,20,95);g.drawString(s7=+s7,150,20);g.drawString(s8=+s8,150,35);g.drawString(s9=+s9,150,50);g.drawString(b1=+b1.toString(),150,65);g.drawString(b2=+b2.toString(),150,80);g.drawString(b3=+b3.toString(),150,95);,9.1.3String类的方法,1求字符串长度publicintlength()可返回字符串长度。例如:Strings=欢迎使用Java语言;intlen=s.length();len的值为10。注意:Java采用Unicode编码,每个字符为16位长,因此汉字和其它符号一样只占用一个字符。另外,字符串的length方法和表示一个数组长度的length是不一样的,后者是一个实例变量。,2字符串连接,publicStringconcat(Stringstr)可返回一个字符串,它将把参数str添加在原字符串的后边。例如:to.concat(get).concat(her)的返回值为“together”。但在Java中,更多地是用“+”来连接字符串。例如:Stringstr=hello;str=str+world!;,3字符串截取,字符串截取有两个途径:一次截取一个字符或一次截取一个子串。前者可通过charAt方法(参见例7.4),后者使用substring方法。它有两种形式:Stringsubstring(intstart)Stringsubstring(intstart,intend)其中start代表起始位置,end代表结束位置。例如:Stringstr=ashortstring;Strings1=str.substring(2);Strings2=substring(8,14);,4字符串比较,有两组方法用于字符串比较,一组是equals,用于比较两个字符串是否相等,返回值为布尔值。一组是compareTo,用于按字符顺序比较两个字符串,返回值为整型数。共有5个方法:booleanequals(Objectobject)booleanequalsIgnoreCase(Stringstr)/忽略字符大小写intcompareTo(Objectobject)intcompareTo(Stringstr)intcompareToIgnoreCase(Stringstr)/忽略字符大小写,5复制到字符串,一个字符数组的内容可以全部或部分地拷贝到一个字符串中。有两个静态方法用于这种拷贝:staticStringcopyValueOf(chardata)staticStringcopyValueOf(chardata,intoffset,intcount)例如:charc=A,c,h,a,r,a,r,r,a,y;Strings1=newString(),s2=newString();s1=s1.copyValueOf(c);s2=s2.copyValueOf(c,2,4);,6字符串大小写转换,一个字符串可以整体转换为大写或小写字符,例如:Strings1=allislowercase;Strings2=SomeIsUppercase;s1=s1.toUpperCase();s2=s2.toLowerCase();结果是s1的字符全部为大写,s2的字符全部为小写。,7字符串检索,你可以在一个字符串中检索指定字符或子串的位置,如果检索到将返回一个代表位置的整数,否则返回值为-1。有两组方法实现这种操作,indexOf方法返回字符或子串首次出现的位置,lastIndexOf方法返回字符或子串最后一次出现的位置。我们各选择两个典型的方法来说明这种检索操作:intindexOf(intch)intindexOf(Stringstr)intlastIndexOf(intch)intlastIndexOf(Stringstr),8字符串转换为数组,字符串可以转换为字节数组或字符数组,这种转换在Java流处理中十分有用。字符串转为字节数组将进行特别处理,因为字符是16位长,而字节为8位长,所以要将字符的高8位去掉,只保留低8位成为一个字节。有3个方法:bytegetBytes()/按系统缺省字符集编码转换为字节数组bytegetBytes(Stringenc)/其中enc为字符集编码,参见例7.5chartoCharArray()/转换为字符数组,9转换为字符串,String类提供了一组valueOf方法用来将其它数据类型转换成字符串,其参数可以是任何数据类型(byte类型除外)。它们都是是静态的,也就是说不必创建实例化对象即可直接调用这些方法,其基本用法为:valueOf(数据类型)。例如:chardata=a,b,c,d,e;System.Out.println(String.valueOf(12D);System.Out.println(String.valueOf(32);System.Out.println(String.valueOf(data,1,3);,9.1.4StringBuffer类的方法,StringBuffer提供的方法有一些与String相同,有一些不同。最主要的方法有两组,一组是append,另一组是insert,每组各有10个方法。,1append方法,append的10个方法主要在参数上有所不同,它可以把各种数据类型转换成字符串后添加进来(byte类型除外),其基本用法为:append(数据类型)。,2insert方法,insert方法和append方法在使用上非常类似,唯一的不同是多了一个位置参数,该参数必须大于等于0。其基本用法为:insert(插入位置,数据类型)。例如:chardata=a,b,c,d,e;StringBufferbuffer=newStringBuffer();buffer.insert(0,100);buffer.insert(0,2.5F);buffer.insert(3,*);buffer.insert(0,250.0D);buffer.insert(5,isequalto);最后,buffer的内容为“250.0isequalto2.5*100”。,3其它方法,下面几个方法对程序员来说是经常用到的:publicStringBufferdelete(intstart,intend)/删除子串publicStringBufferdeleteCharAt(intindex)/删除指定位置上的字符publicStringBufferreplace(intstart,intend,Stringstr)/替换子串StringBufferreverse()/翻转字符串,9.2几个主要的Java基础类,9.2.1根类ObjectJava的类的根类是Object。Java的每个类都默认为Object的子类,它是所有类的超类。所有的对象实例(包括数组)都可以实现Object类的方法。,总结:,(1)Object类的clone()方法在Clone.java源程序中创建了两个类,一个是实现Cloneable接口的DrawOval画圆的类,同时实现了Cloneable接口的clone()方法。(2)Object类的主要方法publicObject()publicinthashCode()publicbooleanequals(Objectobj)protectedObjectclone()publicStringtoString()publicfinalvoidnotify()publicfinalvoidnotifyAll()publicfinalvoidwait(longtimeout)protectedvoidfinalize(),9.2.2系统类System,Java的标准输入输出方式数据输入的起点为键盘,数据输出的终点是屏幕。标准输入变量System.inSystem可以调用InputStream类的read方法来读取键盘数据达到通过键盘给程序输入数据的任务,这种输入数据的方式称为标准输入方式。标准输出变量System.outSystem.out可以调用PrintStream的print、println或write方法实现标准输出,在屏幕上显示各种类型的数据。回车符“r”,9.2.3数学函数类Math,Math是一个最终类,含有基本数学运算函数,如指数运算、对数运算、求平方根和三角函数等,可以直接在程序中加Math前缀调用。下面是其成员变量和常用成员方法(举例说明):staticdoubleE/数学常量estaticdoublePI/圆周率staticdoublesin(doublea)/正弦函数staticdoublecos(doublea)/余弦函数staticdoubletan(doublea)/正切函数staticdoubleexp(doublea)/常数e的a次幂,9.2.4Class类与Runtime类,通过Class类与Runtime类中的方法可以获得运行时的信息,如当前类每、超类名、包名以及内存空间,操作系统名称等。看下例。,publicclassRun1publicstaticvoidmain(Stringargs)Stringstr=newString();System.out.println(本类名=+str.getClass().getName();System.out.println(超类名=+str.getClass().getSuperclass().getName();System.out.println(包名=+str.getClass().getPackage().getName();System.out.println(操作系统=+System.getProperty();,System.out.println(Java版本=+System.getProperty(java.vm.version);System.out.println(内存总量=+Runtime.getRuntime().totalMemory();System.out.println(剩余空间=+Runtime.getRuntime().freeMemory();,小结:,(1)Class类的方法publicClassgetClasses()publicStringgetName()publicPackagegetPackage()(2)Runtime类的方法publicstaticRuntimegetRuntime()publiclongtotalMemory()publiclongmaxMemory()publiclongfreeMemory()程序中,使用的getClass()方法是Object类的方法。,9.3总结提高,Java.lang软件包中还定义了Java的8种基本数据类型对应的包装类:(1)Boolean类将基本类型为boolean的值包装在一个对象中。(2)Byte类将基本类型byte的值包装在一个对象中。(3)Character类在对象中包装一个基本类型char的值。(4)Double类在对象中包装了一个基本类型double的值。(5)Float类在对象中包装了一个float基本类型的值。(6)Integer类在对象中包装了一个基本类型int的值。(7)Long类在对象中封装了基本类型long的值。(8)Short类在对象中包装基本类型short的值。,9.4知识扩展,9.4.1日期类Java提供了3个日期类Date、Calendar和DateFormat来处理日期在程序中的显示方式。,小结,引入java.util包Java提供了3个日期类:Date、Calendar和DateFormat。日期和时间的格式化处理通过DateFormat的getInstance方法可以创建一个默认的格式化器,它可以同时对日期和时间进行格式化,返回值为字符串类型。Calendar类的特点,9.4.2随机数类Random,Random有两个构造方法:Random()、Random(longseed)。前者使用系统时间作为种子数,后者使用指定的种子数

温馨提示

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

评论

0/150

提交评论