| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 456 人关注过本帖
标题:[求助]java的一个小问题
只看楼主 加入收藏
zsyun
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-10-22
收藏
 问题点数:0 回复次数:7 
[求助]java的一个小问题


我是初学者、请问下面这个问题...
下面这个程序编译都不能通过。
import java.io.*;
public class test1
{
public static void main(String args[])
{
char c;
System.out.print("Enter a character please:");
try{
c=(char)System.in.read();
}catch(IOException e){};
System.out.println(" you've entered character:"+c);

}
}

错误提示:test1.java:11: variable c might not have been initialized
System.out.println(" you've entered character:"+c);
^
1 error

c没有被初始化、如果把初始化了是能够通过的、、

我的问题是:"为什么要给c初始化了才能通过编译?"

搜索更多相关主题的帖子: java 
2006-12-20 11:36
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
char c='a';



你随便初始化一下就可以了

因为你对c赋值的语句不一定会成功,所以你后面用到的c 就不一定是有值的了,所以你必须初始化一下c

这是JAVA对本地变量的硬性规定,成员变量就无所谓,JVM会给你初始化的

可惜不是你,陪我到最后
2006-12-20 12:01
zsyun
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-10-22
收藏
得分:0 
char类型变量缺省值是‘\u0'
在没有初值的情况下、为什么不用'\u0'作为它的初值呢?
还要硬性指定一个

请解释
2006-12-20 12:32
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

你把它作为成员变量时,系统会为它赋上'\u0'

但是局部变量,JVM是不会为它赋上初始值的


可惜不是你,陪我到最后
2006-12-20 12:34
神经塔
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:1987
专家分:4
注 册:2006-7-1
收藏
得分:0 

注意成员变量与非成员变量的区别!这个没有什么好解释的!可以给sun公司致电!


[shadow=255,red,2]待到秋来九月八,我花开时百花杀。冲天香阵透长安,满城尽是黄金甲。 [/shadow]
2006-12-20 12:35
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

你的解释牛!!


可惜不是你,陪我到最后
2006-12-20 12:36
心动音符
Rank: 1
等 级:禁止访问
威 望:1
帖 子:832
专家分:0
注 册:2005-9-15
收藏
得分:0 

SUN公司电话:1212112 (洞俩洞俩洞洞俩)


2006-12-20 23:06
zsyun
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-10-22
收藏
得分:0 

谢谢、
我记住了

2006-12-23 10:23
快速回复:[求助]java的一个小问题
数据加载中...
 
   



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

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