内部类

2016-08-08  本文已影响0人  tdeblog

1.创建内部类#

直接在另一个类内部实现一个类,这个类与外部类是相互独立的,并且可以随意的调用外部类的成员方法和成员变量。

2.使用.this与.new#

    public class Inner {
        public Pacle9 outer() {
            return Pacle9.this;
            //使用this返回外部类对象
        }

        public void f(){
            System.out.println("fi");
        }
    }

    public Inner inner() {
        return new Inner();
    }
    public static void main(String args[]){
        Pacle9 p = new Pacle9();
        Pacle9.Inner i = p.inner();
        Pacle9.Inner i1 = p.new Inner();
        //使用.new关键字创建内部类对象
        i1.f();
        i.outer().f();
    }
}

3.方法和作用域内内部类#

内部类可以定义在方法和作用域内如"{}"内或者"if(exp){}"内。

4.匿名内部类#

public class Pacle10 {
    public Contents contents(final float dest, final String cont) {
        //内部类中使用常量
        //返回一个匿名内部类
        return new Contents() {
            private int cost;
            private String c = cont;
            {
                //相当于构造函数
                cost = Math.round(dest);
                if(cost > 100)
                    System.out.println("ok!");
            }
            @Override
            public int value() {
                return cost;
            }
        };
    }
    public static void main(String args[]){
        Pacle10 p = new Pacle10();
        Contents c = p.contents((float) 109.5, "hehe");
        System.out.print(c.value());
    }
}

5.嵌套类#

在内部类之前加static关键字,则为嵌套内部类,与内部类区别为使用.this不能获得外部类的引用。内部类在构建时会自动的与外部类关联,嵌套类没有这种关联机制。

6.内部类的意义#

实现了多继承。通过在一个类内部实现多个继承自不同抽象类的类,即可以实现这个类的多继承。

上一篇下一篇

猜你喜欢

热点阅读