第6章基础类库和工具类库章节讲课_第1页
第6章基础类库和工具类库章节讲课_第2页
第6章基础类库和工具类库章节讲课_第3页
第6章基础类库和工具类库章节讲课_第4页
第6章基础类库和工具类库章节讲课_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

1、第6章 基础类库和工具类库1章节课件引言 我们很少见到一个家具厂要自己种树、伐木来提供木材,也很少见五金厂自己通过冶炼来提供钢材,但在以往的程序设计中,这种一切从头开始的做法却是常见的。这种做法会带来大量的重复工作,解决这一问题的方法是软件重用。面向对象技术是迄今为止提高软件可重用性的最有效途径,其中类和类的继承机制为提高程序的可重用性提供了强有力的支持。 java有一个功能强大的资源库,通过类和类的继承机制将资源库中的资源组织起来,java将功能相关的类组织成包,使程序员可以很方便地使用资源库。java资源库中类的继承层次和包的组织呈树型结构,java资源库的这种组织方式使程序员进行java

2、编程时有“背靠大树好乘凉”的感觉。2章节课件6.1 java基础类 java的类库是系统提供的已实现的标准类的集合,是java编程的api(application program interface),它可以帮助开发者方便、快捷地开发java程序。 这些系统定义好的类根据实现的功能不同,可以划分成不同的集合,每个集合是一个包,合称为类库。 java的类库大部分是由它的发明者sun公司 提供的,这些类库称为基础类库(jfc)。 api 应用程序编程接口 面向过程语言 函数库(子程序包) 面向对象语言 类库3章节课件6.1.1 基础类库 类库的结构 java.lang 语言基础类库(system、

3、math、thread、基本数据类型类) java.util java的工具类库(向量、栈、日期) java.io java的标准输入输出类库 java.applet 用于实现java applet小程序的类库 java.awt 用于构建图形用户界面的类库 java.awt.event 界面用户交互控制和事件响应类库 java.awt.image 用于处理和操纵来自网上的图片 java的用于实现网络功能的类库 java.sql 用于访问数据库的类库 使用jdk document查看类库4章节课件6.1.2 语言基础类库-object类 java程序中所有类的直接或间接父类,也是类库中所有类的的

4、父类,所有的其他类都是从object类派生。 构造方法:object( ) 一般方法:方法说明equals()比较两个对象是否相同,结果为一布尔值getclass() 返回一个对象在运行时所对应的类的表示tostring()返回描述当前对象的字符串信息clone()生成并返回当前对象的一个拷贝finalize()定义回收当前对象时所需完成的清理工作5章节课件例6-1 object中定义的方法的使用public class basicobjectdemo public static void main(string args) a a1 = new a();a a2 = new a();a a3

