在Java编程中,有时候我们需要创建一个对象,但是不希望给出其中个别属性的值。比如,我们创建一个User对象,但是不想在创建时给出用户的密码。这种情况下,我们就需要在创建对象时指定默认值,或者在对象生成后使用setter方法给属性赋初始值。
使用构造器设定默认值
在Java中,我们可以利用构造器来创建对象,并且也可以在构造器中设置默认值。例如:
public class User { private String username; private String password; //构造器 public User(String username) { this.username = username; this.password = "123456"; //默认密码 } //setter和getter方法 public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; }}
我们在这个User对象中加入了一个有参构造器,其中只有用户名可以被传入,密码则设置为默认值。这样,当我们创建User对象时,只需传入用户名即可,密码不需要额外赋值。
使用setter方法赋初始值
除了在构造器中设定默认值,我们也可以在对象生成后使用setter方法来给对象的属性赋值。前提是我们需要保证当前属性是可访问的,在Java中,我们可以使用public修饰符来保证属性可被外部引用。
public class User { private String username; private String password; //构造器 public User(String username) { this.username = username; } //setter和getter方法 public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { if(password == null || password.trim().equals("")) { //设置默认密码 this.password = "123456"; }else { this.password = password; } }}
我们在这个User对象中加入了一个判断语句,如果传入的密码值是null或为空字符串,则将密码设为默认值。否则,将传入的值设为用户的密码。这样,在用户创建对象后,就可以使用setter方法来给对象的属性赋值,同时保证了代码的可读性和可维护性。