• 技术文章 >Java >java教程

    java 内部类,匿名内部类

    高洛峰高洛峰2016-12-15 12:51:58原创943
    java 内部类分为4种:

    1)静态内部类:static修饰的类叫做静态类,把静态类放到一个类的内部,就叫做静态内部类

    特点:可以访问外界:静态方法/静态属性,不能访问实例资源

    案例:

    import inner.Foo.Koo;//一定要把Koo静态内部类导入进来

    public class Demo9 {

    public static void main(String[] args) {

    Koo koo = new Koo();

    koo.add();

    }

    }

    class Foo{

    int a = 12;//实例变量

    static int aa=16;

    public static void show(){ System.out.println("静态的方法");}

    //静态内部类

    static class Koo{

    public void add(){

    // System.out.println(a); 静态内部类不能访问实例资源(变量)

    System.out.println(aa);

    show();//静态内部类可以访问外界的静态属性和方法

    }

    }

    }

    2)成员内部类:在一个类的内部,直接定义了一个不用static修饰的类,当创建成员内部类对象的时候,外部类要先创建出来。

    特点:成员内部类,可以访问外界的属性和方法

    案例:

    import inner.Foo1.Koo1;

    public class Demo10 {

    public static void main(String[] args) {

    //Koo1 koo1 = new Koo1();要创建成员内部类,则必须要先创建外部类对象

    Foo1 foo1 = new Foo1();

    //记住(笔试会考)

    Koo1 koo1 = foo1.new Koo1();

    koo1.show();

    }

    }

    class Foo1{

    int a =12;

    static int aa = 16;

    class Koo1{

    void show(){

    System.out.println(a+" , "+aa);

    }

    }

    }

    3)局部内部类:使用非常的少,特点在一个方法内定义一个类(企业开发中及其少用)

    特点:局部内部类,在引用外界的变量,该变量必须要使用final修饰

    案例:

    public class Demo11 {

    public static void main(String[] args) {

    final int a = 12;

    final int b = 13;

    class Foo2{

    int c = 16;

    public int add(){

    //在局部内部类中,引用外界的变量,则变量必须用final修饰

    return a+b+c;

    }

    }

    Foo2 foo2 = new Foo2();

    System.out.println(foo2.add());

    }

    }

    4)匿名内部类:对原来的类的一个继承

    特点:跟接口/抽象类结合使用

    eg new 类名/接口名 {

    重写方法

    };

    案例:


    public class Demo1 {

    public static void main(String[] args) {

    Koo koo = new Koo(){

    // 可以重写方法

    public String toString() {

    return "生成了一个Koo的对象";

    }

    // 在匿名内部类里面不可以创建新的方法

    // public void show(){

    // System.out.println("liu");

    // }

    };

    System.out.println(koo);

    // koo.show();

    }

    }

    class Koo{

    }



    更多java 内部类,匿名内部类 相关文章请关注PHP中文网!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:匿名内部类
    上一篇:谈谈Java的匿名内部类 下一篇:java匿名内部类实例简析
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 归纳整理Java线程面试题• Java归纳整理之IO流原理及流的分类• 实例介绍Java基于quasar实现协程池• 一文带你认识Java栈和队列• 一文掌握Java8新特性Stream流的概念和使用
    1/1

    PHP中文网