molan3
2008-07-26 16:23
浏览 269
已采纳

Java 基本数据类型的默认值问题,为什么我编译出错

int x;
System.out.print(x);

编译不过去, 如何在程序里体现出基本数据类型的默认值呢?
很火星的问题,但真郁闷一时想不起来了 :D

我的JDK版本1.6
[b]问题补充:[/b]
public class Test{

private int i;

public int getI(){
int j;
return j;
}

 public static void main(String args[]){  

Test test=new Test();       
    System.out.println(test.getI()); 
 }  

}

上面那段代码,getI()方法是编译不过去的,但是改成
public int getI(){
return i;
}
就可以

实践了一下,发现声明的静态变量和,实例化后类的变量都能以默认值形式打印出来,但是方法里声明的变量就不行。
是不是类在实例化的时候给了声明变量一个默认值? 希望朋友们能解答一下这个过程,谢谢因为要考SCJP,现在在扣细节,不想一知半解。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • aidiyuxin 2008-07-26 18:42
    已采纳

    [size=small]是不是类在实例化的时候给了声明变量一个默认值?
    这个你就得去看jvm啦,哈哈
    确实是在编译的时候赋值的
    SCJP?
    考它作什么啊?
    我还是scjd呢,没什么用呀。。。 [/size]:oops:

    点赞 打赏 评论
  • aidiyuxin 2008-07-26 17:50

    [size=medium][code="java"]public class Test {
    static int i ;
    public static void main(String args[]){
    System.out.println(i);
    }
    }[/code]
    这不就行了?[/size]

    点赞 打赏 评论
  • aidiyuxin 2008-07-26 17:53

    [size=medium]要是问什么错,把代码贴出来啊
    ps:可能的问题
    1.方法里是不可以int i的,必须赋初值
    2.如果要在main里用,必须是static的变量[/size]

    点赞 打赏 评论
  • iteye_7762 2008-07-26 18:15

    你的j没有初始化, 当然会编译不过.

    在方法里的局部变量必须要进行赋值, 不管是基本数据类型还是对象。

    点赞 打赏 评论
  • datuo 2008-07-26 23:13

    类变量会自己默认初始化的。
    方法里面的变量是需要自己初始化的。

    点赞 打赏 评论

相关推荐 更多相似问题