java零基础学习实践系列(五十二):内部类

五十二:内部类

  上一节详细介绍了接口,本节介绍下内部类。


1.理论整理

    在 Java 中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。
广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。下面就先来了解一下这四种内部类的用法。


2.实践

  1. 成员内部类:
    成员内部类是最普通的内部类,定义为 内部类A位于外部类B的内部,形如下面的形式:
    注: 成员内部类可以无条件访问外部类的所有成员属性和成员方法(包括private成员和静态成员)
    在这里插入图片描述
    注意:内部类和外部类属性名的重名危险! 当成员内部类拥有和外部类同名的成员变量或者方法时,会发生隐藏现象,即默认情况下访问的是成员内部类的成员。如果要访问外部类的同名成员,需要以下面的形式进行访问:
    外 部 类 . t h i s . 属 性 名 外部类.this.属性名 .this.
    展示:
    在这里插入图片描述

2.静态内部类 :public static class inner{…}
静态内部类也是定义在另一个类里面的类,只不过在类的前面多了一个关键字static
(1)在外部类中写内部类:
在这里插入图片描述
(2)补充:一个Java类中可以有多个class类,但是只能有一个public class!
在这里插入图片描述
3. 局部内部类:
局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法内或者该作用域内
在这里插入图片描述
4. 匿名内部类
     匿名内部类应该是平时我们编写代码时用得最多的,在编写事件监听的代码时使用匿名内部类不但方便,而且使代码更加容易维护。
     (1).匿名内部类不能有访问修饰符和 static 修饰符。
     (2).匿名内部类是唯一一种没有构造器的类。正因为其没有构造器,所以匿名内部类的使用范围非常有限,大部分匿名内部类用于接口回调。
     (3).一般来说,匿名内部类用于继承其他类或是实现接口,并不需要增加额外的方法,只是对继承方法的实现或是重写
在这里插入图片描述


总结:本节介绍了四种内部类,需要掌握:
  1. 【成员内部类是定义在另一个类中的类;它可以调用所在外部类中的所有属性和方法;当内部类和外部类成员属性名重名时,在内部类的方法中会默认使用内部类的,若想使用外部类的那个变量,需要按照格式(外部类名.this.变量名)调用】
  2. 【静态内部类也是定义在一个类里面的类,只不过需要用static修饰;需要注意内部类一旦用static修饰就是和外部类同时创建的,外部类的属性作为之后创建的变量就无法在内部类中调用了!】
  3. 【局部内部类是放在外部类方法中的类;能调用的仅限于所在方法的属性】
  4. 【匿名内部类常用来继承其他类或是实现接口】

声明:本系列是"狂神说Java"教程的个人学习笔记,无意侵权~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值