在Java編程中,有時候我們需要創(chuàng)建一個對象,但是不希望給出其中個別屬性的值。比如,我們創(chuàng)建一個User對象,但是不想在創(chuàng)建時給出用戶的密碼。這種情況下,我們就需要在創(chuàng)建對象時指定默認值,或者在對象生成后使用setter方法給屬性賦初始值。
使用構造器設定默認值
在Java中,我們可以利用構造器來創(chuàng)建對象,并且也可以在構造器中設置默認值。例如:
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對象中加入了一個有參構造器,其中只有用戶名可以被傳入,密碼則設置為默認值。這樣,當我們創(chuàng)建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或為空字符串,則將密碼設為默認值。否則,將傳入的值設為用戶的密碼。這樣,在用戶創(chuàng)建對象后,就可以使用setter方法來給對象的屬性賦值,同時保證了代碼的可讀性和可維護性。