




已阅读5页,还剩63页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,第4章 常用类,2,本章导读,基本数据类型的封装类 object类 string类 stringbuffer类 stringtokenizer类 math类和biginteger类 date类和calendar类 linkedlist和hashset泛型类,3,本章导读,基本数据类型的封装类 object类 string类 stringbuffer类 stringtokenizer类 math类和biginteger类 date类和calendar类 linkedlist和hashset泛型类,4,基本数据类型的封装类,整数类型的封装类,5,基本数据类型的封装类,浮点类型的封装类,6,基本数据类型的封装类,字符类型的封装类,布尔类型的封装类,7,integer类,max_value和min_value integer类的类成员变量,表示int数据的最大值和最小值 在长度为100的整数数组array中找出最大值 int max=integer.min_value; for(int i=0;i100;i+) if(maxarrayi) max=arrayi;,8,integer类,构造方法 public integer(int value) 用一个int类型的量生成一个integer对象 public integer(string s) 用一个字符串生成一个integer对象,9,integer类,非静态转换方法 public int intvalue() 将integer对象转换成int类型的值 integer i=new integer(“05”); int value=value(); public string tostring() 将integer对象转换成一个字符串 integer i=new integer(5); string s=i.tostring();,10,integer类,静态转换方法 public static int parseint(string s) 把字符串转换成int类型的值 int i=integer.parseint(“-05”); public static integer valueof(string s) 把字符串转换成integer对象 integer i=integer.valueof(“2007”); int value=value();,11,基本数据类型的封装类举例,其他基本数据类型的封装类的使用方法与integer类似。 课本p99,程序4-1 testcapsulation.java,12,character类,构造方法 public character(char c) 用一个char类型的量生成一个character对象 character类中的常用类方法 public static boolean isdigit(char ch) 如果ch是数字字符,返回true,否则返回false public static boolean isletter(char ch) 如果ch是字母,返回true,否则返回false public static boolean isletterordigit(char ch) 如果ch是数字字符或字母,返回true,否则返回false,13,character类,character类中的常用类方法 public static boolean islowercase(char ch) 如果ch是小写字母,返回true,否则返回false public static boolean isuppercase(char ch) 如果ch是大写字母,返回true,否则返回false public static char tolowercase(char ch) 返回ch的小写形式 public static char touppercase(char ch) 返回ch的大写形式 public static boolean isspacechar(char ch) 如果ch是空格,返回true,否则返回false,14,public class example public static void main(string args ) char a =a,b,c,d,e,f; for(int i=0;ia.length;i+) if(character.islowercase(ai) ai=character.touppercase(ai); else if(character.isuppercase(ai) ai=character.tolowercase(ai); for(int i=0;ia.length;i+) system.out.printf(“%6c“,ai); ,15,本章导读,基本数据类型的封装类 object类 string类 stringbuffer类 stringtokenizer类 math类和biginteger类 date类和calendar类 linkedlist和hashset泛型类,16,object类,主要方法 protected object clone() 生成当前对象的一个备份,并返回这个复制对象的object引用 public boolean equals(object obj) 比较当前对象和另外一个object对象是否相等,如果相等则返回true,否则返回false,17,object类,主要方法 public string tostring() 返回对象有关内存的信息 public final class getclass() 获得当前所属类的信息,返回一个class类的对象,18,object类常用方法举例,public boolean equals(object obj) 课本p100,程序4-2,testequals.java public string tostring() 课本p101,程序4-3,testtostring.java public final class getclass() 课本p103,程序4-5,testgetclass.java,19,object类常用方法举例,protected object clone() 浅复制 课本p103,程序4-6,testclone.java 深复制 课本p104,程序4-7,testclone2.java,20,本章导读,基本数据类型的封装类 object类 string类 stringbuffer类 stringtokenizer类 math类和biginteger类 date类和calendar类 linkedlist和hashset泛型类,21,string类,构造方法 string(string original) string s=new string(“we are students.”); string tom=new string(s); string(char value) char a =b,o,y; string s=new string(a); string(char value,int offset,int count) 利用字符数组value的一部分构造字符串对象,从offset开始共计count个字符 char a=a,b,c,d,e; string s=new string(a,3,4);,不能更改字符串的内容,22,字符串常量,字符串常量是对象,可以把它的引用赋值给字符串变量 string s1,s2; s1=“how are you!”; s2=“how are you!”; s1和s2具有相同的引用,0xab28,0xab28,how are you!,s1,s2,23,string类的常用方法,(1)public int length() 返回当前字符串的长度 例如: string s=“we are students”; string tom=new string(“我是学生”); int n1=s.length(); int n2=tom.length(); int n3=“learning java”.length();,24,string类的常用方法,(2)public boolean equals(string s) 比较两个字符串的内容是否完全相同 例如: string tom=“we are students.”; string boy=new string(“we are students.”); string jerry=new string(“we are students.”); tom.equals(boy)的值是false tom.equals(jerry)的值是true,25,string类的常用方法,(3)public boolean contains(string s) 比较当前字符串是否包含字符串s 例如: string tom=“we are students.”; tom.contains(“stu”)的值是true tom.contains(“we”)的值是false,26,string类的常用方法,(4)public int compareto(string s) 将当前字符串按字典序与字符串s比较大小 如果当前字符串与s相同,返回0;如果当前字符串大于s,返回正值;否则返回负值 例如: string str=“abcde”; pareto(“boy”)小于0 pareto(“aba”)大于0 pareto(“abcde”)等于0,27,string类的常用方法,(5)public string concat(string s) 与字符串连接符“+”是等价的 例如: string s1=“we”.concat(“are students.”); 等价于 string s1=“we ”+“are students.”;,28,string类的常用方法,(6)public string substring(int start, int end) 得到当前字符串的子串,这个子串从当前字符串的start开始,截取到end(不包括end)之间的字符序列 例如: string tom=“i like tom.”; string s=tom.substring(2,5); s为“lik” “to java world”.substring(3,7); 返回结果为“java”,29,string类的常用方法,(7)public int indexof(string s) 从当前字符串的头开始检索字符串s,并返回首次出现s的位置,如果没有检索到s,则返回-1 例如: string tom=“it is a good cat.”; tom.indexof(“a”); 值为6 tom.indexof(“good”); 值为8 tom.indexof(“good”); 值为-1,30,string类的常用方法,(8)public string split(string regex) 以regex为分隔符把当前字符串分割成若干个子字符串,以字符串数组的形式返回 例如: string tom=“it is a good cat.”; string a=tom.split(“ “); for(int i=0;ia.length;i+) system.out.println(ai);,31,string类的常用方法,(9)public char tochararray() 将当前字符串中的所有字符按顺序存放在一个字符数组中 例如: scanner reader=new scanner(system.in); string s=reader.nextline(); char a =s.tochararray();,32,本章导读,基本数据类型的封装类 object类 string类 stringbuffer类 stringtokenizer类 math类和biginteger类 date类和calendar类 linkedlist和hashset泛型类,33,stringbuffer类,构造方法 stringbuffer() 创建的stringbuffer对象的初始容量可以容纳16个字符,当对象的实体存放的字符序列的长度大于16时,实体的容量自动增加 stringbuffer(int size) 创建的stringbuffer对象的初始容量为size指定的字符个数,当对象的实体存放的字符序列的长度大于size时,实体的容量自动增加 stringbuffer(string s) 创建的stringbuffer对象的初始容量为字符串s的长度+16个字符,可以更改字符串的内容,34,stringbuffer类的常用方法,(1)public char charat(int n) 返回当前字符串中位置n上的字符 (2)public void setcharat(int n,char ch) 将当前字符串中位置n上的字符替换为字符ch (3)public stringbuffer insert(int offset, string str) 把字符串str插入到当前字符串的位置offset处 (4)public stringbuffer delete(int start, int end) 将当前字符串中位置start至end-1之间的字符删除,35,stringbuffer类的常用方法,(5)public stringbuffer reverse() 将当前字符串中的字符倒序存放 (6)public stringbuffer replace(int start, int end, string str) 将当前字符串中位置start至end-1之间的字符替换为字str指定的字符串,36,stringbuffer str=new stringbuffer(“0123”); system.out.println(str.charat(0); str.setcharat(0,a); system.out.println(str); str.insert(1,”*”); system.out.println(str); str.delete(4,5); system.out.println(str); system.out.println(str.reverse(); system.out.println(str.replace(2,4,“66“);,37,本章导读,基本数据类型的封装类 object类 string类 stringbuffer类 stringtokenizer类 math类和biginteger类 date类和calendar类 linkedlist和hashset泛型类,38,stringtokenizer类,构造方法 stringtokenizer(string s) 为字符串s构造一个分析器,使用默认的分隔标记,即空格符(若干个空格被看成一个空格)、换行符、回车符、tab符等 stringtokenizer(string s,string delim) 为字符串s构造一个分析器,参数delim中的字符的任意排列组合都是分隔标记,将字符串分解成可被独立 使用的单词,39,stringtokenizer类,stringtokenizer对象称为字符串分析器 nexttoken()方法可以逐个获取字符串分析器中的语言符号(单词) 每获取到一个语言符号,字符串分析器中负责计数的变量的值就自动减一,计数变量的初始值等于字符串中的单词数目(调用counttokens()方法可以得到单词数目) 只要计数变量的值大于0,hasmoretoken()方法返回true,否则返回false,40,import java.util.*; public class example public static void main(string args ) string s=“we are stud,ents“; stringtokenizer fenxi=new stringtokenizer(s,“ ,“); int number=fenxi.counttokens(); while(fenxi.hasmoretokens() string str=fenxi.nexttoken(); system.out.println(str); system.out.println(“还剩“+fenxi.counttokens()+“个单词“); system.out.println(“s共有单词:“+number+“个“); ,41,本章导读,基本数据类型的封装类 object类 string类 stringbuffer类 stringtokenizer类 math类和biginteger类 date类和calendar类 linkedlist和hashset泛型类,42,math类,math类包含两个静态常量 e:自然对数的底 pi:圆周率 math包含很多用于数值计算的方法,这些方法都是静态方法 参考课本p116,43,numberformat类,有时需要对输出的数字结果进行必要的格式 化,可以使用java.text包中的 numberformat 类,该类调用方法 public static final numberformat getinstance() 实例化一个numberformat对象,该对象调 用方法 public final string format(double number) 可以格式化数字number,44,numberformat类常用方法,public void setmaximumfractiondigits(int n) 设置最大小数位数为n public void setminimumfractiondigits(int n) 设置最小小数位数为n public void setmaximumintegerdigits(int n) 设置最大整数位数为n public void setminimumintegerdigits(int n) 设置最小整数位数为n,math类与numberformat类练习:lianxi1.java,45,biginteger类,程序有时需要处理大整数,java.math包中的biginteger类提供任意精度的整数运算 biginteger类的构造方法 public biginteger(string val) 注意,字符串val中不能含有非数字字母,46,biginteger类常用方法,public biginteger add(biginteger val) 返回当前biginteger对象与val之和 public biginteger subtract(biginteger val) 返回当前biginteger对象与val之差 public biginteger multiply(biginteger val) 返回当前biginteger对象与val之积 public biginteger divide(biginteger val) 返回当前biginteger对象与val之商,47,biginteger类常用方法,public biginteger remainder(biginteger val) 返回当前biginteger对象与val的余数 public biginteger abs() 返回当前biginteger对象的绝对值 public biginteger pow(int n) 返回当前biginteger对象的n次幂,48,biginteger类常用方法,public int compareto(biginteger val) 返回当前biginteger对象与val的比较结果,当前对象大于val时,返回1;小于val时,返回-1;相等时,返回0 public string tostring() 返回当前biginteger对象的字符串表示 public string tostring(int p) 返回当前biginteger对象的p进制字符串表示,biginteger练习:lianxi2.java,49,本章导读,基本数据类型的封装类 object类 string类 stringbuffer类 stringtokenizer类 math类和biginteger类 date类和calendar类 linkedlist和hashset泛型类,date类,date类包含在java.util中,常用的构造方法有 public date() 创建的对象可以获取本地当前时间 public date(long time) 创建的对象表示相对于1970年1月1日0点(gmt)的时间 date对象表示时间的默认顺序是:星期、月、日、小时、分、秒、年 sat apr 28 21:36:38 cst 2001,simpledateformat类,可以使用java.text包中的 simpledateformat 类实现日期的格式化,该类的构造方法是 public simpledateformat(string pattern) 该类创建的对象调用 public string format(date date) 可以将date制定的日期对象按照pattern设定的 格式输出,常用的时间元字符,simpledateformat类的构造函数中参数pattern应当含有“时间元字符”,例如“yyyy-mm-dd” 常用的时间元字符 yy2位数字年份,如98 yyyy4位数字年份,如2011 m, mm2位数字月份,如06 mmm汉字月份,如八月 d, dd2位数字日期,如08, 22 a上午或下午,53,常用的时间元字符,常用的时间元字符 h, hh2位数字小时(0023 ) h, hh2位数字小时(am/pm, 0112 ) m, mm2位数字分 s, ss2位数字秒 e, ee星期 pattern中的普通字符(非时间元字符),如果是ascii字符,必须要用一对单引号括起来,date类与simpledateformat类练习:lianxi3.java,calendar类,calendar类在java.util包中,该类的静态方法getinstance()可以初始化一个日历对象 calendar calendar=calendar.getinstance(); calendar类对象可以调用方法 public final void set(int year,int month,int date) public final void set(int year,int month,int date,int hour,int minute) public final void set(int year,int month,int date,int hour,int minute,int second) 将日历翻到任何一个时间,当year取负数时表示 公元前,55,calendar类,calendar类对象可以调用方法 public int get(int field) 获取有关年份、月份、小时、星期等信息,参数 field的有效值有calendar的静态常量指定 calendar对象调用 public long gettimeinmillis() 可以将时间表示为毫秒,calendar类练习:lianxi4.java,56,本章导读,基本数据类型的封装类 object类 string类 stringbuffer类 stringtokenizer类 math类和biginteger类 date类和calendar类 linkedlist和hashset泛型类,57,linkedlist泛型类,使用java.util包中的linkedlist泛型类可以创建双链表结构的数据对象,习惯上称这种数据对象为链表对象 链表中的每个节点含有一个数据以及上一个节点的引用和下一个节点的引用 链表适合动态改变其存储的数据,如增加、删除节点,linkedlist对象,假设泛型列表中的泛型e是string类,可以创建如下对象 linkedlist mylist=new linkedlist(); 以上创建的双链表对象mylist是一个空双链表,mylist可以调用add(string obj)方法向链表一次增加节点,例如 mylist.add(“how”); mylist.add(“are”); mylist.add(“you”); 由此,双链表mylist就有了3个节点,它们自动连接在一起,linkedlist泛型类的常用方法,public boolean add(e e) 向链表末尾添加新的节点,该节点中的数据是参数e指定的对象 public void add(int index,e e) 向链表中的index位置添加一个新的节点 public void addfirst(e e) 向链表的头添加新节点 public void addlast(e e) 向链表的末尾添加新节点 public void clear() 删除链表的所有节点,使其成为空链表,60,linkedlist泛型类的常用方法,public e remove(int index) 删除index位置上的节点 public boolean remove(e e) 删除首次出现还有数据e的节点 public e removefirst() 删除第一个节点,并返回这个节点中的对象 public e removelast() 删除最后一个节点,并返回这个节点中的对象,61,linkedlist泛型类的常用方法,public e get(int index) 得到链表中第index个节点中的对象 public e getfirst() 得到链表中第一个节点中的对象 public e getlast() 得到链表中最后一个节点中的对象 public e set(int index,e e) 将链表中第index个节点中的对象替换为参数e指定的对象,并返回被替换的对象 public int size() 返回链表的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 海南省陵水黎族自治县2025年上半年公开招聘城市协管员试题含答案分析
- 2025年二手房交易佣金支付标准协议
- 2025年度高科技企业采购法务与合同管理综合服务合同
- 2025房地产无底薪业务员营销服务及佣金分配合同
- 2025年度大型活动专用场馆租赁服务合同
- 2025年医疗设备采购与售后服务合同
- 2025版商铺租赁委托与市场拓展合作合同
- 2025年出租车行业新能源技术研发合作协议
- 2025版建筑废弃物填土处理工程合同
- 2025年度图书出版翻译与校对服务合同
- 2024年新农村雨污分流建设合同
- 副立井罐笼更换提升机钢丝绳专项安全风险辨识评估标准
- 数据安全管理员职业技能竞赛考试题库(含答案)
- 院科两级对核心制度执行率的持续改进案例-儿科I病区运用PDCA循环持续改进三级医师查房制度
- 新概念一册Lesson1-12-测试题(附答案)
- DB64-T 1972-2024 风积沙路基填筑(干压法)施工技术规范
- 质量信得过班组申报材料
- TSG+23-2021气瓶安全技术规程
- 酒店代运营合同范本
- 基于SCALANCE W774W734无线通信网络构建与运行(无线通信模块) (1)讲解
- 家庭医生签约服务培训
评论
0/150
提交评论