Inner Class和Static Nested Class的区别?

Inner Class:内部类

  • 内部类就是在一个类的内部定义的类
  • 内部类中不能定义静态成员
  • 内部类可以直接访问外部类中的成员变量
  • 内部类可以定义在外部类的方法外面,也可以定义在外部类的方法体中
  • 在方法体外面定义的内部类的访问类型可以是public,protecte,默认的,private等4种类型
  • 方法内部定义的内部类前面不能有访问类型修饰符,可以使用 final 或 abstract 修饰符
  • 创建内部类的实例对象时,一定要先创建外部类的实例对象,然后用这个外部类的实例对象去创建内部类的实例对象
  • 内部类里还包含匿名内部类,即直接对类或接口的方法进行实现,不用单独去定义内部类
//内部类的创建语法
Outer outer = new Outer();
Outer.Inner inner = outer.new Innner();

 

Static Nested Class:静态嵌套类

  • 不依赖于外部类的实例对象
  • 能访问外部类的非 static 成员变量
  • 不能直接访问需要创建外部类实例才能访问非静态变量
  • 可以直接引用外部类的static的成员变量,不需要加上外部类的名字
  • 在静态方法中定义的内部类也是Static Nested Class
//静态内部类创建语法
Outter.Inner inner = new Outter.Inner();

 


【Java面试题与答案】整理推荐

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值