Java 实验(二).ppt

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java 实验(二)

Java 实验(二) 时间: 2012/3/15 内部类(inner classes) 内部类的定义 定义命名的内部类:可以在类中(甚至方法中)定义内部类,并在类的内部多次使用(创建多个对象)。 定义匿名内部类(一次性使用):可以在new关键字后定义内部类,并立即创建一个对象 内存模型 public class Outer2 { private int size; public class Inner { public void doStuff() { size++; } } } 内部类 内部类的简单模式 内部类隐藏性 私有内部类 实现外部接口的内部类 方法内部类 匿名类 内部类的使用 静态内部类 内部类的继承和重写 内部类(续) 内部类还可以定义在一个方法里,其作用域仅限于该方法的范围内(进一步隐藏),在其它方法里定义也没有名字冲突问题。 实现一个接口,但只返回一个句柄 在一编写好的代码中加一个类,但又不想公开化。 内部类(续) interface Destination { String readLabel(); } public class Parcel4 { public Destination dest(String s) { // dest方法 class PDestination implements Destination { private String label; private PDestination(String whereTo) { label = whereTo; } public String readLabel() { return label; } } return new PDestination(s); } } public class Parcel5 { void internalTracking(boolean b) { if(b) { class TrackingSlip { private String id; TrackingSlip(String s) { id = s; } String getSlip() { return id; } } TrackingSlip ts = new TrackingSlip(slip); String s = ts.getSlip(); System.out.println(s); } // Cant use it here! Out of scope: //! TrackingSlip ts = new TrackingSlip(x); } } 内部类(续) 在外部类中如同使用其他类一样使用自己的内部类。 内部类可以访问在外层类中定义的所有属性和方法。 内部类保存一个指向外部类对象的reference 创建内部类对象时必须有一个相关的外部类对象——除非是static内部类 Parcel11.java public class Parcel11 { class Contents { private int i = 11; public int value() { return i; } } class Destination { private String label; Destination(String whereTo) { label = whereTo; } String readLabel() { return label; } } public static void main(String[] args) { Parcel11 p = new Parcel11(); // Must use instance of outer class // to create an instances of the inner class: Parcel11.Contents c = p.new Contents(); Parcel11.Destination d = p.new Destination(Tanzania); } } 内部类(续) 内部类可以嵌

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档