Hi，你好！
下面我们一起来学习内部的类和匿名的类。简单地说呢，
内部的类呢就是在其它类当中再定义类，而匿名类呢，
是一种特殊的那个内部类，它没有名字，匿名的。
我们先看内部类。
内部的类呢，它实际上就把一个类的定义放到另一个类里头。
那编译器呢它会把这种类呢，生成什么什么然后一个呢美元符号，
再一个类名，这样的class文件。内部类在定义的时候，
这两个，就是内部的这个类和外部的这个类呢不能同名。
那内部类的使用呢，也比较简单，就是对封装它 这个类里面使用这个内部类的话，
它与普通类的使用是相同的，也就是在里头用那是相同的。
那如果在这个类的外头用呢？这个类名前面 要冠以外部类的那个名字，也就是说这个类的名字啊，
它是要冠以外部类的名字。同时呢，在new，在初始化这个对象的时候呢， 它前面需要一个对象，就是外部这个对象的一个
实例。这个对象的引用，点new， 啊，这个是一种很特殊的写法，就是这个对象点new。
因为里面这个类啊它是依附于外面这个类的，所以要外面这个对象点new来创建它。
下面我们看看这个例子。请看这个例子，在这里， 我们定义一个class，它所，这个包裹。
那在这里面呢，我们又定义了两个类，一个呢，是 contents，内容，表示包裹的内容。
另外呢一个，定义了destination，表示呢，包裹的目的地。
当然这两个类呢，它有一个自己的属性构造方法 和方法，啊，等等。那也就是里面这个类呢，就属于呢，
内部的类，就是再嵌套到这里头的。当然这个内部类我们在使用的时候呢，跟普通类呢，使用- 方式相似，
我们可以定义一个类，然后呢，定义类的变量，定义类和类的变量，啊，这个使用是差不多的。
然后其它的使用呢也是差不多的。那如果我们
在外部去用它，比如说，啊，这里呢我们就说 我们再在这个parcel类之外，啊，去用它的话，我们怎么用呢？
我们要这样用了，Parcel点Contents，因为它是，Contents属于Pa- rcel
这里面的一个内部类，所以我们在用的时候也是要用一个 这个对象，啊，外部这个对象点new，啊，
所以这是。同样地呢，我们这个目的地呢也是要用这个对象点new。
啊，也就是说，第一方面，如果是要用的话，它这个类的名字，
前面要加上一个外部类的名字，然后呢，在初始化的时候呢，
要加上这个外部这个对象实例点new，因为它是，
这个内容啊，或这个目的地啊，它是属于这个parcel的。
所以，它的基本使用呢，就是这个样子的。
那这里有一个问题就是说我们如果要 在内部的这个inner
class里面呢，要使用外部这些成员， 那是可以直接访问的。啊，也就是一般的情况呢是可以直接访问的。
也就是说因为内部的这个类呢，它本身也是这个内部类的成员。
所以即使是private的，那么它也可以访问外面的这个private的字段。
有一种特殊情形，就是说如果内部类与外部的这个类呢， 有同名的字段或方法，那这个时候怎么，
怎么来指明它是外部的同名的呢，这个字段呢？因为它名字相同了。
所以它这有一个特殊的写法，这个写法呢，也相当地特殊，啊。
就是它要用外部类的名字点this点字段，
或者方法。因为为什么要用外部类的名字点this？
我们知道平时呢我们用this点，那是指当前，啊，就是里面这个类。
用外部类呢，我们要指明它，所以它就要用外部的 类名点this点字段，我们下面看一个例子。
请看这个例子，class A里面呢，又定义了class B，然后呢在这个
class A里面，有一个int，它的一个字段，
s。然后呢我们在class B里面呢又定义了个s。
然后我们在这个方法里头， 又有个局部变量啊，当然这个是参数了，这个local
啊，local variable，局部变量。
好，在这里面，我们直接写s，那它就是指局部的这个s，局部变量这个s。
再用个this点s呢， 它就指明了是这个b，这个对象，那就是这里面这个类，
点s。然后呢，我们用A点this点s， 那么这里这个A呢就是外部
这个类名。外部类名里面的s它实际上指的意思就是外部类名的s。
所以在这里呢指的就是外面这个111，啊。所以呢，这三个写法你看，
一个是s，一个this点，然后这个一个是外部类名， 点this点，啊。这样我们就能够区分清楚了。