Java中的四种内部类

Java中有四种内部类:

成员内部类

静态内部类

局部内部类

匿名内部类


成员内部类

定义在另一个类(外部类)的内部,而且与成员属性和方法平级,故称成员内部类。成员内部类相当于外部类的非静态方法,如果用static修饰就变成了静态内部类。

① 在外部类以外,成员内部类依赖于外部类,只有先创建了外部类的实例对象后才能创建成员内部类的实例对象: 

1 外部类.内部类 实例名称 = new 外部类实例对象.new 内部类构造器(参数)

② 成员内部类中不能使用static关键字,即不能声明静态属性、静态方法、静态代码块等

③ 成员内部类在编译之后会生成一个单独的class文件,里面包含该成员内部类的定义,所以成员内部类中可以有和外部类同名的属性和方法,但会发生隐藏现象。

④ 当成员内部类中有和外部类同名的属性和方法时,会发生隐藏现象,及默认情况下访问的是成员内部类中的属性和方法。若想要访问外部类中同名的属性和方法需要以下面的形式进行访问

1 外部类名.this.成员变量
2 外部类名.this.成员方法()

⑤ 外部类无法直接访问成员内部类的方法和属性,需要通过成员内部类的一个实例来访问。在外部类中如果要访问成员内部类的成员属性或成员方法,必须先创建一个成员内部类的对象,然后通过指向这个对象的引用来访问成员内部类的成员属性或成员方法。

扫描二维码关注公众号,回复: 3272492 查看本文章
1 new 成员内部类的构造方法(参数).成员内部类的成员变量
2 new 成员内部类的构造方法(参数).成员内部类的成员方法()

⑥ 

https://www.cnblogs.com/dorothychai/p/6007709.html

https://www.cnblogs.com/dolphin0520/p/3811445.html

https://blog.csdn.net/pengchengliu/article/details/80525244

http://www.cnblogs.com/chenssy/p/3388487.html

猜你喜欢

转载自www.cnblogs.com/0820LL/p/9687640.html