四章类和对象常用类

上传人:cl****1 文档编号:587222164 上传时间:2024-09-05 格式:PPT 页数:67 大小:893.02KB
返回 下载 相关 举报
四章类和对象常用类_第1页
第1页 / 共67页
四章类和对象常用类_第2页
第2页 / 共67页
四章类和对象常用类_第3页
第3页 / 共67页
四章类和对象常用类_第4页
第4页 / 共67页
四章类和对象常用类_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《四章类和对象常用类》由会员分享,可在线阅读,更多相关《四章类和对象常用类(67页珍藏版)》请在金锄头文库上搜索。

1、第四章第四章 类和对象类和对象-2 常用类和接口常用类和接口班级班级软件技术专业软件技术专业10级(级(Java方向)方向)任课教师朱利华QQ86061260OfficeSA410Company L主要内容学习目标及重、难点1任务学习2课堂实践3总结与要求4任务介绍任务一熟练使用Java.lang包中的类解决问题(Object、System、String、StringBuffer、Math、Class、基本数据类型包装类)任务二了解java.util包中的类(Date,Calendar,集合容器类)任务三使用常用类解决问题任务分析支撑知识讲解pjava.lang包中常用类pjava.util包

2、中常用类pJavaAPI文档使用任务实现任务解决任务解决任务小结学习目标重点、难点Company Logo重点String和StringBufferMath和数据包装类Date、Calendar、Vector难点String和StringBufferMath和数据包装类学习目标掌握String和StringBuffer类的使用掌握Object,System、Class类的使用掌握Math类、数据包装类的使用掌握Date,Calendar,Vector的使用了解集合容器(后面讲)学习内容String和StringBufferObject,System、ClassMath、数据包装类Date,Ca

3、lendar,Vector了解集合容器类回顾v类的定义属性方法(访问控制权限4个,static、final)构造方法方法重载v对象创建对象使用对象对象的生命周期本章背景v本章将学习Java中有很多常用的类和接口,非常实用v要求学生掌握String和StringBuffer类的区别和使用掌握Math类和数据包装类的使用掌握java.lang中其他常用的类掌握java.util中常用的类掌握Date,Calendar,Vector类的使用会查看API文档掌握常用类的使用任务学习任务介绍任务分析任务实现Company Logov任务描述任务描述任务一:会使用java.lang中常用的类任务学习任务介

4、绍任务分析任务实现Company Logov支撑知识介绍支撑知识介绍Java.lang包类Object,System类String,StringBuffer类Math,Class基本数据类型包装类8Java类库vJava的类库系统提供的已实现的标准类的集合是Java编程的API(ApplicationProgramInterface),它可以帮助开发者方便、快捷地开发Java程序。系统定义好的类根据实现的功能不同,可以划分成不同的集合,每个集合是一个包,合称为类库。vAPI应用程序编程接口面向过程语言函数库(子程序包)面向对象语言类库9Java类库结构v类库的结构java.lang语言基础类库

