《(31)--9.1内部类面向对象程序设计.ppt》由会员分享,可在线阅读,更多相关《(31)--9.1内部类面向对象程序设计.ppt(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第九章 内部类、匿名类与异常类内部类匿名类异常类 目录9.19.1内部类9.29.2匿名类9.39.3异常类9.1 内部类通过前面章节的学习,我们已经知道 类可以有两种重要的成员类可以有两种重要的成员:成员变量成员变量和方法方法。实际上Java还允许类可以有一种成员:内部类内部类。Java支持在一个类中声明另一个类,这样的类称作内内部部类类,而包含内部类的类称为内内部部类类的的外嵌类外嵌类。9.1 内部类内部类内部类和外嵌类外嵌类之间的重要关系如下:内部类的外外嵌嵌类类的成成员员变变量量在内部类中仍然有效,内部类中的方法内部类中的方法也可以调用外嵌类中的方法调用外嵌类中的方法。内部类的类体中不
2、可以声明类类变变量量和和类类方方法法。外嵌类的类体中可以用内部类声明对象,作为外嵌类的成员。内部类仅供它的外嵌类使用,其他类不可以用某个类的内部类声明对象。9.1 内部类例例1:某农场饲养了一种特殊种类的牛,但不希望其他农场饲养这种特殊种类的牛,那么该农场就可以将创建这种特殊种类牛的类作为自己的内部类。编编码码思思路路:本例中有一个RedCowForm(红红牛牛农农场场)类,该类中有一个名字为RedCow(红牛)红牛)的内部类。本例主类为:Example9_1 点击超链接查看源代码,下面是本例的运行效果:9.1 内部类运行本例后不难发现,Java编译器生成的内部类的字节码文件的名字和通常的类不
3、同。内部类的字节码文件的名字为:外嵌类名外嵌类名$内部类名内部类名本例中内部类的字节码文件名为:RedCowFarm$RedCow.class9.1 内部类通过上例我们已经了解到:类中除了有成员变量和方法这两种重要的成员外,还可以有第三中成员:内部类内部类。我们也已学习过,类中的成员变量和方法都可以分修饰为static的,即类(静态)变量和类(静态)方法。那么,内内部部类类作为类中的第三种成员,也可以被修饰为staticstatic(静态)的。类实际上就是一种数据类型,那么static内部类就是外嵌类中的一种静态数据类型,这样,我们就可以在其他类中使用static内部类来声明数据,即创建对象了。9.1 内部类如我们在例9.1中将内部类更改成static的,就可以在主方法中使用下面的代码:RedCowFarm.RedCow redcow=new RedCowFarm.RedCow(180,119,6000);/创建内部类RedCow的对象redcowredcow.speak();/redcow对象调用内部类的speak()方法注注意意:static内部类不不能能操操作作外嵌类中的实实例例成成员员变变量量,只能操作类类变变量量。而本题中外嵌类的成员变量farmName是static的,所以可以操作。非内部类不可以是非内部类不可以是static类!类!