Java 入門コースで初めて UML ダイアグラムを作成しています。クラスが互いに正しく指し合っているかどうかを判断するのに苦労しています。
Guitar クラスは test クラスを指しているはずですか? また、Guitar クラスはテスト クラスの左側に配置する必要がありますか? どんなポインタでも大歓迎です、ありがとう。
ImageShack でホストされている私の UML ダイアグラム (画像を挿入するのに十分な参照ポイントがありません)
コードは以下です
package guitartest;
import java.util.Scanner;
public class Guitar {
// Declare variables
private int numberOfStrings;
private String stringName;
private boolean isTuned;
private boolean isPlaying;
private boolean isPlucking;
// Construct a guitar and set boolean fields to "false"
public Guitar(){
this.isTuned = false;
this.isPlaying = false;
this.isPlucking = false;
} // end constructor
// Prompt user to enter number of strings
public int getNumberOfStrings() {
Scanner sc = new Scanner(System.in);
// Loop continues until a positive integer is entered
do {
System.out.println("Enter number of strings in integer format");
while (!sc.hasNextInt()) {
System.out.println("Error! That's not a number!");
sc.next();
} // end while
numberOfStrings = sc.nextInt();
} // end do-while loop
while (numberOfStrings <= 0);
return numberOfStrings;
} // end method getNumberOfStrings
// Prompt user to enter string names
public String getStringName() {
Scanner sc = new Scanner(System.in);
// Loop continues until all strings are named
for (int i = 0; i < numberOfStrings; i++){
System.out.println("Enter string name");
// Error if input is not a character
while (!sc.hasNext("[A-Za-z]")) {
System.out.println("Error! That's not a character!");
sc.next();
}
stringName = sc.next();
} // end for loop
return stringName;
} // end method getStringName
// Verifies tuning status
public boolean tuneInstrument(){
return isTuned;
} // end method tuneInstrument
// Tune guitar
public void setTuned(boolean isTuned) {
this.isTuned = isTuned;
} // end method setTuned
// Verifies instrument is playing
public boolean playInstrument(){
return isPlaying;
} // end method playInstrument
//
public void startPlayingInstrument(){
isPlaying = true;
} // end method startPlayingInstrument
public boolean pluckInstrument(){
return isPlucking;
} // end method pluckInstrument
public void startPlucking(){
isPlucking = true;
} // end method startPlucking
// Stop instrument
public void stopInstrument(){
isPlaying = false;
} // end method stopInstrument
} // end class Guitar
テストクラスは次のとおりです。
package guitartest;
import java.util.Scanner;
// Scanner is in the java.util package
public class GuitarTest {
public static void main(String[] args) {
// Create 10 guitar objects
Guitar[] guitar = new Guitar[10];
for (int i = 0; i < guitar.length; i++){
guitar[i] = new Guitar();
// Call methods in Guitar class
guitar[i].getNumberOfStrings();
guitar[i].getStringName();
System.out.println("Is the guitar tuned? " + guitar[i].tuneInstrument());
System.out.println("Guitar is being tuned. Please wait...");
guitar[i].setTuned(true);
System.out.println("Is the guitar tuned? " + guitar[i].tuneInstrument());
System.out.println("Is the guitar playing? " + guitar[i].playInstrument());
System.out.println("Please wait for guitar to play...");
guitar[i].startPlayingInstrument();
System.out.println("Is the guitar playing? " + guitar[i].playInstrument());
System.out.println("Is the guitar being plucked? " + guitar[i].pluckInstrument());
System.out.println("Please wait for guitar to be plucked...");
guitar[i].startPlucking();
System.out.println("The guitar is playing and being plucked. " + guitar[i].pluckInstrument());
System.out.println("Stopping guitar from playing...");
guitar[i].stopInstrument();
System.out.println("Is the guitar playing? " + guitar[i].playInstrument());
} // end for loop
} // end method main
} // end class GuitarTest