标题:[求助]成员函数里面可以定义类吗?
只看楼主
起风的时候
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2007-1-16
 问题点数:0 回复次数:14 
[求助]成员函数里面可以定义类吗?
在一个外部类A的成员函数f里面,我定义了一个局部变量v和一个类B(B在v之后被定义),
B这个类里面又会用到v,但是编译通不过,说从内部类访问局部变量v;需要被声明为最终类型,什么意思啊?
搜索更多相关主题的帖子: 成员函数 定义 部类 变量 
2007-06-08 16:41
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 
可以定义,但是你引用的局部变量必须声明是final的

因为类的生命周期比你的方法要长

可惜不是你,陪我到最后
2007-06-08 18:48
起风的时候
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2007-1-16
得分:0 

哦,可以了。。那个方法结束了,那个类还存在?那这个类的生命周期多长呢?


2007-06-08 20:48
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 
直到没有人拥有它的引用为止

可惜不是你,陪我到最后
2007-06-08 21:58
syuanq
Rank: 2
等 级:新手上路
威 望:3
帖 子:297
专家分:0
注 册:2006-12-11
得分:0 

可以定义,但是你引用的局部变量必须声明是final的

因为类的生命周期比你的方法要长

为什么类的生命周期长就要把变量声明为final?


[url]www.[/url]欢迎大家的光临,一起交流学习
2007-06-08 22:55
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
得分:0 

恩。。我也学到了。。

[此贴子已经被作者于2007-6-8 23:03:25编辑过]


天行健,君子以自强不息!!QQ:68660681
2007-06-08 23:02
起风的时候
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2007-1-16
得分:0 
额,谢谢各位。

2007-06-08 23:04
lanshetou
Rank: 1
等 级:新手上路
帖 子:65
专家分:0
注 册:2007-6-1
得分:0 
谢谢!

2007-06-09 16:26
起风的时候
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2007-1-16
得分:0 
以下是引用syuanq在2007-6-8 22:55:29的发言:

可以定义,但是你引用的局部变量必须声明是final的

因为类的生命周期比你的方法要长

为什么类的生命周期长就要把变量声明为final?

哦?就是啊,为什么不是像C++那样声明成静态static的呢?final应该相当于C++的const吧?


2007-06-09 20:57
狂放不羁
Rank: 4
等 级:贵宾
威 望:12
帖 子:925
专家分:0
注 册:2007-1-24
得分:0 
因为你在内部类中用到了V这个变量,所以必须申明为final的,因为内部类的对象会在你方法调用结束的时候继续存在下去,只到没有引用指向它了,最后要么随着程序的结束被操作系统释放,要么被垃圾回收器回收。但是对于匿名的内部类,如果你在内部类中没有用到传进来的参数的话,那么就不需要是final的了,只有在内部类中用到的时候才必须申明为final的。
2007-06-09 22:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-145956-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.355646 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved