内部类

作者: tdeblog | 来源:发表于2016-08-08 16:14 被阅读0次

    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.内部类的意义#

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

    相关文章

      网友评论

          本文标题:内部类

          本文链接:https://www.haomeiwen.com/subject/qejrsttx.html