




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java程序设计,常用类及开源工具,学习目标,理解Object掌握System类掌握String与StringBuffer了解正则表达式掌握日期处理机制了解定时器掌握随机类Random掌握数值类了解开源代码通过JFreeChart了解如何使用图形绘制类库,1.Object,Object类是所有Java类(系统提供的,第三方类库、用户自定义的)的根类。,publicclassObjectpublicObject()publicfinalClassgetClass()publicinthashCode()publicbooleanequals(Objectobj)protectedObjectclone()throwsCloneNotSupportedExceptionpublicStringtoString()publicfinalvoidnotify()publicfinalvoidnotifyAll()publicfinalvoidwait()throwsInterruptedExceptionprotectedvoidfinalize()throwsThrowable,对象的哈希码-hashCode()每个对象都有自己的哈希码,利用这个哈希码可以表示一个对象。在Object提供的hashCode()的缺省实施通过将对象的内存地址对映于一个整数值来生成。如果两个对象是相等的,它们必须有相同的hashCode()值,toString()方法如:System.out.println(student)输出:chap5.sample.Postgraduate1172e08对象间的相等性比较-euqals()和”=”对于两个对象引用变量,equals()比较的是逻辑意义,而不是判断两个引用变量是否是一个对象。但是“=”则判断的是两端的引用变量是否是引用一个对象对于两个字符串,“=”返回true,例如“hello”=“hello”的结果是true。数值类对象和字符串对象之间的逻辑性相等判断,比较的是它们各自的状态(值),所以只要两个对象的值相同,equals()就返回true,但是只要不是引用的同一个对象,=返回false,clone()方法,如何复制对象本身最基本的作法:实现java.lang.Cloneable(Interface)/要实现CloneablepublicclassPointimplementsCloneablepublicObjectclone()throwsCloneNotSupportedException/呼叫父类别的clone()来进复制returnsuper.clone();,2.System类,System包含了一些我们常用的方法与成员变量。System不能被实例化,所有的方法都可以直接引用。在System类提供的设施中,有标准输入、标准输出和错误输出流;对外部定义的属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一部分的实用方法,2.System类(cont.),3.String与StringBuffer,字符串常量是一个用双引号(“”)括起来的字符序列编译器会为每一个字符串常量创建对象。另外,字符串常量中可以包含一些不能从键盘上输入的字符,这涉及到字符转义。例如:Thisisau03c0实际上就是Thisisa另外,还需要提醒注意的是:字符串中的所有字符都是Unicode字符,所以每个字符均占两个字节。,字符串常量和字符串对象是两个不同的概念,字符串常量有在内存当中由编译器分配的固定区域,保存有字符序列。而字符串对象只是一个引用,所以不能通过字符串对象对常量进行修改,例如:Stringstr=Thisisastringliteral;str=Thisisotherstringliteral;另一个例子:Stringstr1=Thisisastringliteral;Stringstr2=Thisis+astringliteral;实际上str1和str2指向了同一引用,字符串运算字符串连接、比较、分割、子串的查询等连接(+)值比较(equals(),compareTo()对象比较=提取、检索、分割字符串charAt()、substring()indexOf();split()构造格式化字符串publicstaticStringformat(Stringformat,Object.args),StringBuffer,因为String对象是不能修改的,Java语言提供了另外一个能够修改的类似字符串的字符串缓冲区类,就是StringBuffer。对于StringBuffer对象可以进行添加、删除、替换等操作。,创建StringBuffersbf=newStringBuffer();创建一个不带字符的缓冲区,默认容量为16个字符,随着操作容量将发生变化。StringBuffersbf=newStringBuffer(初始化字符串);按照给定内容创建一个缓冲区,初始容量为16+字符长度。StringBuffersbf=newStringBuffer(256);创建一个具有初始容量的缓冲区。,追加字符串append(.)方法是一个适应于基本类型和引用类型的方法。例如:sbf.append(10);sbf.append(additionalstring);删除操作StringBufferdelete(int,int)StringBufferdeleteCharAt(int)增加操作StringBufferinsert(int,boolean|Object|)替换操作StringBufferreplace(int,int,String)voidsetCharAt(int,char),从StringBuffer到String基于一个StringBuffer对象的内容创建字符串可以:Stringstr=newString(sbf);Stringstr=sbf.toString();,4、正则表达式,一个例子+|-?(d+(.d*)?)|(.d+)a+123.56,b.4,c-123+123.56.4-123,java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库。它包括两个类:Pattern:是一个正则表达式经编译后的表现模式。Matcher:是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查。,publicclassRegxDemopublicstaticvoidmain(Stringargs)/定义正则表达式,以便匹配目标字符串Stringregx=+|-?(d+(.d*)?)|(.d+);/定义需要匹配的字符串Stringinput=a+123.56,b.4,c-123;Matchermatcher=null;/基于定义的正则表达式,创建一个模式对象Patternpattern=Ppile(regx);/从模式创建匹配器matcher=pattern.matcher(input);/循环获得所有的匹配子串while(matcher.find()/输出每一个匹配成功的子串序列System.out.println(matcher.group();,正则表达式是有普通字符,包括大小写字母和数字以及一些具有特殊含义的符号组成的字符序列。简单的如str、str*,复杂的如下面的例子:+|-?(d+(.d*)?)|(.d+)这里面就包括了各种预先定义好的字符在起作用。(字符类、正则表达式内的逻辑操作符、预定义字符类、量词、边界),字符类(CharacterClasses),正则表达式内的逻辑操作符,publicclassMyTaskextendsTimerTaskintnumber=10;/控制任务执行次数publicvoidrun()if(number0)System.out.println(Hi,ihasbeenstarted);number-;elseSystem.out.println(taskcompleted);System.exit(0);,创建定时任务,importjava.util.Timer;publicclassTimerDemopublicstaticvoidmain(Stringargs)Timertimer=newTimer();timer.schedule(newMyTask(),1000,2*1000);,7Random,classRandNumberpublicstaticvoidmain(Stringargs)for(inti=0;i10;i+)System.out.print(+(int)(Math.random()*100);,8数值和字符串,Number类转换数值到字符串转换字符串到数值格式化数值,Number类及其数值的包装类,大多数情况,我们使用基本类型定义和使用变量:inta=10;当你需要一个数值类(包装类)对象(提供一个整数列表、网络传输等)时,当你需要某种数值类的普遍方法或值时,如Float.NEGATIVE_INFINITY,数值包装类的构造函数,Integer(intvalue)构造一个新分配的Integer对象,它表示指定的int值。Integer(Strings)构造一个新分配的Integer对象,它表示String参数所指示的int值。,自动包装/拆箱,Integera5;inti=a;,转换数值到字符串,staticStringtoBinaryString(inti)以二进制(基数2)无符号整数形式返回一个整数参数的字符串表示形式。staticStringtoHexString(inti)以十六进制的无符号整数形式返回一个整数参数的字符串表示形式。staticStringtoOctalString(inti)以八进制(基数8)无符号整数形式返回一个整数参数的字符串表示形式。StringtoString()返回一个表示该Integer值的String对象。staticStringtoString(inti)返回一个表示指定整数的String对象。staticStringtoString(inti,intradix)用第二个参数指定的基数返回第一个参数的字符串表示形式,转换字符串到数值,staticIntegervalueOf(Strings)返回保持指定的String的值的Integer对象。staticintparseInt(Strings)将字符串参数作为有符号的十进制整数进行分析,格式化数值,NumberFormat是所有数字格式的抽象基类。此类提供了格式化和分析数字的接口。为了格式化当前语言环境的数字,要使用一个工厂类方法:NumberFormatnf=NumberFormat.getInstance();要格式化不同语言环境的日期NumberFormatnf=NumberFormat.getInstance(Locale.FRENCH);,格式化数值(cont.),parseObject(Stringsource,ParsePositionpos)分析字符串中的文本,以生成一个Number。voidsetCurrency(Currencycurrency)获取格式化货币值时此数字格式使用的货币。voidsetMaximumFractionDigits(intnewValue)设置数的小数部分的最大位数。voidsetMaximumIntegerDigits(intnewValue)设置数的整数部分允许的最大位数。voidsetMinimumFractionDigits(intnewValue)设置数的小数部分允许的最小位数。voidsetMinimumIntegerDigits(intnewValue)设置数的整数部分允许的最小位数。voidsetParseIntegerOnly(booleanvalue)设置数是否应该仅作为整数来分析。,格式化示例,下面的语句创建一个模式“000.00”的DecimalFormat实例NumberFormatnf=NumberFormat.getInstance();DecimalFormatdf(DecimalFormat)nf;如:df.applyPattern(“000.00”);df.format(30.8989)返回030.90再如:df.applyPattern(00.00%);df.format(0.308989)返回30.90%,Java程序设计,基于开源工具包开发应用程序,如何在程序中引用工具包,开发独立的应用程序在CLASSPATH环境变量中,指定JAR文件的位置如:CLASSPATHCLASSPATH;d:/javalib/jexcelapi/jxl.jar开发运行在特定容器(Web服务器等)中的程序将jar文件放置在特定目录下在程序中,用import语句引用其中的类,示例,创建统计图,1、放置指定的jar文件到合适位置2、修改classpath环境变量3、开始编程,注意查看对应的示例代码和参考文档,示例代码,/创建饼型统计图publicclassChartDemoprivateDefaultPieDatasetinitPieDataSet()DefaultPieDatasetdataset=newDefaultPieDataset();dataset.setValue(60,5);dataset.setValue(60-69,10);dataset.setValue(70-79,15);dataset.setValue(80-89,10);dataset.setValue(90-100,5);returndataset;,示例代码(cont.),publicvoidcreatePieChart()DefaultPieDatasetdata=initPieDataSet();JFreeChartchart=ChartFactory.createPieChart3D(学生成绩统计图,data,true,false,false);/确定将要输出的图形文件Filefile=newFile(d:/pie.jpg);tryChartUtilities.saveChartAsJPEG(file,chart,400,300);catch(IOExceptione)e.printStackTrace();,示例代码(cont.),/需要加载的类importorg.jfree.data.general.DefaultPieDataset;importorg.jfree.data.category.CategoryDataset;importorg.jfree.data.category.DefaultCategoryDataset;importorg.jfree.chart.ChartUtilities;importorg.jfree.chart.JFreeChart;importorg.jfree.chart.ChartFactory;importorg.jfree.chart.plot.PlotOrientation;importjava.io.File;importjava.io.IOException;,Excel处理,加载所需的类importjava.io.File;importjxl.write.WritableCellFormat;importjxl.write.WritableFont;importjxl.write.WritableWorkbook;importjxl.Workbook;importjxl.format.Alignment;,Excel处理(cont.),创建Sheet,并初始化WritableWorkbookworkbook=null;jxl.write.WritableSheetws=null;workbook=Workbook.createWorkbook(newFile(d:/exceldemo.xls);ws=workbook.createSheet(学生成绩表,0);ws.setRowView(0,400);/设置行高ws.setColumnView(0,40);/设置列宽ws.setColumnView(1,40);ws.setColumnView(2,40);ws.setColumnView(3,40);,Excel处理(cont.),创建表头WritableFontwf=newWritableFont(WritableFont.TIMES,14,WritableFont.BOLD,true);WritableCellFormatcf=newWritableCellFormat(wf);cf.setAlignment(Alignment.CENTRE);label=newjxl.write.Label(0,0,20072008学年第一学期Java成绩表,cf);ws.addCell(label);ws.mergeCells(0,0,3,0);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年济宁市兖州区事业单位公开招聘工作人员(教育类)(9人)模拟试卷附答案详解
- 2025安徽蚌埠市龙子湖区产业发展有限公司招聘22人考前自测高频考点模拟试题及答案详解(历年真题)
- 2025年合肥工业大学土木与水利工程学院人事派遣岗位招聘1人考前自测高频考点模拟试题及答案详解(网校专用)
- 2025年洛阳博物馆人才引进高层次人才2名考前自测高频考点模拟试题及答案详解(全优)
- 2025江苏常州经济开发区招聘村人员12人模拟试卷及参考答案详解
- 2025年温州永嘉县金溪镇中心卫生院招聘季节工4人模拟试卷及答案详解(夺冠)
- 2025广东佛山市禅城区国有资产监督管理局下属企业招聘工作人员2人考前自测高频考点模拟试题附答案详解(考试直接用)
- 2025安徽宣城市广德市国有资产投资经营有限公司下属公司招聘11人考前自测高频考点模拟试题及答案详解(全优)
- 2025安徽芜湖鸠江区招聘区属国有企业领导人员拟聘用人员(二)考前自测高频考点模拟试题及完整答案详解一套
- 2025年福建省南平市建阳区新华书店招聘3人模拟试卷及1套参考答案详解
- 2025年学校少先队知识应知应会题库(含答案)
- (2025)企业首席质量官培训考核试题(附含答案)
- DB31∕T 1545-2025 卫生健康数据分类分级要求
- 起重机指挥Q1练习测试题附答案
- 《网络与新媒体概论》教学课件合集
- 2023类器官技术与行业研究报告-复刻结构重现功能 构建组织器官替身
- 国有资产交易法律实务与疑难问题
- 中华人民共和国基本医疗卫生与健康促进法课件
- 初中毕业证在哪里查询
- 九宫格智力数独200题(题答案)版
- GB/T 5796.4-2022梯形螺纹第4部分:公差
评论
0/150
提交评论