5、 = a1;b b = new b();system.out.println(a1.equals(a2);system.out.println(a3.equals(a1);system.out.println(a1.hashcode();system.out.println(a1.tostring();class a class b falsetrue3526198a35ce366章节课件6.1.3 语言基础类库:数据类型类java的数据类型及其对应的基本数据类型基本数据类型数据类型包装类bytebyteshortshortintintegerlonglongfloatfloatdoubled

6、oublecharcharacterbooleanbooleanf在java中,数据类型包装类用于封装基本数据类型的有关信息和操作。f数据类型包装类是由多个类组成的一个集合,每种基本数据类型均存在相应的对象封装类7章节课件1.character类 构造方法:public characher(char value) 例: characher ch=new characher(a);常用方法及说明方法说明islowercase(char ch)判断ch是否为小写isuppercase(char ch)判断ch是否为大写isdigit(char ch)判断ch是否为数字isletter(char c

7、h)判断ch是否为字母tolowercase(char ch)返回小写touppercase(char ch)返回大写digit(char ch,int radix)根据radix指定的进制,返回ch所对应的值8章节课件2.integer类构造方法:public integer(int value) public integer(strng s) throws numberformatexception例: integer a=new integer(1); integer a1=new integer(1);方法说明parseint(string s)将s转换为带符号十进制整数valueof

8、(string s)将s转换为一个integer 对象,该对象对应的int数值与字符串表示的数值一致类变量说明max_value规定了int 类型的最大值min_value规定了int 类型的最小值常用类变量及说明常用方法及说明int i=integer.parseint(“888”);int j=integer.valueof(“111”).intvalue();字符串与整形数据的转化9章节课件数据类型类integer integer类的 公用属性 方法。10章节课件数据类型类integer integer类的 公用属性 常用方法。可进行进制转换11章节课件例子:2进制转换!1.public

9、 class integerapp 2. public static void main(string arg)3. int i=integer.valueof(1234).intvalue();4. system.out.println(十进制数 +i+对应的二进制数是:+integer.tobinarystring(i);5. system.out.println(十进制数 +i+对应的十六进制数是:+integer.tohexstring(i);6. system.out.println(integer对应的基本类型是: + integer.type.tostring();7. syst

10、em.out.println(integer最大值为: + integer.max_value);8. system.out.println(integer最小值为: + integer.min_value);9. 10. 12章节课件运行结果:十进制数十进制数 1234对应的二进制数是:对应的二进制数是:10011010010十进制数十进制数 1234对应的十六进制数是:对应的十六进制数是:4d2integer对应的基本类型是:对应的基本类型是:intinteger最大值为:最大值为:2147483647integer最小值为:最小值为:-214748364813章节课件6.1.4 语言基础

11、类库:system类 java.io包中提供了多种输入/输出流,但是java把最基本的输入/输出流类放在了java.lang.system类中。这个类提供了一个很重要的内容标准输入/输出流。 标准输入流用于从标准输入设备输入数据; 标准输出流用于向标准输出设备输出数据。 system类在声明时使用了final关键字,而且该类中的所有方法和变量都是静态的,因此该类不能被实例化或派生子类。 要使用类变量。如:system.out。 调用类的方法。如:system.getproperty(参数) 14章节课件 system类中保存了重要的全局函数和变量: system.err是标准错误输出流,用于输

12、出错误信息。 system.in是标准输入流,其read方法提供了一种简便的数据读取手段。这个方法可读取用户在键盘上输入的字符。 system.out是标准输出流,它是java.io包中printstream类的一个对象,其println 方法用于输出数据。system.out.println(“hello world!”) system.out.println system.out.print15章节课件例6-2:system类 class usernametest public static void main(string args) string name; name = system

13、.getproperty(); /调用getproperty方法,获取机器的用户名 system.out.println(用户名:+name); /屏幕显示用户名 16章节课件system类 属性 public static inputstream in public static printstream out public static printstream err 获取系统信息、完成系统操作的方法 public static long currenttimemillis(); 获取自1970年1月1日零时至当前系统时刻的微秒数 972370687290 public

14、static void exit(int status); 强制java虚拟机退出运行状态,并把状态信息status 返回给运行虚拟机的操作系统。 system .exit(0); public static void gc(); 强制调用java虚拟机的垃圾回收功能。 17章节课件6.1.5 语言基础类库:math类java.lang.math类是标准的数学类,封装了一些数学函数和常量。在这个类中,数的大小范围跟具体的操作平台有关。与system类相似,java.lang.math类也不能被子类化或实例化,因为它的所有方法和变量也都是静态的。二个类变量:类变量说明e最接近自然对数的底(e)的

15、double值pi最接近圆周率()的double值18章节课件三角函数 下面的三个方法接受一个double类型的且以弧度为单位的角度值,并返回相应的运算结果:1. sin(double a)返回角度a的sin值。2. cos(double a)返回角度a的cos值。3. tan(double a)返回角度a的tan值。 这些方法以double类型的值作为参数并返回相应的三角运算结果。下面的方法是反三角函数:1. asin(double r)返回sin值为r的角度值。2. acos(double r)返回cos值为r的角度值。3. atan(double r)返回tan值为r的角度值。19章节课

16、件1. pow(double y,double x)返回y的x次方 例如,math.pow(2.0,3.0)返回结果为8.02.exp(double x)返回x的底数3.log (double x)返回x的自然对数4.sqrt (double x)返回x的平方根5.random() 产生0-1之间随机数舍入1. ceil(double a)返回大于或等于a的最小整数值2. floor(double a)返回小于或等于a的最大整数值3. round(float a)返回舍入尾数后最接近a的整型值20章节课件多态方法:abs、min和max下面是几个应用于int、long、float和double

17、类型的多态方法:1.abs(a)返回a的绝对值。2.max(a,b)返回a和b的最大值。3.min(a,b)返回a和b的最小值。 21章节课件例 6-3:math类的方法使用 import java.lang.*;import java.io.*;public class mathdemo public static void main(string args) system.out.println(math.e=+math.e); /输出常量e system.out.println(math.pi=+math.pi); /输出常量 system.out.println(ceil(e)=+ma

18、th.ceil(math.e); /输出大于等于e的最小双精度数 system.out.println(floor(e)=+math.floor(math.e); /输出小于等于e的最大双精度数 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); /计算/4的正弦值22章节课件例 6-3:math类的方法使用tr

19、y double rand=math.random(); double rand2=-math.random();system.out.println(power(+rand+,+rand2+)=+math.pow(rand,rand2);/求幂 catch(arithmeticexception ex) system.out.println(arithmeticexception occured!); math.e=2.718281828459045math.pi=3.141592653589793ceil(e)=3.0floor(e)=2.0rint(pi)=3.0lne=1.0sin(p

20、i/4)=0.7071067811865475p o w e r ( 0 . 9 7 2 6 1 7 9 3 2 3 5 6 2 3 5 4 , -0.12166141769193639)=1.003383511941202223章节课件6.2 字符串相关类 6.2.1 string类string类的特性是:字符串创建之后,字符的内容就不能再变动。1 string有五个构造方法:nstring ();/生成一个空串。nstring (char chars );/从字符数组chars 生成一个字符串。nstring (char chars ,int startindex,int numchars

21、);/从chars 数组的startindex位置开始提取字符,共提取numchars个字符组成一个字符串。nstring (string value);/利用一个已存在的字符串常量生成一个字符串。nstring (stringbuffer buffer);/利用一个已存在的stringbuffer对象进行初始化,生成一个字符串24章节课件2 生成字符串 char chars1 = b,c,d; char chars2 = a,b,c,d,e; string string1 = new string(chars1); string string2 = new string(chars2,1,3

22、);语句1、2定义了2个字符数组;语句3从字符数组chars1 生成一个字符串string1,其值为“bcd”;语句4从字符数组chars2 生成一个字符串string2,其值为“bcd” (即从字符数组chars2的下标为1的元素b开始提取共3个字符组成字符串)。string s = new string(); /生成一个空字符串25章节课件3 创建对象(1)string s3=new string(bcd);(2) string s4=new string(s3);(3) stringbuffer st=new stringbuffer(bcd);(4) string s5=new str

23、ing(st); 直接定义字符串: string astring=“this is a string.”; string astring3= astring; 采取这种方式定义的astring3和astring指向同一对象,即字符串“this is a string.”。 采用new定义字符串: string astring4= new string (astring); 这样写法将创建一个新的对象实体,其内容和astring一模一样。因此astring4所引用的字符串内容虽然和astring相同,但是,实际上却指向不同的对象实体。 26章节课件4 string类处理字符串的方法 字符串的合并

24、:用操作符+实现 比较两个字符串的前缀或后缀是否相等的方法 startswith(string prefix); /判断当前字符串是否是prefix的前缀; startswith(string prefix,int toffset); /判断当前字符串的子串是否与prefix相同; endswith(string suffix); /判断当前字符串是否是prefix的后缀。string s1 = “appletree”;s1.startswith(“apple”);s1.startswith(“tree”,5);s1.endswith(“tree”);s1.endswith(“tree”);t

25、ruefalse27章节课件 indexof(char ch) /在当前字符串中检索指定字符首次出现的位置。 indexof(char ch, int fromindex) /在当前字符串中从指定位置开始检索指定字符首次出现的位置 用indexof方法来检索指定的字符串。检索方法的返回值均为字符所在位置的序号或所检索的字符串首字符所在位置的序号,如没有检索到,则返回值为-1。比如: string s1 = “we are studing java.”; s1.indexof(a); s1.indexof(a,5); s1.indexof(“are” ,1); 方法lastindexof (ch

26、ar ch)是在指定字符串中检索某个指定字符最后出现的位置,用法和indexof类似。 字符串检索的方法28章节课件 例 :string类的tochararray方法的使用。 class tochararray public static void main(string args ) string s1 = we like apple.; char s2 = s1.tochararray(); system.out.println(string.valueof(s2,8,5); 程序说明: 第3行定义了一个字符串s1; 第4行使用tochararray方法将字符串s1转换为字符数组s2; 第

27、5行使用valueof方法将字符数组s2中的第8个字符开始的5个字符即“apple”取出并打印输出。 将字符串转换成字符数组 29章节课件6.2.2 stringbuffer类 stringbuffer类用于处理可变的字符串,提供修改字符串的方法。 生成stringbuffer对象后,可通过调用tostring()方法将其转换为string对象。 stringbuffer有三个构造方法: stringbuffer(); stringbuffer(int length); stringbuffer(string str); 示例: stringbuffer s0 = new stringbuff

28、er(); stringbuffer s1 = new stringbuffer(512); stringbuffer s2 = new stringbuffer(“happy new year!”);30章节课件stringbuffer提供的方法 实现对字符串的修改,包括字符替换、插入字符、在末尾添加一个子串等。 原因就是它使用了缓冲区。 从stringbuffer类创建的对象都分配比给定字符串还多16个字节长度的缓冲区。 stringbuffer类提供了方法来检测和获得缓冲区容量,在对字符修改过程中,如果缓冲区不够用,那么,系统会自动扩大缓冲区。 31章节课件stringbuffer提供的

29、主要方法: 字符设置和替换 setcharat(int index,char ch);此方法将指定的字符ch放到index指出的位置。 例: stringbuffer s= new stringbuffer(“stadents”); s.setcharat(2,u); 上述语句将字符串s中第2个字符a替换为u。 字符的插入 insert(int offset, char ch); insert方法用来在字符串的指定位置插入字符ch。 32章节课件例6-4:stringbuffer的insert方法的使用1 public class mystring public static void mai

30、n(string arg ) string s1=wecome; stringbuffer sb1=new stringbuffer(s1); sb1.insert(2,l); system.out.println(sb1); 程序结果:打印“welcome”。 33章节课件stringbuffer 的insert方法的使用2insert方法还允许插入字符串、布尔量、数组和各种类型的数据,甚至插入一个对象。即按照入口参数的不同,stringbuffer提供了以下insert方法:ninsert(int offset, char c);ninsert(int offset, boolean b)

31、;ninsert(int offset, char str );ninsert(int offset, double d);ninsert(int offset, float f);ninsert(int offset, int i);ninsert(int offset, long l);ninsert(int offset, object obj);ninsert(int offset, string str); 34章节课件例 6-5:stringbuffer的insert方法实现多种插入 public class stringmodify public static void main

32、(string str ) stringbuffer s = new stringbuffer(eacher!); boolean b=true; char c=t; double d=3.14159; char e=,; char f =w,e,l,c,o,m,e,!; char g=!; system.out.println(insert a char:+s.insert(0,c); s.insert(0,e); system.out.println(insert a double:+s.insert(0,d); s.insert(0,g); system.out.println(inse

33、rt a array:+s.insert(0,f); 35章节课件用append方法在字符串末尾添加内容 随着入口参数的不同,append方法可以用来添加字符串、各种类型的数据和数组等:1. append(boolean b);2. append(char c);3. append(char str );4. append(char str , int offset, int len);5. append(double d);6. append(float f);7. append(int i);8. append(long l);9. append(object obj);10. appen

34、d(string str); 36章节课件class stringappend public static void main(string str ) stringbuffer s = new stringbuffer(students); boolean b = true; char c = ,; char d = t,h,i,s,m,i,s, m; system.out.println(append a char:+s.append(c); system.out.println(append a array:+s.append(d); system.out.println(append

35、a boolean:+s.append(b); 例 6-6:stringbuffer的append方法使用 37章节课件tostring ()方法将可变字符串转化为不变字符串 下面的程序段中用了append方法和tostring方法,将字符串修改后转化为字符串常量。 char c = e; stringbuffer s = new stringbuffer(we ar); s.append(c); s.append( students.); s.tostring(); 结果:s成为字符串常量,其值为we are student38章节课件stringbuffer类提供了length()方法检查

36、缓冲区中字符串的长度 用charat (int index)方法得到入口参数所指位置的字符 用capacity()方法获取缓冲区长度。 public class mystring public static void main(string args) string s1 = i like apple.; stringbuffer sb1 = new stringbuffer(s1); system.out.println(sb1.length(); system.out.println(sb1. capacity(); 程序说明:由于s1字符串共含13个字符,所以,第4行语句将s1送到字符串

37、缓冲区sb1后,由第5行打印语句打出的字符串长度为13。实际上,sb1缓冲区长度为13+16=29,因为用new关键字创建对象时,为其分配的缓冲区长度比实际字符数多16个字符长度39章节课件例6-7:stringbuffer的length、capacity、charat方法使用 public class mystring public static void main(string args) string s1 = beautiful; stringbuffer sb1=new stringbuffer(s1); system.out.println(第四个字符为:+sb1.charat(4

38、); /取出对象第4个字符 system.out.println(length=+sb1.length(); /返回对象的当前长度 system.out.println(capacity:+sb1.capacity(); /返回对象的整个容量 40章节课件6.2.3 stringtokenizer作用:对字符串的解析和分割例6-8 stringtokenizerimport java.util.stringtokenizer;public class stringtokenizerdemo public static void main(string args) string s=demo o

39、f stringtokenizer;stringtokenizer tokenizer=new stringtokenizer(s, );while (tokenizer.hasmoretokens()system.out.println(tokenizer.nexttoken();demoofstringtokenizer41章节课件6.3 日期和时间6.3.1 日期类date 构造方法 date()/构造一个系统时间的data实例date(long date)/构造指定时间的data实例 方法 gettime() /获取自1970.1.1零时至当前系统时刻的微秒数 settime() /设

40、置新的时间 int getdate() /获取系统当前日期after(date)/比较是否迟于参数指定的日期brfore(date)/比较是否早于参数指定的日期42章节课件6.3.2 工具类库:calendar calendar(表示日期和时间) getinstance( ): 得到表示当前时间的实例 get(int):获取相应信息,如get(calendar.year) set(int,int):如 set(calendar.year,1999) set(year,month,date):set用来设置信息 calendar.gettime():得到当前时间的date对象 gregoriancalendar 有不同的构造方法,用来创建实例。如:gregoriancalender(year,month,date,)43章节课件日期类calendar抽象类,在date对象和一组整数域之间进行转换: year, month, day, hour, calendar c = calendar.getinstance(); int c.get(calendar.year) int c.get(calendar.month) (

温馨提示

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

最新文档

评论

0/150

提交评论