请问,java里面有没有类似这样的构造函数?public A(value) : a(value), b(2), c(3){}还是应该写成:public A(value){
    a = value;
    b = 2;
    c = 3;
}
我看C++ primer的时候看到书中说第二种方式不是真正的初始化,而是赋值。第一种才是初始化。java中是不是也一样?或者这正是C++和JAVA的差别之一?

解决方案 »

  1.   

    Java里面没有第一种..     第二种只是定义构造方法..
      

  2.   

    java中不支持第一种写法,java只支持第二种写法。第一种写法是c++的语法,我记得那样的写法会在有父类的构造方法上有区别。
      

  3.   

    java没有像c++一样的在构造函数初始化成员变量的写法~~~~
      

  4.   

    不用初始化,java中每一种数据类型都有它的缺省值。
      

  5.   

    第一种是c++中的,java写成public A(int value){
        a = value;
        b = 2;
        c = 3;
    }一般而言,你这b和c也应该通过传进去的参数赋值,再生成对象时再具体赋值,而不是像你这样直接赋值,如下面这样public A(int a,int b,int c){
        this.a = a;
        this.b = b;
        this.c = c;
    }
    A a=new A(2,5,8);
      

  6.   

    第一种写法是C++构造函数的一种风格:采用初始化表对数据成员进行初始化,该风格不能用于Java
    第二种是赋值语句
      

  7.   


    没学过C++,JAVA就是这样初始化的
      

  8.   

    第二种写法经常出现在JAVA中,但是第一种就不曾见过~~~
      

  9.   

    Java里不支持第一种方法,但是支持第二种构造方法
    因此,LZ应该用第二种
      

  10.   

    java中可以直接在定义变量时初始化.
      

  11.   

    谢谢楼上各位,我最近挺忙的没来CSDN,现在来结贴了。