2014-12-08 40 views
-1

指示─初始化用环和式

在区域为类的实例变量的数组:

  • 声明一个整数变量来保存的音符的数量,将它设置到13
  • 声明并分配一个大小为13的GuitarString对象的数组。 注意:确保删除原始实例变量(stringA和stringC)。
  • 声明的类型字符串的票据阵列,大小的13
  • 初始化笔记阵列具有以下13个值: “C”, “C#”, “d”, “d#”, “E”, “F”, “F#”, “G”, “G#”, “A”, “A#”, “B”, “H” 在main方法:

初始化GuitarString的主阵列为整个八度。 您必须使用循环,而不是十三个单独的语句。 记得分配每个吉他弦与新。 使用以下公式计算每个字符串的频率: double frequency = 440.0 * Math.pow(1.05956,index - 9); p12.strings [index] = new GuitarString(frequency);

这里被索引的映射上面所示: 0 - 中间C( “C”) 1 - C#上面中央C( “C#”) 2 - d以上中间C( “d”) 3 - 中间C上方的D#(“D#”) 4 - E上方中间C(“E”) 中间C上方5-F(“F”) 中间C上方6 - F#(“F#”)012 - G16 - - - - - 以上中间C(“G”) 8 - 中间C以上的G#(“G#”) 9 - A以上中间C(“A”) 10 - A#中间C以上(“A#”) 11 - C(“B”) 12 - 高C(“H”)

上述笔记表示钢琴的一个倍频程从中央C以高C.

我的代码 -

public class P12 { 



int numNotes = 13; 
GuitarString[] GuitarString = new GuitarString[13]; 
public String[] strings = new String[]{"C", "C#","D","D#","E","F","F#","G","G#","A","A#","B","H"}; 



public static void main(String[] args) { 

    // Instantiate object 
    P12 p12 = new P12(); 



    for(int index = 0; index <= p12.numNotes; index++){ 
     double frequency = 440.0 * Math.pow(1.05956, index - 9); 
     p12.strings[index] = new GuitarString(frequency); 
    } 

我的问题是我如何初始化循环内的GuitarString阵列和使用给定的式?

+1

看来,你的老师希望你创建GuitarString的一个新的对象类型,而不是当我改变它,使一个新的对象,我得到创建的字符串 – frenchDolphin 2014-12-08 01:08:59

+0

的数组:“类型不匹配:无法从GuitarString转换为字符串“ – OC22 2014-12-08 01:11:55

+0

无关的注意事项:我意识到您的教师是说那个笔记H等于中间C的人,但H实际上等同于笔记B:http://en.wikipedia .ORG /维基/ B_%28musical_note%29。以防万一任何音乐家遇到这个帖子。 – 2014-12-08 01:12:24

回答

0

试试这个:

public class P12 { 

int numNotes = 13; 
public GuitarString[] gStrings = new GuitarString[13]; 
public String[] strings = new String[]{"C", "C#","D","D#","E","F","F#","G","G#","A","A#","B","H"}; 

public static void main(String[] args) { 

    // Instantiate object 
    P12 p12 = new P12(); 

    for(int index = 0; index <= p12.numNotes; index++){ 
     double frequency = 440.0 * Math.pow(1.05956, index - 9); 
     p12.strings[index] = new p12.GuitarString(frequency); 
    } 
} 

private class GuitarString { 

    double freq; 

    GuitarString(double frequency) { 
     freq = frequency; 
    } 

}