黑马程序员技术交流社区

标题: 黑马程序员_内部类以及匿名内部类的使用 [打印本页]

作者: b277967086    时间: 2015-4-20 23:17
标题: 黑马程序员_内部类以及匿名内部类的使用
内部类
    (1)把类定义在另一个类的内部,该类就被称为内部类。
   
    (2)内部类的访问规则
        A:可以直接访问外部类的成员,包括私有
        B:外部类要想访问内部类成员,必须创建对象
    (3)内部类的分类
        A:成员内部类
        B:局部内部类


        成员内部类不是静态的:
            外部类名.内部类名 对象名 = new 外部类名.new 内部类名();
        成员内部类是静态的:
            外部类名.内部类名 对象名 = new 外部类名.内部类名();

@System.out.println(Outer.this.num);
此处的调用语句在成员内部类中,作用是调用外部类的成员变量值


匿名内部类:

@不用通过将new出来的对象赋值给某个对象,这样的特点就是能够调用完就回收

    例如就是在输出语句中直接输出

      System.out.println(new student(){
       重写方法语句(此处应该重写toString()方法);   
        });


匿名内部类在开发中的使用
        我们在开发的时候,会看到抽象类,或者接口作为参数。
        而这个时候,我们知道实际需要的是一个子类对象。
        如果该方法仅仅调用一次,我们就可以使用匿名内部类的格式简化。
        
        interface Person {
            public abstract void study();
        }
        
        class PersonDemo {
            public void method(Person p) {
                p.study();
            }
        }
        
        class PersonTest {
            public static void main(String[] args) {
                PersonDemo pd = new PersonDemo();
                pd.method(new Person() {
                    public void study() {
                        System.out.println("好好学习");
                    }
                });
            }
        }


@day10第26个视频的匿名方法使用很经典

@链式编程
    类名.方法名1().方法名2().方法名3();
    可以看出 类名.方法名1()的返回值是个对象才能调用方法2(对象还要与方法2处在一个类或者父类中)
作者: b277967086    时间: 2015-4-20 23:22
不错不错不错不错不错




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2