一、基础篇--1.1内部类

 内部类主要有4种:

1.静态内部类(static inner class)

定义如下:

class OutClass{
    static class InnerClass{} //静态内部类
}

静态内部类是指被声明为static的内部类,它不依赖与外部类实例而被实例化。静态内部类不能访问外部类的普通成员变量,只能访问外部类中的静态成员和静态方法包含私有类型)。

2.成员内部类(member inner class)

定义如下:

class OutClass{
    class InnerClass{} //成员内部类
}

成员内部类就是普通的内部类,可以自由引用外部类的方法,不管是静态还是非静态,但是内部不可以定义静态的方法和属性,而且只有被内部类被实例化后,这个类才能被实例化。

3.局部内部类(local inner class)

定义如下:

class OutClass{
    public void doSomeWork(){
        class innerClass{} //局部内部类
    }
}

局部内部类是定义在代码块中的类,它的作用范围为所在的代码块中,极少用到。局部内部类跟局部变量比较类似,不能被public、protected、private以及static修饰,只能访问方法中定义为final类型的局部变量。如果局部内部类,在静态的代码块或者方法中,则会变成局部静态内部类。

4.匿名内部类(anonymous inner class)

定义如下:

class OutClass{
    new Runnable(){

            @Override

            public void run() {

                

            }

        }.run();
}

匿名内部类是一个没有类名的内部类,不能使用关键字class、extends、implement,没有构造函数,自身必须继承其他类或者接口。匿名内部类的好处是代码更加简洁。使用内部类需要牢记一下几个原则:

    1.匿名内部类不能有构造函数;

    2.匿名内部类不能定义静态成员、方法和类;

    3.匿名内部类不能是public、protected、private、static;

    4.只能创建内部类的一个实例;

    5.一个匿名内部类一定是在new的后面,必须继承一个父类或者实现一个接口;

    6.匿名内部类为局部内部类,所以局部内部类的所有限制都对其生效。

转载于:https://www.cnblogs.com/foreverYoungCoder/p/10471011.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值