黑马程序员技术交流社区
标题:
一道面试题
[打印本页]
作者:
秋天-10
时间:
2015-4-25 21:03
标题:
一道面试题
写出程序结果
class TD
{
int y=6;
class Inner
{
static int y=3;
void show()
{
System.out.println(y);
}
}
}
class TC
{
public static void main(String[] args)
{
TD.Inner ti=new TD().new Inner();
ti.show();
}
}
复制代码
作者:
chniccs
时间:
2015-4-25 21:39
会报错,static int y=3;这句话会出错,具体原因转来的,你看下吧。
因为内部类是非静态的,除了要依靠外部类实例外,还要依赖内部类实例,而静态变量是不需要构建类实例的,两者是相矛盾的,而final类型的变量可以离开类实例存活一段时间的。
作者:
大兵在海边
时间:
2015-4-26 00:18
chniccs 发表于 2015-4-25 21:39
会报错,static int y=3;这句话会出错,具体原因转来的,你看下吧。
因为内部类是非静态的,除了要依 ...
学习了
作者:
落魄逗比
时间:
2015-4-26 09:34
输出结果为3,这题主要考察变量的作用域问题,可以简单这样理解一个大括号{}里的变量在这个括号里哪里都可以调用,大括号里嵌套的变量只能在里面调用,不能再外面调用,也就是说,小范围的可以调用大范围的,大范围的不能够i调用小范围的.
作者:
秋天-10
时间:
2015-4-26 11:31
好的,谢谢,学习了
作者:
sisel
时间:
2015-4-26 11:33
无法编译,内部类除非是静态的,否则无法持有静态成员
作者:
yanghaihun
时间:
2015-4-26 20:14
我也学习到啦
作者:
fanxia_2007
时间:
2015-4-26 21:12
无法编译,原因以上已经给出。
作者:
lostnotes
时间:
2015-4-26 21:54
打印输出结果是3
作者:
纳海百川
时间:
2015-4-26 23:09
考的不应该 是静态的问题吧 ; 如果是也是有点高端了;内部类都来了;内部类要想访问外面的变量;外部类的变量必须用final修饰;内部类才能访问
作者:
穆顺涛
时间:
2015-4-26 23:22
当内部类定义了静态成员时,该内部类也必须是静态的
作者:
旺丶财
时间:
2015-4-27 11:57
学习了。1楼是正确的
作者:
只吃饭不洗碗
时间:
2015-4-27 14:25
学习了!!!
作者:
yas丶
时间:
2015-4-27 15:14
学习了!
作者:
xizhenqing
时间:
2015-4-27 15:43
结果怎么样呢
作者:
Zack
时间:
2015-4-27 17:32
这是面试题还是基础测试题
作者:
牵猪散步
时间:
2015-4-27 17:42
面试结果怎么样啊!
作者:
海带
时间:
2015-4-27 18:31
学习了,赞一个
作者:
ddddk
时间:
2015-4-27 20:19
chniccs 发表于 2015-4-25 21:39
会报错,static int y=3;这句话会出错,具体原因转来的,你看下吧。
因为内部类是非静态的,除了要依 ...
基础视频里提过这个,没有印象了,现在又重新学习了。
作者:
熬夜看书
时间:
2015-4-27 20:43
看下,记得基础视频里有,但是我也忘记了,也去复习下
作者:
匡璐
时间:
2015-4-27 21:35
学习学习定一个
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2