[英]need to figure out how to manipulate the mutator to figure out a class according to professor, I am confusd on how to do that
[英]Need mutator methods how do I do them
我正在做一個UML,但我不確定如何執行這些mutator方法:
+turnOn(): void //sets on to true
+turnOff(): void //sets on to false
+channelUp(): void //increases channel by 1 if on, rolls to 1 after maximum
+channelDown(): void //decreases channel by 1 if on, rolls to maximum after 1
+volumeUp(): void //increases the volume by 1 if on and less than maximum
+volumeDown(): void //decreases volume by 1 if on and greater than 0
+toString( ): String //returns the current state(instance variable values)
我現在的代碼:(請注意mutator部分不正確)
public class TV {
private int volume;
private int channel;
private boolean on;
private int maxVolume;
private int maxChannel;
TV() {
volume = 1;
channel = 1;
on = false;
maxVolume = 1;
maxChannel = 1;
}
public int getChannel() {
return channel;
}
public int getVolume() {
return volume;
}
public boolean isOn() {
return on;
}
public int getMaxChannel() {
return maxChannel;
}
public int getMaxVolume() {
return maxVolume;
}
public void setChannel(int i) {
if (isOn() && i >= 1 && i <= maxChannel) channel = i;
}
public void setVolume(int i) {
if (isOn() && i >= 0 && i <= maxVolume) volume = i;
}
public void setMaxChannel(int i) {
maxChannel = i;
}
public void setMaxVolume(int i) {
maxVolume = i;
}
// + turnOn() * * This is where the mutator methods begin I need help here * *
// if (channel == maxChannel) channel = 1;
// else channel++;
//if (channel == 1) channel = max;
//else channel--;
// if (volume == maxVolume) volume = 1;
// else channel++;
//if (volume == 1) volume = max;
// else channel--;
public string toString() {
return "channel: " + channel + "\nvolume: " + volume +
"\non: " + on + "\nmax Channel: " + maxChannel +
"\nmax Volume: " + maxVolume;
}
}
Mutator通常與“ setter”具有相同的含義
因此,在您的上述代碼中,“ getter”將是:
public int getMaxChannel() {
return maxChannel;
}
而“ mutator”或“ setter”將是:
public void setMaxChannel(int maxChannel) {
this.maxChannel = maxChannel;
}
我們將setter和mutator互換使用。
mutator方法用於設置私有字段的值。 它遵循一種命名方案,在方法名稱的開頭加上單詞“ set”。 這些方法沒有返回類型,並且接受與其對應的專用字段具有相同數據類型的參數。 然后,該參數用於設置該私有字段的值。
以下是一些更改器或設置器的示例:
public void setMaxChannel(int i) {
maxChannel = i;
}
public void setChannel(int c) {
channel=c;
}
樣本方法:
public void turnOn() {
this.on = true;
}
public void channelUp() {
if (on) {
if (channel == maxChannel) {
channel = 1;
}
else {
channel++;
}
}
}
public void volumeDown() {
if (on && volume > 0) {
volume--;
}
}
其他方法遵循相同的邏輯。
Java中的字符串是對象,因此您的toString方法簽名應讀取public String toString()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.