java学习06,内部类与匿名内部类

# 1、内部类

## 1、成员内部类

class Outer 

{

 

//在外部类内部创建内部类对象 Inner inner  =  new Inner();

​    class Inner 

​    {
​    }

 

}//在外部类外部创建内部类对象 外部类.内部类 inner = new Outter().new Inner();

 

 

 

①:成员内部类的创建需要依赖于外部类对象(成员方法必须通过对象调用),在没有外部类实例之前无法创建成员内部类对象

②内部类与外部类相对独立

③私有属性的互相访问,内部类可以直接访问外部类,而外部类访问内部类需要内部类的对象来访问

④成员内部类:类比成员方法,不能拥有静态域但是可以访问外部类的静态域

## 2、静态内部类

定义在外部类的内部,使用static修饰,类比静态方法,静态内部类不需要外部类对象产生就能使用,不能访问外部类的成员域,但是能访问静态域

1、静态内部类的创建语法

①:外部类内部:与成员内部类一样 Inner inner  =  new Inner();

②:外部类外部: StaticInnerClass.Inner inner = new StaticInnerClass.Inner();

## 3、方法内部类

1、定义在方法内部:类比局部变量

①:对外部完全隐藏,因此方法内部类不能有能和访问修饰符

②:方法内部类没有访问形参,这个形参是可以在方法中随意修改的,一旦方法内部类中使用了形参,这个形参必须声明为final

# 2、匿名内部类

1、匿名内部类只能使用一次,使用前提:必须继承一个父类或者实现一个接口,但最多只能继承一个父类或者实现一个接口

2、匿名内部类不能是抽象类,因为系统在创建匿名内部类的时候,会立即创建内部类对象。因此不允许将匿名内部类定义成抽象类

3、匿名内部类不能定义构造器(构造方法),因为匿名内部类没有类名,所以不发定义构造器,但匿名内部类可以定义实例初始化块

4、匿名内部类可以让抽象类能够new,还可以还在接口上

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值