四种初始化的位置,不是很清楚哪一种对应那种类型,所以拿出来问问大家:
1、在定义对象的地方。
2、在类的构造器中
3、在正要使用这些对象之前,称为惰性初始化
4、实例初始化
代码一:
public class Test{
int a = 10;  //这应该属于第一种初始化方式吧?
int b = 20;
}
}代码二:
public class Test{
int a;
int b;
Test(){
a = 10;  //这应该是第二种,在构造器里
b = 20;
}
}代码三:
public class Test{
public static void main(String[] args){
int a = 10;  //这应该是第四种吧?
int b = 20;
}
}代码四:
public class Test{
Test(){}
public String toString(){
int a = 10;   //这种方式不知道是不是惰性初始化,因为惰性初始化从来没见过,猜的
int b = 20;
return "a " + a +
       "b " + b;
}
}回复的时候请按顺序告知,是错是对,如果代码1,2,3,4中哪段有问题,请指出,谢谢!!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【llm0528】截止到2008-07-15 10:30:35的历史汇总数据(不包括此帖):
    发帖的总数量:54                       发帖的总分数:1080                     每贴平均分数:20                       
    回帖的总数量:46                       得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:54                       结贴的总分数:1080                     
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    敬礼!
      

  2.   

    顺便忘了问了,像块初始化属于哪种??
    public class Test{
    {
    int a = 10;  //这属于哪种?
    int b = 20;
    }
    }
      

  3.   

    1、2是正确的,3和4像这样:3.
    public class Test {
        int a;
        
        public int getA() {
            return a;
        }    public void setA(int a) {
            this.a = a;
        }    
        
        public static void main(String[] args) {
            Test test = new Test();
            test.setA(66);//惰性初始化
        }}4.
    public class Test {
        int a;
        
        public Test(int a) {
            this.a = a;
        }
        public static void main(String[] args) {
            Test test = new Test(66);//实例初始化
        }
    }
      

  4.   

    Java codepublic class Test{ 
        { 
            int a = 10;  //这属于哪种? 
            int b = 20; 
        } 

    PS:这种才是实例初始化吧?见《Thinking in Java 3rd Edition》
      

  5.   


    你的代码三和代码四,不属于任何对象的初始化,是primitive 的,只是一个方法里面的局部变量罢了。声明的时候就需要初始化,它不会自动初始化的,不然在使用的时候要报错。
      

  6.   

    啊啊啊啊 啊 啊啊啊 , 我一直迷惑什么事惰性初始化 , 没想到就是get set原则