Java中的一个小问题!

在一个类中,如果某个变量被声明为final类型,那么如果不给这个变量赋值,可不可以,我用的是JDK1.5的版本,在ECLIPSE中不可以这样写,会报错,不知道是所有的版本... 在一个类中,如果某个变量被声明为final类型,那么如果不给这个变量赋值,可不可以,我用的是JDK1.5的版本,在ECLIPSE中不可以这样写,会报错,不知道是所有的版本都不可以这样写,还是只在高一点的版本里不可以这样写,或者是eclipse报的错误只是一种使程序规范化的提示!
望高人指点!!!!
展开
 我来答
泷乞儿
2008-12-25 · TA获得超过564个赞
知道小有建树答主
回答量:93
采纳率:0%
帮助的人:135万
展开全部
关于final,给几点建议给楼主,希望对你能有帮助:
1、final定义的是常量,所以不能被修改,所以有两种方式给final赋值:
*在声明final常量的时候进行初始化,如
public final int count = 10;
*也可以当时不去定义,在类的构造函数中定义,也是没有问题的:
public class Test
{
public final int count;
Test()
{
count = 10;
}
public static void main(String[] args)
{
Test test = new Test();
System.out.println(test.count);
}
}
打印出10,也是没有问题的
【总结】一个final的常量,可以在声明的时候初始化,也可以在构造函数中给他赋值,这都是可以的。
2、如果这个变量同时为final和static的时候就必须在声明的同时进行初始化:
public static final int count = 10;
3、如果要在内部类中使用成员变量,那么这个变量要声明为final。
final的常见用法无非上面三种,希望我的回答对您能有所帮助!
xiliantian
2008-12-25 · TA获得超过1849个赞
知道大有可为答主
回答量:648
采纳率:0%
帮助的人:887万
展开全部
final代表的是终态,是不能被赋值的,和JDK和ECLIPSE无关,这是一个关键字,是个语法问题。
正确使用如下:
public static final String myStr = new String("hello");
这样,该myStr可以做为正常变量使用,但是不能被赋值修改。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
auguusstt
2008-12-25 · TA获得超过323个赞
知道小有建树答主
回答量:238
采纳率:0%
帮助的人:177万
展开全部
final int i=0;
指i不可变,

那final int i;
不给i初始化,就是想后面给i赋值,这不是驳论吗?

所以这不是eclipse的问题,而是java不允许这样。而且是java语言一开始就这样定义的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangzhirong57
2008-12-25 · TA获得超过4672个赞
知道小有建树答主
回答量:541
采纳率:0%
帮助的人:827万
展开全部
不可以这样写,
错误 public static final String str;
正确 public static final String str=null;
或者 public static final Staing str="";
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qman23
2008-12-25 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:161
采纳率:0%
帮助的人:120万
展开全部
被申明为final的变量必须被初始化,且不能被改变,这是JAVA语法规定的,和eclipse无关。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
是你的恋恋吖cF
2008-12-25 · TA获得超过238个赞
知道小有建树答主
回答量:265
采纳率:0%
帮助的人:146万
展开全部
你需要把错误信息补充上来,可能是你这个常量没有被调用,系统提示错误。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式