public class Player{private String firstName;private String lastName;private int heightInInches;private double weightInPounds;private boolean goalScorer;private boolean drinksBeer;public Player(){}public Player(String firstName, String lastName, int heightInInches, double weightInPounds, boolean goalScorer, boolean drinksBeer){ if(lastName != null && lastName.trim().length() > 0){ if(lastName != null && lastName.trim().length() > 0){ if(heightInInches >= 0){ if(weightInPounds >= 0){ this.firstName = firstName; this.lastName = lastName; this.heightInInches = heightInInches; this.weightInPounds = weightInPounds; this.goalScorer = goalScorer; this.drinksBeer = drinksBeer; } } } }}public String getFirstName(){ return firstName;}public String getLastName(){ return lastName;}public int getHeightInInches(){ return heightInInches;}public double getWeightInPounds(){ return weightInPounds;}public boolean getGoalScorer(){ return goalScorer;}public boolean getDrinksBeer(){ return drinksBeer;}public void setFirstName(String firstName){ if(firstName != null && firstName.trim().length() > 0){ this.firstName = firstName; }else{ System.out.println("Error. Invalid First Name."); }}public void setLastName(String lastName){ if(lastName != null && lastName.trim().length() > 0){ this.lastName = lastName; }else{ System.out.println("Error. Invalid Last Name."); }}在重載的構(gòu)造函數(shù)中,如何不使用賦值語句為每個字段調(diào)用 mutator 方法?并且如果我調(diào)用 mutator 方法,我應(yīng)該刪除構(gòu)造函數(shù)中的 if 語句嗎?(我使用的是blueJ)我是初學(xué)者,所以請說明我的代碼中是否還有其他問題。提前致謝。
1 回答

函數(shù)式編程
TA貢獻1807條經(jīng)驗 獲得超9個贊
您所要做的就是像任何其他方法一樣引用 mutator 方法:
public Player(String firstName, String lastName, int heightInInches, double weightInPounds, boolean goalScorer, boolean drinksBeer) { setFirstName(firstName); setLastName(lastName); setHeightInInches(heightInInches); setWeightInPounds(weightInPounds); setGoalScorer(goalScorer); setDrinksBeer(drinksBeer);}
此外,不需要那些 if 語句,因為它們實際上并沒有做任何有用的事情。如果您沒有明確設(shè)置任何值,int
變量將默認為0
、double
默認為0.0
、boolean
默認為false
、String
默認為null
。因此,您的 if 語句正在執(zhí)行諸如“如果名字是null
,請不要設(shè)置它……所以null
無論如何它都會默認”之類的事情。
如果你想做一些事情,比如強制高度為正數(shù),你總是可以把這個邏輯放在 setter 中。
添加回答
舉報
0/150
提交
取消