《内部类与异常类》PPT课件

《内部类与异常类》PPT课件

ID:41132323

大小:249.51 KB

页数:43页

时间:2019-08-17

《内部类与异常类》PPT课件_第1页
《内部类与异常类》PPT课件_第2页
《内部类与异常类》PPT课件_第3页
《内部类与异常类》PPT课件_第4页
《内部类与异常类》PPT课件_第5页
资源描述:

《《内部类与异常类》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第5章内部类与异常类本章要点内部类匿名类异常类内部类Java支持在一个类中声明另一个类,这样的类称作内部类,而包含内部类的类成为内部类的外嵌类。某种类型的农场饲养了一种特殊种类的牛,但不希望其他农场饲养这种特殊种类的牛,那么这种类型的农场就可以将创建这种特殊种牛的类作为自己的内部类。例有一个RedCowFarm(红牛农场)类,该类中有一个名字为RedCow(红牛)的内部类。publicclassRedCowFarm{staticStringfarmName;RedCowcow;//内部类声明对象RedCowFarm(){}RedCowFarm(Strings){cow=newRed

2、Cow(150,112,5000);farmName=s;}publicvoidshowCowMess(){cow.speak();}classRedCow{//内部类的声明StringcowName="红牛";intheight,weight,price;RedCow(inth,intw,intp){height=h;weight=w;price=p;}voidspeak(){System.out.println("偶是"+cowName+",身高:"+height+"cm体重:"+weight+"kg,生活在"+farmName);}}//内部类结束}publicclassEx

3、ample{publicstaticvoidmain(Stringargs[]){RedCowFarmfarm=newRedCowFarm("红牛农场");farm.showCowMess();farm.cow.speak();//RedCowFarm.RedCowredCow=newRedCowFarm.RedCow(180,119,6000);//如果将内部类定义为static,那么就可以用外部类名直接访问内部类的构造方法。//redCow.speak();//如果将内部类定义为static,那么声明的内部类的对象也可以直接访问内部类的方法。}}内部类举例classOuter{

4、intouter_i=100;voidtest(){//外部类的某个方法Innerin=newInner();//声明内部类的对象in.display();//调用内部类中的方法}classInner{voiddisplay(){System.out.println(“display:outer_i:”+outer_i);//内部类访问外部类中的成员变量}}}classInnerClassDemo{publicstaticvoidmain(Stringargs[]){Outerout=newOuter();out.test();}}使用内部类的好处当一个类中要用到另一个类的实例对象

5、,而另一个类中的代码又要访问第一个类中的成员,将另一个类做成第一个类的内部类,程序代码要容易编写。内部类和外嵌类之间的关系外嵌类中的成员变量在内部类中有效,内部类中的方法可以调用外嵌类中的方法。外嵌类可以用内部类声明对象,作为外嵌类的成员。内部类仅供外嵌类使用,其他类不可以用某个类的内部类声明对象。内部类可以用static修饰。匿名类匿名内部类就是重写父类或接口的方法。 匿名内部类是没有名字的,所以没办法获得其类型,而只能把它当作超类或接口类型来使用。和子类有关的匿名类Java允许直接使用一个类的子类的类体创建一个子类对象。创建子类对象时,除了使用父类的构造方法外还有类体,此类体被

6、认为是一个子类去掉类声明后的类体,称作匿名类。假设Bank是类,那么下列代码就是用Bank的一个子类(匿名类)创建对象:newBank(){匿名类的类体};abstractclassOutputAlphabet{//输出字符的抽象类publicabstractvoidoutput();}publicclassOutputEnglishextendsOutputAlphabet{//继承抽象类publicvoidoutput(){//实现了抽象方法for(charc='a';c<='z';c++){System.out.printf(“%3c”,c);//输出小写英文字母}}}pub

7、licclassShowBoard{voidshowMess(OutputAlphabetshow){//上转型对象show.output();}}publicclassExample{publicstaticvoidmain(Stringargs[]){ShowBoardboard=newShowBoard();board.showMess(newOutputEnglish());//向参数传递OutputAlphabet的子类对象board.showMess(ne

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。