Should the 12-String be in it's own class and why?
- by MayNotBe
This question is regarding a homework project in my first Java programming class (online program).
The assignment is to create a "stringed instrument" class using (among other things) an array of String names representing instrument string names ("A", "E", etc). The idea for the 12-string is beyond the scope of the assignment (it doesn't have to be included at all) but now that I've thought of it, I want to figure out how to make it work.
Part of me feels like the 12-String should have it's own class, but another part of me feels that it should be in the guitar class because it's a guitar. I suppose this will become clear as I progress but I thought I would see what kind of response I get here.
Also, why would they ask for a String[] for the instrument string names? Seems like a char[] makes more sense.
Thank you for any insight.
Here's my code so far (it's a 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
}