推广 热搜: csgo  vue  angelababy  2023  gps  新车  htc  落地  app  p2p 

难度初级学习时间30分钟适合人群零基础开发语言

   2023-06-18 网络整理佚名1140
核心提示:匿名内部类与final关键字“全栈2019”Java第一百零三章:匿名内部类详解“全栈2019”Java第一百零六章:匿名内部类与抽象类接口注意事项全栈2019”Java第三十七章:类与字段全栈2019”Java第三十八章:类与方法全栈2019”Java第四十章:this关键字全栈2019”Java第五十一章:继承与final关键字详解

困难

基本的

学习时间

30分钟

适合人群

零基础

开发语言

爪哇

开发环境提示

本教学属于系列教学,内容连贯。 本章所用到的内容在前面的教学中已经有详细的讲解。

1.匿名内部类和final关键字

匿名内部类访问作用域内的变量时,什么时候用final关键字修饰变量? 什么时候不要用final关键字修饰变量? 让我们讨论一下。

演示:

请在主类中定义一个抽象内部类。

在抽象内部类中定义一个抽象方法。

在 Main 类的 main() 方法中创建一个匿名内部类对象。

在 main() 方法中定义一个变量,然后尝试在匿名内部类中访问它。

请观察程序运行结果。

代码:

主要类:

结果:

从运行结果来看,程序没有任何问题。

我们先看一下定义的静态抽象内部类:

我们来看看匿名内部类:

看了静态抽象内部类和匿名内部类,我们发现方法中有一个参数。 这个参数是为了演示什么时候加final关键字,什么时候不加final关键字:

我们可以看到,这个参数是通过匿名内部类中的实现方法直接访问的:

该参数不用final关键字修饰,可以直接访问。 不容易直观看出什么时候用final关键字修饰,什么时候不用final关键字修饰。 通过立即显示下一个示例,可以清楚地看出它们之间的区别。

2.匿名内部类访问修饰变量

上面的例子还是一样,只是我们需要修改方法中的参数。

演示:

请在主类中定义一个抽象内部类。

在抽象内部类中定义一个抽象方法。

在 Main 类的 main() 方法中创建一个匿名内部类对象。

在 main() 方法中定义一个变量,然后尝试在匿名内部类中访问它。

请观察程序运行结果。

代码:

主要类:

结果:

错误信息:

文字版:

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

Error:(34, 36) java: 从内部类引用的局部变量必须是最终的或实际上是最终的

从运行结果来看,程序发现了一个小错误。 让我们来看看。

整个程序与前面的例子完全一样,但有一处不同。 让我们修改参数:

为什么这行不通?

对于匿名内部类,最好不要修改它可以访问的变量。 如果你想修改它,那么使用一个新的变量来接收它。 你可以修改它有或没有final,但不能修改新变量。 例如:

在这种情况下,匿名内部类可以访问作用域内的变量。 因此,感官变量本质上是最终的。

总结

至此,Java中匿名内部类和fianl关键字的讲解就告一段落了,更多内容请继续关注。

附:匿名内部类学习资料

没有学习过或者对部分内训不太了解的同学不要着急,可以点击下方的部分内训学习资料进行学习。

Full Stack 2019》Java第94章:局部内部类详解

Full Stack 2019》Java第95章:静态局部内部类可以定义在方法中吗?

Full Stack 2019》Java第96章:抽象局部内部类详解

Full Stack 2019》Java第97章:方法中访问本地内部类成员详解

Full Stack 2019》Java第98章:局部内部类访问作用域成员详解

《全栈2019》Java第99章:局部内部类与继承详解

《全栈2019》Java第100章:局部内部类能否实现接口?

《全栈2019》Java第101章:部分内部类覆盖作用域成员详解

《全栈2019》Java第102章:哪些作用域可以声明局部内部类?

《全栈2019》Java第103章:匿名内部类详解

《全栈2019》Java第104章:匿名内部类与外部成员交互详解

《全栈2019》Java第105章:匿名内部类覆盖作用域成员详解

《全栈2019》Java第106章:匿名内部类和抽象类接口的笔记

