Arrays Java帮助-预期表达式/类的启动非法
好的,基本上我要做的就是让我的构造函数重复两个静态变量 在另一个类中,我称这个对象为ShipArrays Java帮助-预期表达式/类的启动非法,arrays,object,constructor,Arrays,Object,Constructor,好的,基本上我要做的就是让我的构造函数重复两个静态变量 在另一个类中,我称这个对象为Ship public class Ship { public static int[] size = {3, 2, 3, 5, 4}; public static String[] shipNames = {"Destroyer", "Cruiser", "Submarine
public class Ship
{
public static int[] size = {3, 2, 3, 5, 4};
public static String[] shipNames = {"Destroyer", "Cruiser", "Submarine",
"Aircraft Carrier", "Battleship"};
public Ship(String shipNames[], int size[])
{
this.shipNames[] = shipNames[];
this.size[] = size[];
}
}
但当它发送时,我会收到以下错误消息:
newShip = new Ship(Ship.shipNames[i],Ship.size[i]);
对于像我这样的初学者来说,使用数组是相当令人困惑的(这里有很多错误
字符串shipNames[]
的内容时,[]
不是变量名的一部分。它是变量类型的一部分。因此,当您仅使用变量时,不应编写它们this.shipNames
时,可能您的意思是设置正在构造的对象的某个字段。但您尚未定义此类字段。类中已经有一个名为shipNames
的对象,但它是静态的
——它是类的一部分,而不是实例您的代码有几个问题 首先,您正在向构造函数传递字符串和int,而不是字符串数组或int数组:
Error: illegal start of expression
Error: '.class' expected
Error: illegal start of expression
Error: '.class' expected
其次,您需要在构造函数中接收字符串和int,如下所示:
newShip = new Ship(Ship.shipNames[i],Ship.size[i]);
可能还有其他语法和语义错误,但这些对我来说似乎是最明显的错误。Java编译器通常会告诉您发生错误的源代码行号。错误消息指示的行号是什么,这是源代码的哪一行?您声明的是类变量而不是实例变量s通过使用关键字
static
。仍然存在一些其他错误。请参见下面的某人的答案
public String shipName;
public int size;
public Ship(String shipName, int size)
{
this.shipName = shipName;
this.size = size;
}