关于java 类型初始化问题

风程序 2013-07-29 04:53:08
public class BSort
{
public static void main(String[] args)
{
int b;
System.out.println(b);
}
}
//BSort.java:7: 错误: 可能尚未初始化变量b
//程序为什么会出错啊,类型值得默认值不是0吗,怎么不是输出0
...全文
111 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
风程序 2013-07-29
  • 打赏
  • 举报
回复
引用 6 楼 longtian1213 的回复:
引用 4 楼 w215230188 的回复:
[quote=引用 3 楼 longtian1213 的回复:] [quote=引用 2 楼 w215230188 的回复:] [quote=引用 1 楼 AA5279AA 的回复:] 把int b放在main方法之外,就能产生你想要的结果了。
请问这是为什么
成员变量和局部变量的区别[/quote]成员变量和局部变量的区别 不是 作用域不同吗[/quote] java中成员变量和局部变量的区别 1.成员变量可以被public,protect,private,static等修饰符修饰,而局部变量不能被控制修饰符及static修饰;两者都可以定义成final型 2.成员变量存储在堆,局部变量存储在栈 3.存在时间不同 4.成员变量有默认值,(被final修饰且没有static的必须显式赋值),局部变量没有默认值[/quote]多谢了
S117 2013-07-29
  • 打赏
  • 举报
回复
引用 4 楼 w215230188 的回复:
引用 3 楼 longtian1213 的回复:
[quote=引用 2 楼 w215230188 的回复:] [quote=引用 1 楼 AA5279AA 的回复:] 把int b放在main方法之外,就能产生你想要的结果了。
请问这是为什么
成员变量和局部变量的区别[/quote]成员变量和局部变量的区别 不是 作用域不同吗[/quote] java中成员变量和局部变量的区别 1.成员变量可以被public,protect,private,static等修饰符修饰,而局部变量不能被控制修饰符及static修饰;两者都可以定义成final型 2.成员变量存储在堆,局部变量存储在栈 3.存在时间不同 4.成员变量有默认值,(被final修饰且没有static的必须显式赋值),局部变量没有默认值
失落夏天 2013-07-29
  • 打赏
  • 举报
回复
怎么说呢。java就是这么规定的 函数体之外的int就是会被初始化为0。 这也是和C++的区别吧。当这样这样做效率会降低的 我感觉java就是牺牲了效率,方便了程序员
风程序 2013-07-29
  • 打赏
  • 举报
回复
引用 3 楼 longtian1213 的回复:
引用 2 楼 w215230188 的回复:
[quote=引用 1 楼 AA5279AA 的回复:] 把int b放在main方法之外,就能产生你想要的结果了。
请问这是为什么
成员变量和局部变量的区别[/quote]成员变量和局部变量的区别 不是 作用域不同吗
S117 2013-07-29
  • 打赏
  • 举报
回复
引用 2 楼 w215230188 的回复:
引用 1 楼 AA5279AA 的回复:
把int b放在main方法之外,就能产生你想要的结果了。
请问这是为什么
成员变量和局部变量的区别
风程序 2013-07-29
  • 打赏
  • 举报
回复
引用 1 楼 AA5279AA 的回复:
把int b放在main方法之外,就能产生你想要的结果了。
请问这是为什么
失落夏天 2013-07-29
  • 打赏
  • 举报
回复
把int b放在main方法之外,就能产生你想要的结果了。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