黑马程序员技术交流社区
标题:
大家看看这个答案是什么,讲讲原因?
[打印本页]
作者:
ZhangHeng
时间:
2015-7-8 21:04
标题:
大家看看这个答案是什么,讲讲原因?
希望懂的大神说原因说的详细点。
class Outer
{
int x = 3;
void method(final int a)
{
final int y = 4;
//局部内部类
class Inner
{
void function()
{
System.out.println(y);
}
}
new Inner().function();//使用局部内部类中的方法。
}
}
class InnerClassDemo
{
public static void main(String[] args)
{
Outer out = new Outer();
out.method(7);//打印7
out.method(8);//打印8
}
}
复制代码
作者:
Miss.H
时间:
2015-7-8 21:05
这事什么
作者:
虾米吃螃蟹
时间:
2015-7-9 08:46
你并没有把a的值赋值给y,把final int y = 4; 改为final int y = a; 即可
作者:
hwy801207
时间:
2015-7-9 08:50
答案是4,不过这种语法题莫名其妙
作者:
wing-SF
时间:
2015-7-9 09:19
好吧,内部类,我还需要加强复习下,多谢了,我复习一遍再试试看
作者:
云雀
时间:
2015-7-9 09:25
我也来看看
作者:
fmi110
时间:
2015-7-9 10:22
out 调用 method ,method 中 给 y 赋值 y=4;method的最后新建一个内部类对象,同时此对象调用方法function(),输出y的值 4
作者:
拾起落叶
时间:
2015-7-9 10:47
你应该是想打印a的值吧,你主函数里赋予的值没有意义啊
作者:
firwood
时间:
2015-7-9 13:53
Outer里面没有使用到参数a,使用到了y,就不会实现传入不同参数,输出相应的结果的现象吧
作者:
心在左边跳
时间:
2015-7-9 14:22
内部类定义在局部时,不能被成员修饰符访问。可以访问外部类的成员,因为持有外部类的引用。但是不可访问它所在局部的变量。只能访问被final修饰的成员变量。你应该想问的是这个?
作者:
Love丶cd
时间:
2015-7-9 14:30
这个代码也是醉了。。。。你并没有把a的值付给y啊。。。。这运行代码有意义吗???
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2