构造方法名称的问
构造方法名必须与类名相同吗?如果我要在同一类中构造较多方法怎么做?
构造方法名必须与类名相同吗?如果我要在同一类中构造较多方法怎么做?
2017-08-21
这都是什么回答,惊了!
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; } }
自己也不知道为什么要写这么多。。。希望对你有帮助吧。。。
举报