校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > java语言 > 嵌套类&内部类
题目

下列说法正确的是()?

A.对于局部内部类,只有在方法的局部变量被标记为final或局部变量是effctively final的,内部类才能使用它们

B.成员内部类位于外部类内部,可以直接调用外部类的所有方法(静态方法和非静态方法)

C.由于匿名内部类只能用在方法内部,所以匿名内部类的用法与局部内部类是一致的

D.静态内部类可以访问外部类的成员变量

解答

正确答案是 AB

C、错。匿名内部类用法与局部内部类不一致,首先从定义上就不一样,匿名类用在任何允许存在表达式的地方,而局部内部类用于在任何允许出现局部变量的地方出现。
还有更重要的是匿名类只能使用一次,而局部类则可以在自己的定义域内多次使用。
D、错。静态内部类不能直接访问外部类的非静态成员,但可以通过new外部类().成员的方式访问。
C 5条回复 评论
杜行知

上完课拿到想要的offer了!!谢谢大拿老师!

发表于 2023-03-06 21:00:00
0 0
向阳花(又名  花)

静态内部类:不可以访问外部非静态资源;

成员内部类:可以访问外部所有资源,但本身内部不可以有静态属性(需要被外部实例化)
局部内部类:不可被访问符合和static修饰,只能访问final变量和形参
匿名内部类:a没有构造器,没有静态资源,无法被访问符修饰 b只能在匿名内部类中创建一个实例

创建实例必须在new之后

发表于 2018-10-11 19:47:31
0 0
高作恒

非静态内部类能够访问外部类的静态和非静态成员。静态类不能访问外部类的非静态成员。他只能访问外部类的静态成员。

发表于 2018-10-11 19:47:17
0 0
萨菲罗斯

局部内部类之所以要在外部方法中给参数增加final参数。是因为局部内部类对于使用到的方法中的参数,会在类中生成相应的变量。而变量之间通过引用或者值传递(八D选项为什么不对?静态内部类虽然不能直接访问外部类的成员变量,但是可以通过对象初始化来访问呀?求解惑

发表于 2018-10-11 19:46:55
0 0
幸运鹅er

成员内部类是专指非静态的,静态内部类不能称之为成员

发表于 2018-10-11 19:46:28
0 0