问答详情
源自:8-10 Java 中的 static 使用之静态初始化块

构造方法名称的问

构造方法名必须与类名相同吗?如果我要在同一类中构造较多方法怎么做?

提问者:可可wrh 2017-08-21 16:47

个回答

  • 暮色如虹
    2017-08-22 03:09:29
    已采纳

    这都是什么回答,惊了!

    1L直接错了,构造方法就是要与类名相同。但

    2L意思是对的,但要注意构造方法没有返回值。

    构造方法传参数可以方便给对象的属性赋值

    比如一个Students类,有ID,姓名,性别等字段。现在需要添加一个姓名为小明,性别为男的对象。如果构造方法的参数列表中有这些参数,我们只需

    Students s1 = new Students(1,"小明","男");

    而如果只有无参数的构造方法,只能:

    Students s2 = new Students();
    s2.setSid(2);
    s2.setSname("小雪");

    就需要使用set方法进行赋值。所以带参数的构造方法,赋值很方便。

    根据JavaBean规范的要求,属性必须申明为 private。

    所以,不应出现

    s2.Sname = "小昭";

    这种直接把属性声明为public的行为。


    eclipse下可以在要生成构造方法的地方,右键->source->Generate Constructor using Fields,然后选择你需要在构造方法初始化的属性就好。

    public class Students {
        private int sid; //学号
        private String sname; //姓名
        private String gender; //性别
        private Date birthday; // 出生日期
        private String address; // 地址
        public Students() {
        }
        public Students(int sid, String sname, String gender) {
              this.sid = sid;
            this.sname = sname;
            this.gender = gender;
        }
        public Students(String sname, String gender, Date birthday, String address) {
            this.sname = sname;
            this.gender = gender;
            this.birthday = birthday;
            this.address = address;
        }
            public Students(int sid, String sname, String gender, Date birthday, String address) {
             this.sid = sid;
            this.sname = sname;
            this.gender = gender;
            this.birthday = birthday;
            this.address = address;
        }
    }

    自己也不知道为什么要写这么多。。。希望对你有帮助吧。。。

  • 欧阳慕远
    2017-08-22 10:05:29

    首先你要明白,构造方法和成员方法;构造方法,是初始化类是调用的。必须要有的。成员方法你自己随便写(原则上,见名知意),是你的类的功能性方法。

  • DDK杜
    2017-08-21 17:25:43

    构造方法必须与类名相同。构造多个,那么也是与类名相同,但是返回值或形参不同就行(与重载类似)

  • Hello灬
    2017-08-21 17:08:51

    不需要与类同名,但是应该把方法的功能用名称表达清晰~