分类:
2008-10-28 18:27:47
提起内部类(Inner Class)可能很多人不太熟悉,实际上类似的概念在里也有,那就是嵌套类(Nested Class), 关于这两者的区别与联系,在下文中会有对比。内部类从表面上看,就是在类中又定义了一个类(下文会看到,内部类可以在很多地方定义),而实际上并没有那么 简单,乍看上去内部类似乎有些多余,它的用处对于初学者来说可能并不是那么显著,但是随着对它的深入了解,你会发现的设计者在内部类身上的确是用 心良苦。学会使用内部类,是掌握Java高级编程的一部分,它可以让你更优雅地设计你的程序结构。下面从以下几个方面来介绍:
public interface Contents { public interface Destination { public class Goods { protected class GDestination implements Destination { public Destination dest(String s) { class TestGoods { |
同时,我们也发现了在外部类作用范围之外得到内部类对象的第一个方法,那就是利用其外部类的方法创建并返回。上例中的cont()和dest()方法就是这么做的。那么还有没有别的方法呢?当然有,其语法格式如下:
outerObject=new outerClass(Constructor Parameters); outerClass.innerClass innerObject=outerObject.new InnerClass(Constructor Parameters); |
注意在创建非静态内部类对象时,一定要先创建起相应的外部类对象。至于原因,也就引出了我们下一个话题——
对刚才的例子稍作修改:
public class Goods { private valueRate=2; private class Content implements Contents { protected class GDestination implements Destination { public Destination dest(String s) { |
[1]