请教一个问题

painAndhappy 2003-07-09 09:48:29
public class TestPar{
int inP;
void prt(){
System.out.println(inP);
}

void me(){
int inM = 0;
// int inM;
System.out.print(inM);
}

public static void main(String[] args){
TestPar tp = new TestPar();
tp.prt();
tp.me();
}
}

为什么类变量inP不需要初始化,而方法变量inM需要初始化,否则就会出错呢?
...全文
33 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hodex 2003-07-10
  • 打赏
  • 举报
回复
局部变量是不会被自动初始化的
wangsheng1028 2003-07-10
  • 打赏
  • 举报
回复
java中类变量,也就是属性java会默认初始化,而不是不要初始化
数字类型的 默认为 0
boolean 的 默认为 false
对象类型 默认为 null

而方法变量也就是临时变量,使用时候必须先初始化
java new一个对象时候
1.装入需要的class,初始化static属性
2.初始化非static属性,如果没有初始化就使用默认的
3,调用构造方法对属性赋值
xiaohaiz 2003-07-10
  • 打赏
  • 举报
回复
Field Initialization

当声明一个成员的时候,会自动根据其类型进行初始化.(记着,是成员)
可以使用常量,其它的成员.方法调用或者表达式对其初始化.
唯一的要求就是类型能够匹配.如果使用方法调用来进行初始化,无法捕获异常的.
如果成员没有初始化,那么系统会自动根据其类型进行初始化:

Type Initial value
--------------------------------
boolean false
char '\u0000'
byte,short,int,long 0
float +0.0f
double +0.0
object reference null
painAndhappy 2003-07-10
  • 打赏
  • 举报
回复
谢谢各位!
painAndhappy 2003-07-10
  • 打赏
  • 举报
回复
能给我讲一下java关于初始化方面的机制吗?
yangtaylor 2003-07-10
  • 打赏
  • 举报
回复
作用域不同。没办法检查,除非编译的时候编译器就完全的走一遍。
telenths 2003-07-09
  • 打赏
  • 举报
回复
不是 类变量inP不需要初始化
而是 Java 会自动给他初始化
数字类型的 默认为 0
boolean 的 默认为 false
对象类型 默认为 null

方法变量 则不会 默认初始化
faqc 2003-07-09
  • 打赏
  • 举报
回复
一个在方法里,一个不在,
在方法里的一定要初始化的;
在类里的是PUBLIC,默认的已经初始化了,
这就是区别
wsh_yao 2003-07-09
  • 打赏
  • 举报
回复
哦?真的么?
accp 2003-07-09
  • 打赏
  • 举报
回复
java的bug
:)

62,635

社区成员

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

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