理解Java内部类 匿名内部类

Java内部类是Java在类中又创建了一个类,它有什么好处呢
1.一个内部类对象可以访问创建它的外部类对象的内容,甚至包括私有变量!
2.隐藏你不想让别人知道的操作,也即封装性。
匿名类可以被 static等修饰,也有匿名内部类这些都是Java面试中的考点,所以我想写一个博客说明一下这些,

一静态内部类

被static修饰就是一个静态内部类,静态内部类有什么特点呢,既然被static修饰了 就肯定有static的特点了,随着类的加载而加载,随着类的消失而消失,所以当内部类创建的时候外部类的非静态变量和非静态方法还没有创建,所以也就不能访问外部类的非静态变量和方法了,当然内部类中也不能有静态成员,因为有了静态成员就得是一个静态内部类了。

二匿名内部类

这个东西我个人感觉比较变态,怎么变态呢就是明明能好好写,非得简写,然后弄的你看不懂了(可能我太菜了,不知道这个的好处吧),咱们这里只说理解 不说用处了,
我感觉匿名内部类就是用它实现的接口或者继承的父类的子类,而且用父类或者接口的名字代替自己的名字顺便把对象创建了的类,

public abstract  class fu {

 public abstract void show();
}
public class wai {
   public static void main(String[] args) {
       new fu(){
              public void show(){
                  System.out.println("bbbbbbbbbb");
              }
          }.show();
}

}

你看这就是匿名内部类的样子是不是有些怪,这是匿名内部类的注意事项

1、使用匿名内部类时,我们必须是继承一个类或者实现一个接口,但是两者不可兼得,同时也只能继承一个类或者实现一个接口。
2、匿名内部类中是不能定义构造函数的。
3、匿名内部类中不能存在任何的静态成员变量和静态方法。
4、匿名内部类为局部内部类,所以局部内部类的所有限制同样对匿名内部类生效。
5、匿名内部类不能是抽象的,它必须要实现继承的类或者实现的接口的所有抽象方法。
6. 我们给匿名内部类传递参数的时候,若该形参在内部类中需要被使用,那么该形参必须要为final。也就是说:当所在的方法的形参需要被内部类里面使用时,该形参必须为final。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值