Questa domanda riguarda un progetto di compiti a casa nella mia prima classe di programmazione Java (programma online).
L'incarico consiste nel creare una classe "strumento a corda" usando (tra le altre cose) una serie di nomi String che rappresentano nomi di stringhe di strumenti ("A", "E", ecc.). L'idea per la 12-stringa va oltre lo scopo dell'assegnazione (non deve essere inclusa affatto) ma ora che ci ho pensato, voglio capire come farlo funzionare.
Una parte di me sembra che la 12-String dovrebbe avere una sua classe, ma un'altra parte di me ritiene che dovrebbe essere nella classe della chitarra perché è una chitarra. Suppongo che questo diventerà chiaro mentre progredisco ma ho pensato di vedere che tipo di risposta ottengo qui.
Inoltre, perché chiederebbero una stringa [] per i nomi delle stringhe dello strumento? Sembra un char [] ha più senso.
Grazie per qualsiasi approfondimento.
Ecco il mio codice finora (è un work in progress):
public class Guitar {
private int numberOfStrings = 6;
private static int numberOfGuitars = 0;
private String[] stringNotes = {"E", "A", "D", "G", "B", "A"};
private boolean tuned = false;
private boolean playing = false;
public Guitar(){
numberOfGuitars++;
}
public Guitar(boolean twelveString){
if(twelveString){
stringNotes[0] = "E, E";
stringNotes[1] = "A, A";
stringNotes[2] = "D, D";
stringNotes[3] = "G, G";
stringNotes[4] = "B, B";
stringNotes[5] = "E, E";
numberOfStrings = 12;
}
}
public int getNumberOfStrings() {
return numberOfStrings;
}
public void setNumberOfStrings(int strings) {
if(strings == 12 || strings == 6) {
if(strings == 12){
stringNotes[0] = "E, E";
stringNotes[1] = "A, A";
stringNotes[2] = "D, D";
stringNotes[3] = "G, G";
stringNotes[4] = "B, B";
stringNotes[5] = "E, E";
numberOfStrings = strings;
}
if(strings == 6)
numberOfStrings = strings;
}//if
else
System.out.println("***ERROR***Guitar can only have 6 or 12 strings***ERROR***");
}
public void getStringNotes() {
for(int i = 0; i < stringNotes.length; i++){
if(i == stringNotes.length - 1)
System.out.println(stringNotes[i]);
else
System.out.print(stringNotes[i] + ", ");
}//for
}