Java中成员类、嵌套类和匿名类

内部类的注意事项:
1.内部类仅仅是外部类的成员,因此可以被声明为public,private,protected或者是默认值。
   外部类只能被声明为public或者是默认值,通常情况下,不会将内部类声明为public,除非真的
   找到在外部类之外使用内部类对象的合理原因。
2.内部类可以使用外部类的类和实例变量,以及封闭块的局部变量
3.内部类可以是一个接口,然后由另一个内部类实现这个接口
4.内部类可以是抽象的
5.内部类中不能声明static成员,除非内部类本身被声明为static
6.想使用静态变量的内部类,必须声明为static
7.static关键字可以用于内部类,但是不能用于外部类
8.内部类只可以访问声明为final的形参


成员类:
    在类中定义的非静态类被称为外部类的成员类。成员类通常被用作外部类的辅助类,成员类可以访问外部类的实例字段,
    而嵌套的顶层类不能这么做。嵌套的顶层类是用static修饰符声明的内部类;因此,如果希望内部类的对象可以访问外部类
    的字段,就需要将内部类声明为成员类,而不是嵌套的顶层类。成员类的所有对象都可以访问外部类的相同字段。
    主要特点:
1.每个成员类的实例内部都与外部类的某个实例想关联

2.成员类的方法可以隐式地指向在外部类中定义的字段,包括那些被声明为private的字段。


        在java代码中声明的类是局部类
     局部类的注意事项:
1.局部类仅在定义的自身的代码中是可见和可用的
2.除了访问包含类中定义的字段,局部类还可以访问任何局部变量、方法参数或在局部方法定义的作用域内的异常参数,
假设他们都是使用final限定符声明的
3.局部类不能使用new或者super关键字
4.局部类不能包含声明为static字段、方法或类,因为嵌套接口是隐式静态的,局部类可能不包含嵌套接口的定义
5.局部类不能使用public、protected、private、static修饰声明,这些修饰符只能用于类的成员,并且不得用于局部类的声明
6.局部类不能与任何外部类具有相同的名字
7.接口不能被拒不定义
8.局部类可以使用自身作用域内可见的任何final局部变量或参数
匿名类的注意事项:
1.匿名类不能含有构造方法
2.匿名类不能定义静态字段,方法或者类
3.在匿名类中不能定义嵌套接口,因为这些接口是隐式静态的
4.不能匿名的定义接口
5.匿名类不能声明为public、private、protected或static。
匿名类没有名字,编译器会生成两个文件,一个是EnclosingClassName.class和EnclosingClassName.class$1.class

        $后面分配唯一的数字

匿名类的使用规则:

1.类的主题很多

2.被定义后接着使用

3.只需要一个类的实例

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值