《全栈2019》Java第107章:匿名内部类和构造函数笔记

附件:班级学习资料

Full Stack 2019》Java第36章:类

Full Stack 2019《Java第37章:类与字段》

Full Stack 2019《Java第38章:类与方法》

Full Stack 2019》Java第39章:构造函数、构造函数、构造函数

Full Stack 2019》Java第40章:this关键字

Full Stack 2019》Java第41章:关键词

Full Stack 2019》Java第42章:静态代码块和初始化顺序

Full Stack 2019》Java第43章:封装

Full Stack 2019》Java第44章:继承

Full Stack 2019》Java第45章:super关键字

Full Stack 2019》Java第46章:继承与字段

Full Stack 2019》Java第47章:继承与方法

Full Stack 2019》Java第48章:重写方法

Full Stack 2019》Java第49章:重载与重写详解对比

Full Stack 2019》Java第50章:继承与构造方法详解

Full Stack 2019》Java第51章:继承和final关键字详解

Full Stack 2019》Java第52章:继承与初始化详解

Full Stack 2019》Java第53章:详解向上转型与向下转型

附:抽象类学习资料

Full Stack 2019》Java第54章:详解多态

Full Stack 2019》Java第55章:方法的静态绑定与动态绑定

Full Stack 2019》Java第56章:多态与字段详解

Full Stack 2019》Java第57章:多态与构造方法详解

Full Stack 2019》Java第58章:多态中方法的返回类型可以是子类类型

Full Stack 2019》Java第59章:抽象类和抽象方法详解

附:接口学习资料

Full Stack 2019》Java第60章:如何定义接口

Full Stack 2019》Java第61章:如何实现接口?

Full Stack 2019》Java第62章:接口和常量详解

Full Stack 2019》Java第63章:接口和抽象方法详解

Full Stack 2019》Java第64章:接口和静态方法详解

Full Stack 2019》Java第65章:接口和默认方法详解

Full Stack 2019》Java第66章:抽象类和接口的详细对比

附:内部课堂学习资料

Full Stack 2019》Java第67章:内部类与嵌套类详解

Full Stack 2019》Java第68章:外部类访问内部类成员详解

Full Stack 2019》Java第69章:内部类访问外部类成员详解

Full Stack 2019》Java第70章:静态内部类详解

Full Stack 2019》Java第71章:详解外部类访问静态内部类成员

Full Stack 2019》Java第72章:静态内部类访问外部类成员

Full Stack 2019》Java第73章:外部类中多个静态和非静态内部类详解

Full Stack 2019》Java第74章:内部类与静态内部类的相互嵌套

Full Stack 2019》Java第75章:内部类持有外部类对象

Full Stack 2019》Java第76章:静态和非静态内部类访问权限

Full Stack 2019》Java第77章:抽象内部类和抽象静态内部类详解

Full Stack 2019》Java第78章:内部类能否继承其他类?

Full Stack 2019》Java第79章:接口可以嵌套在类中吗?

Full Stack 2019》Java第80章:外部类能否实现本类中的接口?

Full Stack 2019》Java第81章:外部类能否访问嵌套接口中的成员?

Full Stack 2019《Java第82章:嵌套接口可以访问外部类中的成员吗?

Full Stack 2019》Java第83章:内部类和接口详解

Full Stack 2019》Java第84章:接口中嵌套接口详解

Full Stack 2019》Java第85章:在接口中实现嵌套接口

Full Stack 2019《Java第86章:嵌套接口可以多继承吗?

Full Stack 2019》Java第87章:类中嵌套接口的应用场景(高阶题)

Full Stack 2019》Java第88章:接口中嵌套接口的应用场景

Full Stack 2019》《Java第89章:接口中可以定义内部类吗?

Full Stack 2019》Java第九十章:内部类可以向上改造还是向下改造?

Full Stack 2019《Java第91章:内部类是多态的吗?

Full Stack 2019》Java第92章:外类和内类成员覆盖详解

Full Stack 2019》Java第93章:内部类应用场景(迭代器设计模式)

回答提问

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON