在Java編程中,有時(shí)候我們需要?jiǎng)?chuàng)建一個(gè)對(duì)象,但是不希望給出其中個(gè)別屬性的值。比如,我們創(chuàng)建一個(gè)User對(duì)象,但是不想在創(chuàng)建時(shí)給出用戶的密碼。這種情況下,我們就需要在創(chuàng)建對(duì)象時(shí)指定默認(rèn)值,或者在對(duì)象生成后使用setter方法給屬性賦初始值。
使用構(gòu)造器設(shè)定默認(rèn)值
在Java中,我們可以利用構(gòu)造器來創(chuàng)建對(duì)象,并且也可以在構(gòu)造器中設(shè)置默認(rèn)值。例如:
public class User { private String username; private String password; //構(gòu)造器 public User(String username) { this.username = username; this.password = "123456"; //默認(rèn)密碼 } //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; }}
我們?cè)谶@個(gè)User對(duì)象中加入了一個(gè)有參構(gòu)造器,其中只有用戶名可以被傳入,密碼則設(shè)置為默認(rèn)值。這樣,當(dāng)我們創(chuàng)建User對(duì)象時(shí),只需傳入用戶名即可,密碼不需要額外賦值。
使用setter方法賦初始值
除了在構(gòu)造器中設(shè)定默認(rèn)值,我們也可以在對(duì)象生成后使用setter方法來給對(duì)象的屬性賦值。前提是我們需要保證當(dāng)前屬性是可訪問的,在Java中,我們可以使用public修飾符來保證屬性可被外部引用。
public class User { private String username; private String password; //構(gòu)造器 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("")) { //設(shè)置默認(rèn)密碼 this.password = "123456"; }else { this.password = password; } }}
我們?cè)谶@個(gè)User對(duì)象中加入了一個(gè)判斷語(yǔ)句,如果傳入的密碼值是null或?yàn)榭兆址瑒t將密碼設(shè)為默認(rèn)值。否則,將傳入的值設(shè)為用戶的密碼。這樣,在用戶創(chuàng)建對(duì)象后,就可以使用setter方法來給對(duì)象的屬性賦值,同時(shí)保證了代碼的可讀性和可維護(hù)性。