5、(System、Math、Thread、基本数据类型类)java.utilJava的工具类库(向量、栈、日期)java.ioJava的标准输入输出类库java.applet用于实现JavaApplet小程序的类库java.awt用于构建图形用户界面的类库java.awt.event界面用户交互控制和事件响应类库Java的用于实现网络功能的类库v使用JDKAPI查看类库10语言基础类库Object类vObject类Java程序中所有类的直接或间接父类,也是类库中所有类的的父类v构造方法Object()v一般方法:Objectclone()生成当前对象的一个拷贝。booleanequals(Obj

6、ectobj)比较两个对象是否相等。ClassgetClass()获取当前对象所属的类信息。StringtoString()用来返回当前对象本身的有关信息。protectedvoidfinalize()当垃圾收集器确定对象上没有其他的引用时,调用对象上的垃圾收集器。Object类上的此方法不执行任何特定行为,仅简单返回,其子类会覆盖此方法。11关于toString()方法vpublicStringtoString()方法其返回值是String类型,描述当前对象的有关信息在进行String与其它类型数据的连接操作时(如:System.out.println(“info”+Person),将自动调

7、用该对象类的toString()方法可以根据需要在用户自定义类型中重写toString()方法12equals()方法vpublicbooleanequals(Objectobj)方法判断对象是否“相等”x.equals(y),当x和y是同一个对象的应用时返回true,否则返回false有些类,如String、Date等,重写了equals()方法,当使用x.equals(y)时表示x和y所引用的对象是同一类对象且属性内容相等(并不一定是相同对象)返回true,否则返回false可以根据需要在用户自已定义的类中重写equals()方法13语言基础类库System类vSystem类系统功能类,提

8、供了标准输入输出、运行时的系统信息等工具不能创建System类的对象所有的属性和方法都是静态(static)的,引用时应以System为前缀属性获取系统标准输入/输出/错误输出System.in(对应于键盘输入或用户指定输入源)System.out(对应于显示屏或用户指定的输出源)System.err(对应于显示屏或用户指定的输出源)方法获取系统信息、完成系统操作的方法publicstaticlongcurrentTimeMillis();/获取自1970年1月1日零时至当前系统时刻的微秒数publicstaticvoidexit(intstatus); /强制Java虚拟机退出运行状态,Sy

9、stem.exit(n);n非0描述非正常中断.publicstaticvoidgc();/强制调用Java虚拟机的垃圾回收功能。14示例:System类vSystem.in输入charc=System.in.read();System.out.println(c);Scannerin=newScanner(System.in);15JAVA中的字符串vJava把字符串(常量或变量)可以使用String类和StringBuffer类的对象来处理。v由于使用频繁,有时也被视为基本类型遇到双引号自动创建String类的对象提供字符串运算符,字符串的连接:+v定长字符串:String类(效率较高)不

10、能更改,可用于比较、搜索之类的操作v可变字符串:StringBuffer类(使用灵活)可追加、插入、修改,但内存管理复杂String类 在Java中,字符串被当作对象来处理。分为两大类:vString字符串中每个字符是16位,2字节的unicode码创建之后不会再做修改和变动String类是final的,不可被继承String类对象有个特殊的创建的方式,就是直接指定,比如Stringx=abcString对象可以通过“+”串联。vStringBuffer对字符串做大量修改时使用创建之后允许再做更改和变化17字符串类-StringvStringJava语言将字符串作为对象来处理,每一个字符串常量

11、是字符串类的一个实例。v构造方法String()、String(String)、String(charchars)v创建字符串,三种方式使用new关键字创建字符串比如Strings1=newString(abc);chara=X,M,J;Strings=newString(a);chara=S,C,E,M,I,X,M,J;Strings=newString(a,5,3);直接指定。由于字符串经常使用,可以直接使用字符串常量生成一个String类的对象比如Strings2=abc;使用串联生成新的字符串比如Strings3=ab+c;vObject的方法toString()实现其他对象向字符串的

12、转换18字符串类-Stringv方法方法intlength()/返回字符串长度例:“Java与面向对象程序设计”.length()的值为13charcharAt(intindex)/返回指定位置的字符例:Java与面向对象程序设计.charAt(2)intcompareTo(Strings2)/按字母序进行字符串比较booleanequals(Objectobj)/判断字符串相等(区分大小写)booleanequalsIgnoreCase(Strings2)/(不区分大小写)StringtoLowerCase()/将字符串所有大写字母转换为小写StringtoUpperCase()/将字符串所

13、有小写字母转换为大写valueOf(Objectobj)/将某个对象的实例转换成字符串19字符串类-StringStringsubstring(intbeginIndex)/取子串Stringsubstring(intbeginIndex,intendIndex)intindexOf(Stringstr)/返回str在当前串中开始位置intindexOf(Stringstr,intfromIndex)intlastIndexOf(Stringstr,intfromIndex)/.booleanstartsWith(Stringprefix)/判断该字符串是否以prefix为前缀。boolean

14、endsWith(Stringsuffix)/判断该字符串是否以suffix为后缀。chartoCharArray()/将字符串转为字符数组Stringconcat(Stringstr);/连接字符串replace(charoldChar,charnewChar)/字符替换20字符串类StringBuffervString类是不可变的字符串,如果需要修改String对象所表示的内容,必须重新创建一个对象:Stringstr=Peter;str=str+&Bob+&Tom;v当修改操作频繁,或字符串的值很大时,会额外分配大量内存v可变字符串-StringBuffer类用来表示内容可以扩充和修改字

15、符串对象StringBuffer类vStringBuffer类可变的字符串,有改变字符串内容和长度的若干方法,StringBuffer在多线程中使用是安全的vStringBuffer对象的构造StringBuffersb1=newStringBuffer();构造一个空的对象StringBuffersb2=newStringBuffer(10);构造一个没有字符,容量为length的对象StringBuffersb3=newStringBuffer(“string”);构造一个内容与参数相同的对象v注意,下面语句不能创建StringBuffer对象:StringBufferms=myStrin

16、gbuffer;22字符串类StringBuffer方法StringtoString()将可变串变为不可变字符串intlength()得到当前StringBuffer的长度(字符数)intcapacity()得到当前StringBuffer的容量intindexOf(Stringstr)获取str在字串中的位置StringBufferappend(Stringstr)将str添加到StringBuffer中StringBufferdelete(intstart,intend)删除start和end间的字符StringBufferinsert(Stringstr,intindex)向String

17、Buffer插入字串StringBufferreplace(intstart,intend,Stringstr)用str代替start和end之间的字符voidsetCharAt(intindex,charch)设置位置index的字符为ch/这些方法一般都有重载,参数可以是单个字符(char)23字符串的赋值和加法vJava的字符串连接运算符+,例如:Stringstr=Hello,;str=str+Tom!;编译器自动将该语句解释为:Stringstr=newStringBuffer().append(Hello,).toString();str=str=newStringBuffer()

18、.append(Tom!).toString();24语言基础类库-Class类vClass类封装了对一个对象的描述。Class类的实例代表一个正在运行的Java应用程序的类或接口Class类没有公共的构造器,用户无法自己生成Class类的对象,由JVM自动构造Object是“万类之源”,Class是类的运行时表示,可以把每个Class类的对象当做众多类的代理25语言基础类库-Class类vJava运行时系统会对所有的对象进行类型识别vpublicfinalClassextendsObjectv一般方法:StringgetName()返回类名。FieldgetFields()返回类的域名。Me

19、thodgetMethods()返回类的public方法对象。PackagegetPackage()返回该类的包。26语言基础类库:Math类vMath类用来完成常用的数学运算数学常量:E,PI数学运算:(一般运算都以double进行)Math.abs(-8.09);Math.exp(5.7);Math.random();Math.sqrt(9.08);Math.pow(2,3);/乘方Math.round(99.6);均为static,使用时无需创建实例Math.method(variable);27数学运算的Math类v属性属性publicfinalstaticdoubleE;/数学常量e

20、publicfinalstaticdoublePI;/圆周率常量v方法(均为静态方法方法(均为静态方法 public static )abs(x)x的绝对值sin(a)a的正弦cos(a)a的余弦tan(a)a的正切asin(v)v的反正弦,v的范围-1.0,1.0acos(v)v的反余弦,v的范围-1.0,1.0atan(v)v的反正切,返回的范围-/2,/2atan2(x,y)x/y的反正切,返回的范围-,28数学运算的Math类exp(x)expow(y,x)yxlog(x)x的自然对数sqrt(x)x的平方根ceil(x)大于或等于x的最小整数floor(x)小于或等于x的最小整数ri

21、nt(x)x取整,不舍入round(x)对x四舍五入,即(int)floor(x+0.5)max(x,y)返回x,y的大者min(x,y)返回x,y的小者IEEEERemander(x,y)案IEEE-754标准计算余数(取模)random()返回范围在0.0r0truenextToken()逐个获取单词Company Logo43练习v使用String类的方法将两个字符串连接为一个新串,并得到新串的第一个和最后一个字符。v定义Person类,包括姓名、身高、体重属性,重写其equals()方法,用来判断两个人是否为同一个人,重写toString()方法,输出每个人的相关信息任务学习任务介绍任

22、务分析任务实现Company Logov总结总结v数据包装器类了解xxxValue(),parseXxx(),valueOf()和toString()的方法要注意哪些是静态方法,哪些会跑出数据格式异常vMah类,要了解方法名v字符串中长度和数组长度区别vString和StringBuffer区别v字符串比较v对象和内容v字符串”+”运算符v字符串和基本数据类型转换任务学习任务介绍任务分析任务实现Company Logov任务描述任务描述任务二:会使用java.util中常用的类任务学习任务介绍任务分析任务实现Company Logov支撑知识介绍支撑知识介绍Java.util包(Date)类、

23、日历(Calendar)类(Random)类数组辅助类ArraysJava中的数据结构(以后学)线性表、堆栈(Stack)、向量(Vector)、位集合(Bitset)以及哈希表(Hashtable)47实用工具类库java.utilvjava.util 包提供了一些实用的方法和数据结构包提供了一些实用的方法和数据结构提供日期(Date)类、日历(Calendar)类来产生和获取日期及时间提供随机数(Random)类产生各种类型的随机数提供了数组辅助类Arrays提供了处理数据结构的类和接口堆栈(Stack)、向量(Vector)、位集合(Bitset)以及哈希表(Hashtable)等类48

24、java.util包Random类vRandom类能产生int、long、float或double类型的随机数v构造方法Random()和Random(seed)v常用方法:nextInt()返回一个int类型的随机数nextInt(intlimit)返回一个大于等于0小于limit的int型的伪随机数nextFloat()返回一个float类型伪随机数nextBytes(bytebytes)使用伪随机值填充数组bytessetSeed(longseed)重置随机数发生器49java.util包Date类v日期类Date封装了有关日期和时间的信息,用户还可以通过调用相应的方法来获取系统时间或设

25、置日期和时间Date类定义一个精确到毫秒的瞬间时刻,是从1970年1月1日的00:00:00GMT开始计时的时刻值v构造方法publicDate()publicDate(longdate)/date以毫秒为单位,从1970.1.10:0开始v参数说明year值:需设定的年份-1900month(0-11)date(1-31)hrs(0-23)min,sec(0-59)50java.util包-Date类vDate类的常用方法booleanafter(Datewhen)测试此日期是否在指定日期之前booleanbefore(Datewhen)测试此日期是否在指定日期之后booleanequals

26、(Objectobj)比较两个日期是否是同一个日期intcompareTo(Dateanother)比较两个日期的大小,当前对象大于、等于或小于实参返回正整数、零或负整数publiclonggetTime()返回自1970年1月1日00:00:00GMT以来此Date对象表示的毫秒数。voidsetTime(longtime)设置此Date对象,以表示1970年1月1日00:00:00GMT以后time毫秒的时间点。stringtoString()将日期值转换为String:dowmonddhh:mm:sszzzyyyy形式vSimpleDateFormat类,指定日期的格式SimpleDat

27、eFormatsdf=newSimpleDateFormat(“yyyy年MM月dd日北京时间”);51示例:Date类importjava.util.Date;publicclassDateTestpublicstaticvoidmain(Stringargs)DatecurDate=newDate();System.out.println(CurrentDate=+curDate);DatenewDate=newDate(10000);System.out.println(Newdate=+newDate);System.out.println(curDate.after(newDate)

28、;System.out.println(curDate.before(newDate);System.out.println(MSsince1970-1-1:+curDate.getTime();52java.util包Calendar类vCalendar描述一个特定日期内的某一特定的时刻,Calendar是抽象类,不能创建对象vCalendar的常用方法getInstance()得到表示当前时间的实例Calendarcal=Calendar.getInstance();get(int)获取相应信息,如get(Calendar.YEAR)set(int,int)如set(Calendar.YE

29、AR,1999)set(year,month,date)set用来设置信息Calendar.getTime()得到当前时间的Date对象53java.util包-GregorianCalendarvGregorianCalendar是Calendar的子类它实现了世界上普遍使用的公历系统(阳历),它就像是一本台历,只显示一个日期,可以翻过几天、几个月或几年显示另一个日期vGregorianCalendar对象封装了时区信息及日期和时间数据v构造方法(共七个)GregorianCalendar()GregorianCalendar(intyear,intmonth,intdate)Gregori

30、anCalendar(intyear,intmonth,intdate,inthour,intminute)GregorianCalendar(intyear,intmonth,intdate,inthour,intminute,intsecond)用给定的日期和时间创建一个GregorianCalendar对象v常用方法,见API文档public boolean isLeapYear(intyear)确定给定的年份是否为闰年。54java.util包-GregorianCalendarv设置日期和时间可以用Date对象设置GregorianCalendarcalendar=newGregor

31、ianCalendar();calendar.setTime(Date);用显式的值为设置日期或时间Calendar.set(2008,9,30);Calendar.set(intfield,intvalue);/对字段进行设置v获取日期和时间信息使用get()方法并指定所需信息为实参,可获取日、月和年的信息,返回值是整数。intday=calendar.get(calendar.DAY_OF_WEEK);v修改日期和时间使用add()方法可以修改日历中的当前实例calendar.add(calendar.YEAR,14);/ 在当前的年份上加14使用roll()方法可以对一个日历的某个字段增

32、一或减一Calendar.roll(calendar.MONTH,false);/月份减155示例:Calendar,GregorianCalendarimportjava.util.*;publicclassCalendarTestpublicstaticvoidmain(Stringargs)StringarrW=日,一,二,三,四,五,六;System.out.println(当前时间:+Calendar.getInstance().getTime();Dated1=newGregorianCalendar(2005,8,1,1,1,00).getTime();Dated2=newDat

33、e();longdiff=d2.getTime()-d1.getTime();System.out.println(d1+与+d2+差距天数=+diff/(1000L*60*60*24);Calendarc=Calendar.getInstance();System.out.println(-当前时间-);System.out.println(年:月:日+c.get(Calendar.YEAR)+:+(c.get(Calendar.MONTH)+1)+:+c.get(Calendar.DATE);System.out.println(时:分:秒+c.get(Calendar.HOUR)+:+c

34、.get(Calendar.MINUTE)+:+c.get(Calendar.SECOND)+(c.get(Calendar.AM_PM)=1?PM:AM);System.out.println(星期+arrWc.get(Calendar.DAY_OF_WEEK)-1);DateFormat类类v提供了将日期/时间信息进行格式化处理的功能主要方法:publicstaticfinalDateFormatgetDateInstance()获得日期formatter,该formatter具有默认语言环境的默认格式化风格。publicstaticfinalDateFormatgetDateTimeIn

35、stance()获得日期/时间formatter,该formatter具有默认语言环境的默认格式化风格。publicfinalStringformat(Datedate)将一个Date格式化为日期/时间字符串。SimpleDateFormat类类vvoidapplyPattern(Stringpattern)将给定模式字符串应用于此日期格式。v指定日期的格式SimpleDateFormatsdf=newSimpleDateFormat(“yyyy年MM月dd日北京时间”);58练习v以下图格式输出2008年10月的日历页数组实用类:Arraysv操纵数组的实用类Arrays。它提供一系列静态方

36、法equals():比较两个数组是否相同。只有当两个数组元素数目相同,并且对应位置的元素也都相同时,才表明数组相同。fill():向数组填充数据。sort():把数组的元素按升序排列。binarySearch():按照二叉查找算法,查找数组中值与给定数据相同的元素。toString():返回包含数组中所有元素信息的字符串。集合容器v后面学后面学Company Logo任务学习任务介绍任务分析任务实现Company Logov总结总结v日期nDate类大多数方法都不赞成使用存储为long,从1970年1月1日起的毫秒数Date对象是Calendar类和Locale类之间的媒介nCalendar类

37、提供一组用于操作日期的强大方法,可以执行获取如星期几或者添加月数或者年数等到日期之类的任务。使用静态方法getInstance()方法创建Calendar实例理解Calendar方法:add,添加或减去多个日期成分使用DateFormat的静态方法getInstance()和geiDateInstance()方法创建对象DateFormat.format(日期对象)创建指定格式的日期字符串n随机数Random类区分Math.random()方法区别n数组辅助类Arrays提供很多静态方法,操作数组任务学习任务介绍任务分析任务实现Company Logov支撑知识介绍支撑知识介绍vAPIAPIv查看查看v包包类接口异常v具体内容具体内容概述继承关系修饰符构造方法属性方法Company Logo任务学习任务介绍任务分析任务实现Company Logov完成任务步骤分析完成任务步骤分析一是如何通过类定义描述一个具体的点一个类Point表示抽象的点,定义两个成员变量x,y表示点对应的具体位置二是如何计算点到原点的距离Math中已经实现了求平方根的方法sqrt()三是如何计算点与点之间的距离同上编写主类,测试调用课堂实训v课堂实践课堂实践4-4 -见文档见文档常用类解决简单问题Company Logo要求v类和对象类和对象多练习作业4-3-见文档

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号