在我的2D数组java代码中找不到错误
Java表示存在预期的“]”错误。我找不到我的代码有什么问题?歌曲课是另一个写作课,没有问题。提前谢谢你的帮助在我的2D数组java代码中找不到错误,java,arrays,multidimensional-array,error-handling,syntax-error,Java,Arrays,Multidimensional Array,Error Handling,Syntax Error,Java表示存在预期的“]”错误。我找不到我的代码有什么问题?歌曲课是另一个写作课,没有问题。提前谢谢你的帮助 public class Jukebox { Song[][] songList; songList[0][0] = new Song("Jet Airliner", 5 ); songList[0][1] = new Song( "Slide", 4 ); songList[0][2] = new Song( "Tom Sawyer", 3 );
public class Jukebox
{
Song[][] songList;
songList[0][0] = new Song("Jet Airliner", 5 );
songList[0][1] = new Song( "Slide", 4 );
songList[0][2] = new Song( "Tom Sawyer", 3 );
songList[0][3] = new Song( "Purple Rain", 2 );
songList[1][0] = new Song( "Sing a Song", 1 );
songList[1][1] = new Song( "Baba O'Riley", 5 );
songList[1][2] = new Song( "Jumper", 4 );
songList[1][3] = new Song( "Car Wash", 3 );
songList[2][0] = new Song( "Kung Fu Fighting", 2 );
songList[2][1] = new Song( "Right as Rain", 4 );
songList[2][2] = new Song( "Beat It", 5 );
songList[2][3] = new Song( "Bust a Move", 4 );
public String toString()
{
String output = " ";
for (int row = 0; row < songList.length; row++)
{
for (int col = 0; col < songList[row].length; col++)
{
output+=(songList[row][col]);
}
output += "\n";
}
return output;
}
}
公共类自动存储塔
{
歌曲[][]歌曲列表;
歌曲列表[0][0]=新歌(“喷气式客机”,5);
歌曲列表[0][1]=新歌(“幻灯片”,4);
歌曲列表[0][2]=新歌(“汤姆·索耶”,3);
歌曲列表[0][3]=新歌《紫雨》,2首;
歌曲列表[1][0]=新歌(“唱一首歌”,1);
歌曲列表[1][1]=新歌(“Baba O'Riley”,5);
歌曲列表[1][2]=新歌(“跳线”,4);
歌曲列表[1][3]=新歌(“洗车”,3);
歌曲列表[2][0]=新歌《功夫格斗》,2首;
歌曲列表[2][1]=新歌(《如雨一般的权利》,4);
歌曲列表[2][2]=新歌(“击败它”,5);
歌曲列表[2][3]=新歌(Bursta Move),4);
公共字符串toString()
{
字符串输出=”;
for(int row=0;row
有两个问题
您需要在方法中执行以下所有操作:
songList[0][0] = new Song("Jet Airliner", 5 );
songList[0][1] = new Song( "Slide", 4 );
songList[0][2] = new Song( "Tom Sawyer", 3 );
songList[0][3] = new Song( "Purple Rain", 2 );
songList[1][0] = new Song( "Sing a Song", 1 );
songList[1][1] = new Song( "Baba O'Riley", 5 );
songList[1][2] = new Song( "Jumper", 4 );
songList[1][3] = new Song( "Car Wash", 3 );
songList[2][0] = new Song( "Kung Fu Fighting", 2 );
songList[2][1] = new Song( "Right as Rain", 4 );
songList[2][2] = new Song( "Beat It", 5 );
songList[2][3] = new Song( "Bust a Move", 4 );
因此,您可以创建一个init()
方法,或者创建一个符合您目的的构造函数
public void init(){
songList = new String[3][4];
songList[0][0] = new Song("Jet Airliner", 5 );
songList[0][1] = new Song( "Slide", 4 );
songList[0][2] = new Song( "Tom Sawyer", 3 );
songList[0][3] = new Song( "Purple Rain", 2 );
songList[1][0] = new Song( "Sing a Song", 1 );
songList[1][1] = new Song( "Baba O'Riley", 5 );
songList[1][2] = new Song( "Jumper", 4 );
songList[1][3] = new Song( "Car Wash", 3 );
songList[2][0] = new Song( "Kung Fu Fighting", 2 );
songList[2][1] = new Song( "Right as Rain", 4 );
songList[2][2] = new Song( "Beat It", 5 );
songList[2][3] = new Song( "Bust a Move", 4 );
}
现在,在调用JukeBox的toString()
方法之前,您需要调用init()
方法。试试这个方法
class Jukebox {
private Song[][] songList;
public Jukebox() {
songList = new Song[3][4];
songList[0][0] = new Song("Jet Airliner", 5);
songList[0][1] = new Song("Slide", 4);
songList[0][2] = new Song("Tom Sawyer", 3);
songList[0][3] = new Song("Purple Rain", 2);
songList[1][0] = new Song("Sing a Song", 1);
songList[1][1] = new Song("Baba O'Riley", 5);
songList[1][2] = new Song("Jumper", 4);
songList[1][3] = new Song("Car Wash", 3);
songList[2][0] = new Song("Kung Fu Fighting", 2);
songList[2][1] = new Song("Right as Rain", 4);
songList[2][2] = new Song("Beat It", 5);
songList[2][3] = new Song("Bust a Move", 4);
}
public String toString() {
String output = " ";
for (int row = 0; row < songList.length; row++) {
for (int col = 0; col < songList[row].length; col++) {
output += (songList[row][col]);
}
output += "\n";
}
return output;
}
}
类自动存储塔{
私人歌曲[][]歌曲列表;
公共自动存储塔(){
歌曲列表=新歌[3][4];
歌曲列表[0][0]=新歌(“喷气式客机”,5);
歌曲列表[0][1]=新歌(“幻灯片”,4);
歌曲列表[0][2]=新歌(“汤姆·索耶”,3);
歌曲列表[0][3]=新歌《紫雨》,2首;
歌曲列表[1][0]=新歌(“唱一首歌”,1);
歌曲列表[1][1]=新歌(“Baba O'Riley”,5);
歌曲列表[1][2]=新歌(“跳线”,4);
歌曲列表[1][3]=新歌(“洗车”,3);
歌曲列表[2][0]=新歌《功夫格斗》,2首;
歌曲列表[2][1]=新歌(《如雨一般的权利》,4);
歌曲列表[2][2]=新歌(“击败它”,5);
歌曲列表[2][3]=新歌(Bursta Move),4);
}
公共字符串toString(){
字符串输出=”;
for(int row=0;row
此程序语法错误。
1. <代码>歌曲[][]歌曲列表代码>必须由新的操作员陪同。
2.在实例级别,成员只能在一条语句中初始化。所以下面是错误的:
Song[][] songList;
songList[0][0] = new Song("Jet Airliner", 5 );
songList[0][1] = new Song( "Slide", 4 );
songList[0][2] = new Song( "Tom Sawyer", 3 );
songList[0][3] = new Song( "Purple Rain", 2 );
songList[1][0] = new Song( "Sing a Song", 1 );
songList[1][1] = new Song( "Baba O'Riley", 5 );
songList[1][2] = new Song( "Jumper", 4 );
songList[1][3] = new Song( "Car Wash", 3 );
songList[2][0] = new Song( "Kung Fu Fighting", 2 );
songList[2][1] = new Song( "Right as Rain", 4 );
songList[2][2] = new Song( "Beat It", 5 );
songList[2][3] = new Song( "Bust a Move", 4 );
解决方案:
1.使用new
运算符实例化数组。
Song[][]歌曲列表=新歌[3][4]代码>
使用初始值设定项块或构造函数将对象分配给数组索引。
类自动存储塔
{
歌曲[][]歌曲列表=新歌[3][4];
{
//分配的初始化块
}
}
除了#2之外,还可以使用数组初始值设定项
Song[][]歌曲列表=新歌[][]{{}{}{}}
在Java中,如果要为类属性赋值,应该在声明后立即赋值
而不是这样做:
Song[][] songList;
songList[0][0] = new Song("Jet Airliner", 5 );
songList[0][1] = new Song( "Slide", 4 );
songList[0][2] = new Song( "Tom Sawyer", 3 );
songList[0][3] = new Song( "Purple Rain", 2 );
songList[1][0] = new Song( "Sing a Song", 1 );
songList[1][1] = new Song( "Baba O'Riley", 5 );
songList[1][2] = new Song( "Jumper", 4 );
songList[1][3] = new Song( "Car Wash", 3 );
songList[2][0] = new Song( "Kung Fu Fighting", 2 );
songList[2][1] = new Song( "Right as Rain", 4 );
songList[2][2] = new Song( "Beat It", 5 );
songList[2][3] = new Song( "Bust a Move", 4 );
试试这个:
Song[][] songList = {
{
new Song("Jet Airliner", 5 ),
new Song( "Slide", 4 ),
new Song( "Tom Sawyer", 3 ),
new Song( "Purple Rain", 2 )
},
{
...
}
};
或者,您可以在构造函数中执行赋值
public Jukebox(){
songList = {
{
new Song("Jet Airliner", 5 ),
new Song( "Slide", 4 ),
new Song( "Tom Sawyer", 3 ),
new Song( "Purple Rain", 2 )
},
{
...
}
};
}
Song[][] songList = {
{
new Song("Jet Airliner", 5 ),
new Song( "Slide", 4 ),
new Song( "Tom Sawyer", 3 ),
new Song( "Purple Rain", 2 )
},
{
...
}
};
public Jukebox(){
songList = {
{
new Song("Jet Airliner", 5 ),
new Song( "Slide", 4 ),
new Song( "Tom Sawyer", 3 ),
new Song( "Purple Rain", 2 )
},
{
...
}
};
}