day01面向对象阶段一继承java进阶第5天异常object类_第1页
day01面向对象阶段一继承java进阶第5天异常object类_第2页
day01面向对象阶段一继承java进阶第5天异常object类_第3页
day01面向对象阶段一继承java进阶第5天异常object类_第4页
day01面向对象阶段一继承java进阶第5天异常object类_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

5ObjectequalsObjecttoStringAPIObject这个类。ObjectAnimal类时,我们发现我们并没有写成员方法,但是能调用,这是因为它继承Object类.ObjectJava语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使Object。ObjectequalstoString方法,其他方法后面课程equals较。Object类中的equals方法的就是==比较运算符。String对象,equals方法比较一下,你看看会有什么结论?为什么?Stringequals方法,改成比较内容了equals方法根据对象的属性值进行比较。如下代码演 由于要根据指定类的属性进行比较,这时只要覆盖Objectequals方法extendsintage//复写父类的equalspublicpublicbooleanequals(Objectobj)//判断当前调用equalsif(this==obj){return}if(!(objreturn}//将obj向 为 p=returnthis.age==}}注意Objectequalspublicbooleanequals(ObjecttoStringtoString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存toStringtoString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得extendsintage 类的属性重写toString方publicStringtoString()return[age="+age+}}Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。其下有两个子类:ErrorExceptionException。捕获处理,将异常获取,使用try/catch }方法上加throws 先运行下面的程序,程序会产生一个数组索引越界异常ArrayIndexOfBoundception。classclasspublicstaticintge ement(int[]arr,intindex){intelement=arr[index];return}}classclasspublicstaticvoidmain(String[]args)int[]int[]arr=intnum=ArrayTools.ge }}2.4.1JVM抛出异常比如代码:geementmainpublicstaticvoidmain(String[]args)//int[]arr=intelement=geement(arr);}//publicstaticintgeement(int[]intnumarr[4];//这里可能出错,//return}throwthrow异常对象;throwthrownew异常类名(参数throwthrownewNullPointerException(" 的arr数组不存在thrownew classclasspublicstaticint ement(int[]arr,intindex)throw抛出异常对象后,方法已经无法继续运算。这thrownewNullPointerException("arr指向的数组不存在}if(index<0||thrownew }intelement=arr[index];returnelement;}}classclassExceptionDemo3publicstaticvoidmain(Stringargsint[]arr={34,12,67};//创建数组intnum= ement(null,2//intnum );//}}下面是异常类ArrayIndexOutOfBoundception与NullPointerException的构2.4.2异常行,让调用者去处理。 修饰符返回值类型方法名(参数)throws异常类名1,异常类名2…{ *如果定义功能时有问题发生需要报告给调用者。可以通过在方法上使用throws关键字进 publicclassTestpublicstaticvoidmain(String[]args)throwsFileNotFoundException当我们创建字符输入流对象的时 也就是调用FileReader构造方法的时候产生了常当这个构造有异常的时候,必须报告给调用者,这时我们需要在方法上使用throws明FileReaderfr=new}}}throws用于进行异常类的,若该方法可能有多种异常情况产生,那么在throws后}}}publicclassTestpublicstaticvoidmain(String[]args)throwsFileNotFoundException,IOExceptionnewFileReader("a.txt")产生了FileNotFoundExceptionFileReaderfr=newfr.read()这个功能中存在IOExceptionintc=2.4.3trytry}catch(}finallyfinally}publicclasspublicclassTestpublicstaticvoidmain(String[]args)FileReaderfr=null;try{ fr=newFileReader("a.txt");intc=fr.read();catch(IOExceptione括号中需要定义什么呢?try中抛出的是什么异常,在括号中就定 }if(fr!=null){//try//}catch(IOExceptione){}}}}}如果父类方法抛出了多个异常,子类覆盖父类方法时,只能抛出相同的异常或者是他的子集try/catchfinally代码块,其中的代码一定会被执行,通常用于资代码演示voidvoidshow不用throws}catch(Exception}}trycatchvoidvoidshow不用throws}catch(XxxException}catch(YyyException}catch(ZzzException}}常之间有子父类异常的关系,那么子类异常要求在上面的catch处理,父类异常在下面的catch处理。tryfinallycatch,所以一jvmfinally。只为关闭资源。voidvoidshow(){//需要throws}finally}}补充练[与大纲无关ifinallyi值,则最终的返回值仍为ii的值已经被修改了补充二*方法中抛出异常,不是RuntimeException* *方法中抛出的异常,都是RuntimeException*抛出的是运行时期异常,无需在方法上写*publicclassRuntimeExceptionDemopublicstaticvoidmain(String[]args){}publicstaticvoid //thrownew //throw//thrownew}}常,这些异常很可能在JDK中没有定义过,例如负数问题,考试成绩负数问题.那么能不能java通过类进行的描述。并将问题封装成对象,异常就是将问题JDKJava的这种机制,我通过阅读异常源代码:发现java中所有的异常类,都是继承Throwable,或者继承Throwable的子类。这样该异常才可以被throw抛出。publicclasspublicclassNullPointerExceptionextendsRuntimeExceptionpublicNullPointerException()}publicNullPointerException(Strings)}}}ClassClassextendsException//或继承public异常名}public异常名(Strings){}}classclassMyExceptionextends为什么要定义构造函数,因为看到Javapublic}publicMyException(Stringmessage)super(message);//如果自定义异常需要异常信息,可以通过调用父类的带有字符串}}classclassMyExceptionextends}MyException(Stringmessage)super(message);//如果自定义异常需要异常信息,可以通过调用父类的带有字符串}}定义类,包含name与age两个成员变量在类的有参数构造方法中进行范围的判断若为负数或大于150岁则抛出NoAgeException异常,异常提示信息“数值。classclassNoAgeExceptionextendsException{NoAgeException(){}NoAgeException(Stringmessage){}}类{privateStringname;privateintage;(Stringname,intage)throwsNoAgeExceptionif(age<0||{thrownew }=name;this.age=age;}对象

温馨提示

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

评论

0/150

提交评论