day10JavaAPI.docx
- 文档编号:8978953
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:15
- 大小:506.67KB
day10JavaAPI.docx
《day10JavaAPI.docx》由会员分享,可在线阅读,更多相关《day10JavaAPI.docx(15页珍藏版)》请在冰点文库上搜索。
day10JavaAPI
1Object对象
面向对象的核心思想:
“找合适的对象,做适合的事情”。
合适的对象:
1.自己描述类,自己创建对象。
2.sun已经描述了好多常用的类,可以使用这些类创建对象。
API(ApplicationProgramInterface)
sun定义的那么多类的终极父类是Object。
Object描述的是所有类的通用属性与方法。
1.1toString方法
toString()返回对象的描述信息java.lang.Object@de6ced类名@哈希码值的十六进制形式。
直接输入一个对象的时候,会调用对象的toString方法。
练习:
自定义一个Person类,打印该对象的描述信息,要求描述信息为:
姓名—年龄
问题:
调用p的toString方法时,打印出来的信息是类名+内存地址值。
不符合要求。
根据我们之前学的继承,假如父类的指定的功能不能满足要求,那么子类可以复写父类的功能函数。
那么该对象再调用toString()方法时,则会调用子类复写的toString方法。
编程习惯:
开发者要对自定义的类重写toString(),对对象做详细的说明
1.2equals方法
equals()返回的是比较的结果如果相等返回true,否则false,比较的是对象的内存地址值。
问题:
比较两个人是否是同一个人,根据两个人的名字判断。
问题:
如果根据名字去作为判断两个人是否是同一个时,明显p与p1是同一个人,但是程序输入却不是同一个人。
不符合我们现实生活的要求。
解决:
根据我们学的继承中的函数复写,如果父类的函数不能满足我们目前的要求,那么就可以在子类把该功能复写,达到复合我们的要求。
编程习惯:
开发者要对自定义的类重写equals(),使得比较两个对象的时候比较对象的属性是否相等,而不是内存地址。
1.3hashCode方法
hashCode()返回该对象的哈希码值:
采用操作系统底层实现的哈希算法。
同一个对象的哈希码值是唯一的。
java规定如果两个对象equals返回true,那么这两个对象的hashCode码必须一致。
2String类
String类描述的是文本字符串序列。
留言QQ写日志。
创建String类的对象的两种方式:
1.""直接赋值法
2.new关键字法
2.1字符串对象的比较
StringStr=“jack”这个语句会先检查字符串常量池是否存放这个”jack1”这个字符串对象,如果没有存在,那么就会在字符串常量池中创建这个字符串对象,如果存在直接返回该字符串的内存地址值。
Stringstr3=newString(“jack”)该语句会创建两个对象,首先会先检查字符串常量池中存不存在jack这个字符串对象,如果不存在就会创建,如果存在就返回内存地址值。
创建了出来之后,newString这个语句就会在堆内存中开辟一个字符串对象。
总共两个对象。
2.2获取方法
intlength()获取字符串的长度
charcharAt(intindex)获取特定位置的字符(角标越界)
intindexOf(Stringstr)获取特定字符的位置(overload)
intlastIndexOf(intch)获取最后一个字符的位置
2.3判断方法
booleanendsWith(Stringstr)是否以指定字符结束
booleanisEmpty()是否长度为0如:
“”nullV1.6
booleancontains(CharSequences)是否包含指定序列应用:
搜索
booleanequals(ObjectanObject)是否相等
booleanequalsIgnoreCase(StringanotherString)忽略大小写是否相等
2.4转换方法
String(char[]value)将字符数组转换为字符串
String(char[]value,intoffset,intcount)
StaticStringvalueOf(char[]data)
staticStringvalueOf(char[]data,intoffset,intcount)
char[]toCharArray()将字符串转换为字符数组
2.5其他方法
Stringreplace(charoldChar,charnewChar)替换
String[]split(Stringregex)切割
Stringsubstring(intbeginIndex)
Stringsubstring(intbeginIndex,intendIndex)截取字串
StringtoUpperCase()转大写
StringtoLowerCase()转小写
Stringtrim()去除空格
2.6练习
1.去除字符串两边空格的函数。
publicclassDemo1{
//定义一个祛除字符串两边空格的函数
publicstaticStringtrim(Stringstr){
//0、定义求字串需要的起始索引变量
intstart=0;
intend=str.length()-1;
//1.for循环遍历字符串对象的每一个字符
for(inti=0;i { if(str.charAt(i)=='') { start++; }else{ break; } } System.out.println(start); for(;end { if(str.charAt(end)=='') { end--; }else{ break; } } System.out.println(end); //2.求子串 if(start returnstr.substring(start,(end+1)); }else{ return"_"; } 2.获取上传文件名"D: \\20120512\\day12\\Demo1.java"。 publicstaticStringgetFileName2(Stringpath){ returnpath.substring(path.lastIndexOf("\\")+1); } } 3.将字符串对象中存储的字符反序。 //将字符串对象中存储的字符反序 publicstaticStringreaverseString(Stringsrc){ //1.将字符串转换为字符数组 charchs[]=src.toCharArray(); //2.循环交换 for(intstart=0,end=chs.length-1;start { //3.数据交换 chartemp=chs[end]; chs[end]=chs[start]; chs[start]=temp; } //4.将字符数组转换为字符串 returnnewString(chs); } 4.求一个子串在整串中出现的次数 publicstaticintgetCount(Stringsrc,Stringtag){ //0.定义索引变量和统计个数的变量 intindex=0; intcount=0; //1.写循环判断 while((index=src.indexOf(tag))! =-1)//jackjava { //2.求字串 System.out.println(src); src=src.substring(index+tag.length());//index4+4=8 System.out.print(src.length()+": "+index+": "+tag.length()); //3.累加 count++; } returncount; } 3StringBuffer StringBuffer: 由于String是不可变的,所以导致String对象泛滥,在频繁改变字符串对象的应用中,需要使用可变的字符串缓冲区类。 特点: 1.默认缓冲区的容量是16。 2.StringBuffer: 线程安全的所有的缓冲区操作方法都是同步的。 效率很低。 3.1添加方法 StringBuffer("jack")在创建对象的时候赋值 append()在缓冲区的尾部添加新的文本对象 insert()在指定的下标位置添加新的文本对象 StringBuffersb=newStringBuffer("jack"); sb.append(true); sb.append('a'); sb.append(97).append(34.0).append(newchar[]{'o','o'});//链式编程 System.out.println(sb.toString());//输出缓冲区的中文本数据 sb=newStringBuffer("jack"); sb.insert(2,"java");//jajavack System.out.println(sb.toString()); 3.2查看 toString()返回这个容器的字符串 indexOf(Stringstr)返回第一次出现的指定子字符串在该字符串中的索引。 substring(intstart)从开始的位置开始截取字符串 3.3修改(U) replace(intstartintendStringstr)使用给定String中的字符替换此序列的子字符串中的字符。 该子字符串从指定的start处开始,一直到索引end-1处的字符 setCharAt(intindexcharch)指定索引位置替换一个字符 3.4删除(D) 3.5反序 reverse()把字符串反序输出。 4StringBuilder StringBuilder是JDK1.5之后提出的,线程不安全,但是效率要高。 用法与StringBuffer类似。 5System System可以获取系统的属性。 6Runtime Runtime类主要描述的是应用程序运行的环境。 7Date Date类封装的是系统的当前时间.。 但是Date已经过时了,sun推荐使用Calendar类。 Calendar: 该类是一个日历的类,封装了年月日时分秒时区。 日期格式化类: SimpleDateFormat 8Math Math: 类封装了很多数学的功能。 练习: 生成一个随机码
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- day10JavaAPI