在Java中创建对象数组时遇到问题
这是我的症结所在:我需要创建一个带有默认woodType的椅子对象数组。我可以声明数组本身,但显然所有的值都是空的。当我尝试实例化数组中的每个Chair对象时,会出现错误。我不确定在尝试实例化时我做错了什么,请帮助在Java中创建对象数组时遇到问题,java,arrays,Java,Arrays,这是我的症结所在:我需要创建一个带有默认woodType的椅子对象数组。我可以声明数组本身,但显然所有的值都是空的。当我尝试实例化数组中的每个Chair对象时,会出现错误。我不确定在尝试实例化时我做错了什么,请帮助 public class PAssign3 { public static void main(String[] args) { TableSet set1 = new TableSet(); TableSet set2 = new TableSet(5, 7,
public class PAssign3 {
public static void main(String[] args) {
TableSet set1 = new TableSet();
TableSet set2 = new TableSet(5, 7, 4);
// Chair chr1 = new Chair();//this works properly, setting wood as Oak
// Chair chr2 = new Chair("Pine");//works
}
}
class TableSet {
Table table = new Table();
private int numOfChairs = 2;
//creates an array that can hold "numOfChairs" references to same num of
//chair objects; does not instantiate chair objects!!!
Chair[] chairArr = new Chair[numOfChairs];
//instantiate each chair object for length of array
//this loop does not work; Error: illegal start of type
for (int i = 0; i < numOfChairs.length; i++) {
chairArr[i] = new Chair();
}
public TableSet() {
}
public TableSet(double width, double length, int numOfChairs) {
table = new Table(width, length);
this.numOfChairs = numOfChairs;
chairArr = new Chair[numOfChairs];
//this loop also does not work; Error: int cannot be dereferenced
for (int i = 0; i < numOfChairs.length; i++) {
chairArr[i] = new Chair();
}
}
public void setNumOfChairs(int numOfChairs) {
this.numOfChairs = numOfChairs;
}
public int getNumOfChairs() {
return numOfChairs;
}
public String getChairWoodType() {
return chairArr[0].getWoodType();
}
}
class Table {
private double width = 6;
private double length = 4;
public Table() {
}
public Table(double width, double length) {
this.width = width;
this.length = length;
}
public void setWidth(double width) {
this.width = (width < 0) ? 0 : width;
}
public void setLength(double length) {
this.length = (length < 0) ? 0 : width;
}
public double getWidth() {
return width;
}
public double getLength() {
return length;
}
}
class Chair {
private String woodType = "Oak";
public Chair() {
}
public Chair(String woodType) {
this.woodType = woodType;
}
public void setWoodType(String woodType) {
this.woodType = woodType;
}
public String getWoodType() {
return woodType;
}
}
公共类密码3{
公共静态void main(字符串[]args){
TableSet set1=新表集();
表集set2=新表集(5,7,4);
//椅子chr1=新椅子();//这可以正常工作,将木材设置为橡木
//椅子chr2=新椅子(“松木”);//效果良好
}
}
类表集{
Table Table=新表();
私有整数=2;
//创建一个数组,该数组可以保存对相同数量的
//椅子对象;不实例化椅子对象!!!
主席[]主席arr=新主席[numOfChairs];
//实例化每个椅子对象的数组长度
//此循环不工作;错误:类型的开始非法
for(int i=0;i
int
是Java中的一种简单类型,没有任何方法或字段。只要省略这个.length
,错误就消失了。在我看来,它已经存储了椅子的实际数量(2)。int
是Java中的一个简单类型,没有任何方法或字段。只要省略这个.length
,错误就消失了。在我看来,它已经存储了椅子的实际数量(2)。看起来您的for
循环只是在类级别上浮动。功能代码不能放在那里。将它放在表集()
构造函数中。不能在方法之外运行代码。你是想把它放到构造函数中吗?看起来你的for
循环只是在类级别上浮动。功能代码不能放在那里。将它放在表集()
构造函数中。不能在方法之外运行代码。你是想把它放在构造器里吗?