上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 47 下一页
摘要: 一个内部类被嵌套多少层并不重要--它能透明地访问所有它能嵌入的外围类的所有成员 阅读全文
posted @ 2019-01-07 18:52 江期玉 阅读(1011) 评论(0) 推荐(0) 编辑
摘要: 正常情况下,不能在接口放置任何代码,但嵌套类可以作为接口的一部分,你放到接口中的任何类都自动地是public和static.因为类是static的,只是将嵌套置于接口的命名空间内,这并不违反接口的规则,你甚至可以在内部类中实现其外围接口 如果你需要创建某些公共代码,使得它么可以被某个接口的所有不同实 阅读全文
posted @ 2019-01-06 13:42 江期玉 阅读(514) 评论(0) 推荐(0) 编辑
摘要: 如果不需要内部类对象与其外围类对象之间有联系,那么可以将内部类声明为static,这通常称为嵌套类,想要理解static应用于内部类时的含义,就必须记住,普通的内部类对象隐式地保存了一个引用,指向它的外围类对象,然而,当内部类时static时,就不是这样了,嵌套类意味着: 1)要创建嵌套类的对象,并 阅读全文
posted @ 2019-01-06 02:13 江期玉 阅读(835) 评论(0) 推荐(0) 编辑
摘要: 用内部类实现工厂模式 :优先使用类而不是接口,如果你的设计中需要某个接口,你必须了解它,否则不到迫不得已,不要将其放到你的类中 阅读全文
posted @ 2019-01-05 15:05 江期玉 阅读(449) 评论(0) 推荐(0) 编辑
摘要: 匿名内部类: 匿名内部类与正规的继承相比有些受限,因为匿名内部类既可以扩展类,也可以实现接口,但不能两者兼备,而且如果实现接口,也只能实现一个接口 一.contents()方法将返回值的生成与表示这个返回值的类的定义结合在一起!另外,这个类是匿名的,它没有名字,更糟糕的是,看起来似乎是你要创建一个C 阅读全文
posted @ 2019-01-05 13:43 江期玉 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 通常,如果所读写 的代码包含了内部类,那么它们都是"平凡的"内部类,简单并且容易理解,然而,内部类的语法覆盖了大量其它的更加难以理解的计数,例如可以在一个方法里或者在任意的作用域里定义内部类.这么做有两个理由 1)如前所述,你实现了某类型的接口,于是可以创建并返回对其的引用 2)你要创建一个复杂的问 阅读全文
posted @ 2019-01-05 02:06 江期玉 阅读(1089) 评论(0) 推荐(0) 编辑
摘要: 当将内部类向上转型为其基类时,尤其是转型为一个接口的时候,内部类就有了用武之地,(从实现某个接口的对象,得到对接口的引用,与向上转型为这个对象的基类,实际上是一样的效果,),这是因为此内部类 某个接口的实现 能够完全不可见,并且不可用,所得到的只是指向基类或接口的引用,所以能够很方便地隐藏实现细节 阅读全文
posted @ 2019-01-04 14:05 江期玉 阅读(514) 评论(0) 推荐(0) 编辑
摘要: 如果需要生成对外部类对象的引用,可以使用外部类的名字后面紧跟圆点和this,这样产生的引用自动地具有正确的类型,这一点在编译器就被知晓并受到检查,因此并没有运行时开销 要去创建某个内部类的对象,必须字new表达式中提供其他外部类对象的引用,这就需要.new语法,必须使用外部类的对象来创建内部类 阅读全文
posted @ 2019-01-04 13:58 江期玉 阅读(2077) 评论(0) 推荐(0) 编辑
摘要: 可以将一个类定义在另一个类的内部,这就是内部类 创建内部类的方式 把类的定义置于外部类的里面 典型的情况是,外部类将有一个方法,该方法返回一个指向内部类的引用,就像在to()和contents()方法中看到的一样, 如果想从外部类的非静态方法之外的任意位置创建某个内部类的对象,那么必须像main() 阅读全文
posted @ 2019-01-04 10:49 江期玉 阅读(453) 评论(0) 推荐(0) 编辑
摘要: 接口时实现多重继承的途径,而生产遵循某个接口的对象的典型方式就是工厂方法设计模式,这与直接调用构造器不同,我们在工厂对象上调用的是某种方法,而该工厂对象将生成接口的某个实现的对象,理论上通过这种方式,我们的代码将完全与接口的实现分离,这就使得我们可以透明地将某个实现替换为另一个实现 使用工厂模式一个 阅读全文
posted @ 2019-01-03 15:08 江期玉 阅读(702) 评论(0) 推荐(0) 编辑
上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 47 下一页