- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5讲 使用类和对象编程(三) 内部类 实例 程序控制结构 选择语句 目标 了解内部类的定义和使用 掌握定义简单内部类的方法 理解程序控制结构 根据程序需要设计合理的布尔表达式 运用分支语句实现选择结构的程序设计 内部类 类可以嵌套定义,即在一个类的类体中,还可以嵌套定义另外一个类。被嵌套的类称为内部类(Inner Class),它的上级称为外部类。内部类中还可以再嵌套另一个类,在最外层的类被称为顶层类(Top level class)。内部类的创建方法与外部类相似。实例代码3_7 使用内部类的原因: Inner class methods can access the data from the scope in which they are defined—including data that would otherwise be private. Inner classes can be hidden from other classes in the same package. Anonymous inner classes are handy when you want to define callbacks without writing a lot of code. 匿名内部类 有一种称为匿名内部类(anonymous inner class)的内部类,是指可以利用内部类创建不具名称的对象,并利用它访问类里的成员。匿名内部类的创建不同于普通的内部类的创建,不需要定义类名,直接用new创建对象。 public?class?TestAnonymousInterClass{ ?? ????public?static?void?main(String?args[]){ ?? ????????TestAnonymousInterClass?test=new?TestAnonymousInterClass(); ?? ????????test.show(); ?? ????} ?? ????//在这个方法中构造了一个匿名内部类 ?? ????private?void?show(){ ?? ????????Out?anonyInter=new?Out(){//?获取匿名内部类实例 ?? ???????????? ?? ????????????void?show(){//重写父类的方法 ?? ????????????????System.out.println(this?is?Anonymous?InterClass?showing.); ?? ????????????} ?? ????????}; ?? ????????anonyInter.show();//?调用其方法 ?? ????} ?? } 实例一 已知圆半径,用面向对象的编程方法,计算圆面积。 分析: 一切数据和操作被封装在对象中,可以将圆作为一个对象来处理。这里的数据就是圆的半径,操作即计算圆面积。 进一步分析: 对象是类的实例化,因此需要创建一个类,属性就是半径。计算圆面积,需要获得圆的半径,而半径应该能够变化,这些操作是类的属性行为,操作在类中以方法的形式表示,因此需要在类中建立3个方法,分别用来读取半径、修改半径和计算面积。 类和方法的设计: Circle作为类名,数据为Radius,创建的3个方法:getRadius()、setRadius()和computeArea()。 class Circle { private double radius; public Circle(double r) { radius=r; } public double getRadius() { return radius; } public void setRadius(double newRadius) { radius=newRadius;} public double computeArea() { return radius*radius*3.14159;} public class Ex3_10 { public static void main(String args[]) { Cricle myCircle=new Circle(5.0); System.out.println(“the circle radius is :” + myCircle.getRadius() + ”the circle area is :” + myCputeArea()); myCirle.setRadius(myCircle.getRadius(
文档评论(0)