黑马程序元--内部类

来源:互联网 发布:花呗怎么在淘宝买东西 编辑:程序博客网 时间:2024/05/20 15:56


一、内部类
 1、内部类:
一个类存放在另一个类的里面,这个类就是内部类。内部类的类名是有所属的。
 2、内部类特点:
          a、内部类可以直接访问外部类中的成员。
            因为内部类都持有一个外部类的引用,外部类名.this
          b、外部类想要访问内部类中的成员必须要创建内部类对象。
 3、什么时候定义内部类呢?
          类是用于描述事物的,而事物中如果还有具体事物,而且这个内部类的事物在访问着所属事物中的内容。
          这时这个内部的事物,就用类来描述,这个类就是内部类。
 4、内部类的修饰符:

a、权限修饰符。

       默认或共有。

              可以直接这样访问内部类,外部类名.内部类对象.new 内部类对象。

       当内部类定义在外部类的成员位置上时,可以使用成员的修饰符。

       怎么调用内部类中的内容。

bstatic修饰符。

       内部类被静态修饰,出现访问局限性,只能访问外部类中静态成员。

       内部类被静态后,会随着外部类的加载而加载,可以直接new内部类对象。

       调用内部类中非静态成员,需要创建内部类对象。

       访问内部类中的静态成员,不需要对象。

       注意:如果内部类中定义了静态成员,该内部类必须被静态修饰。

记住:内部类只有定义在外部类的成员位置才能定义这些修饰符。

c、内部类也可以定义在外部类中的局部变量位置上。

              内部类定义在局部位置上不能访问局部中的变量。

              只能访问被final修饰的局部常量。
 5、内部类定义在局部:内部类定义在外部类的局部位置上时,只能访问被final修饰的局部常量。

6、什么是匿名内部类?

匿名内部类其实就是一个匿名子类对象。这个对象用{}结尾内部定义了成员。

也就是说是一个带有成员内容的对象。
7、匿名内部类
             a、定义匿名内部类需要前提:
                       前提:内部类需要继承或者实现一个外部的类或者接口。
             b、匿名内部类:其实就是一个子类匿名子类对象。
8、匿名内部类使用注意细节:
              a、匿名内部类想要调用多个方法时,必须得需要对象的引用。
              b、如果使用父类引用来接收子类对象,就只能使用父类中的方法。

9、为什么要定义内部类呢?

       类是用于描述事物的,而事物中如果还有具体的事物,而且这个内部类的事物在访问所属事物中的内容。这时这个内部类的事物,也需要用到类中的描述,这个类就是内部类。

代码示例:

       new Demo()  //Demo d = new Demo()

       {

              void show()

              {

                     System.out.println("show run..."+num);

              }

       }show(); //d.show;

10、什么时候使用匿名内部类?

       匿名内部类使用场景之一:

       当接口类型参数,当接口中方法不超过3个,可以用匿名内部类作为函数的参数进行传递,这样可以简化格式。

       但是接口方法多时,不要使用匿名内部类,影响阅读性。

0 0
原创粉丝点击