您的位置 首页 java

“全栈2019”Java第九十四章:局部内部类详解

难度

初级

学习时间

30分钟

适合人群

零基础

开发语言

java

开发环境

  • JDK v11
  • IntelliJ IDEA v2018.3

提示

本教学属于系列教学,内容具有连贯性,本章使用到的内容之前教学中都有详细讲解。

1.局部内部类

在任何作用域中定义的类都称之为局部内部类。

演示:

局部内部类。

代码:

2.局部内部类定义成员

当然了,你还可以和普通类一样定义成员:

3.局部内部类定义 构造方法

你也可以定义构造方法:

4.创建局部内部类对象

最重要的是,你还可以创建局部内部类对象:

5.局部内部类调用成员

除了可以定义局部内部类、创建局部内部类对象以外,你还可以想普通类一样去调用你的成员。

结果:

6.局部内部类不能定义静态成员

局部内部类不是你想定义什么都可以的,静态成员不能定义。

演示:

请在main()方法中定义一个局部内部类Student。

在局部内部类Student类中定义静态成员。

在main()方法中通过类名调用其静态成员。

请观察程序运行结果。

代码:

Main类:

结果:

错误信息:

文字版:

这个错误是说内部类里面用static修饰的只能是常量,既然常量都用static修饰,那么这个常量就是静态常量。

结果:

由此可见, 内部类和局部内部类里面静态成员只能定义静态常量。

7.局部内部类对象作为方法返回值返回

既然局部内部类可以定义在方法体内部,那么可以不可以返回出来呢?我们来试试。

演示:

请在Main类中定义一个getStudent()方法,然后在getStudent()方法体中定义一个局部内部类Student。

getStudent()方法返回类型是Student类,返回值是创建Student类对象。

在main()方法中调用getStudent()方法。

请观察程序运行结果。

代码:

Main类:

结果:

错误信息:

文字版:

/Users/admin/Workspace/Java/Hello/src/main/Main.java

Error:(18, 20) java: 找不到符号

符号: 类 Student

位置: 类 main.Main

Error:(7, 9) java: 找不到符号

符号: 类 Student

位置: 类 main.Main

这里得说一下,局部内部类的 作用域

首先,我们来看局部内部类Student定义的位置:

它定义在getStudent()方法的内部,局部内部类的作用域就是这个getStudent()方法的方法体里面。

局部内部类只能在作用域里面可见。

什么意思?就是说,局部内部类定义在方法里面就只有方法里面才能访问,出方法以外就不能访问。

拿上面这个例子来说,就是Student类属于getStudent()方法,不属于Main类。

出了这个getStudent()方法,谁也不能访问。所以,方法不能将局部内部类作为返回值类型,更不能将局部内部类对象作为返回值。但是,继承和实现( implements )情况又不一样了,后面再讲。

总结

  • 在任何作用域中定义的类都称之为局部内部类。
  • 内部类和局部内部类里面静态成员只能定义静态常量。
  • 局部内部类只能在作用域里面可见。

至此,Java中局部内部类详解相关内容讲解先告一段落,更多内容请持续关注。

答疑

如果大家有问题或想了解更多前沿技术,请在下方留言或评论,我会为大家解答。

上一章

下一章

“全栈2019”Java第九十五章:可以定义静态局部内部类吗?

学习小组

加入同步学习小组,共同交流与进步。

  • 方式一:关注头条号Gorhaf,私信“Java学习小组”。
  • 方式二:关注公众号Gorhaf,回复“Java学习小组”。

全栈工程师学习计划

关注我们,加入“全栈工程师学习计划”。

版权声明

原创不易,未经允许不得转载!

文章来源:智云一二三科技

文章标题:“全栈2019”Java第九十四章:局部内部类详解

文章地址:https://www.zhihuclub.com/173288.shtml

关于作者: 智云科技

热门文章

网站地图