如何初始化自定义类型的数组???急
小弟我今天写了一个程序,
先定义了一个类HairSalon,然后想在另外一个类SortSalon里面main()里定义了一个有个6元素的数组;
对于如何给数组初始化赋值,始终出现问题,程序代码如下:
public class SortSalon{
public static void main(String[] args) {
HairSalon[] hairSalon;
hairSalon[0]=new HairSalon("cut",10,15);
hairSalon[1]=new HairSalon("shampoo",10.6,5);
hairSalon[2]=new HairSalon("manicure",20,20);
hairSalon[3]=new HairSalon("cut",15,20);
hairSalon[4]=new HairSalon("shampoo",20,10);
hairSalon[5]=new HairSalon("manicure",15,15);
sortPrice(hairSalon);
printArray(hairSalon);
}
}
编译的时候:
G:\java\5_1\SortSalon.java:5: variable hairSalon might not have been initialized
hairSalon[0]=new HairSalon("cut",10,15);
^
1 error
--------------------------
小弟初学java,有没有高手指点啊?
问题点数:30、回复次数:8Top
1 楼g58521547(我是菜鸟)回复于 2004-11-02 18:48:35 得分 0
怎么没有人顶啊?分不够再加啊。Top
2 楼micker(希望下一代别再贫穷)回复于 2004-11-02 19:07:07 得分 0
没有初始化的啊!!!
你把
HairSalon[] hairSalon;
改为:
HairSalon[] hairSalon=new HairSalon(6);
就可以了啊!
Top
3 楼micker(希望下一代别再贫穷)回复于 2004-11-02 19:08:40 得分 8
不好意思,太慌了,忙抢分,呵呵
应该是:
HairSalon[] hairSalon=new HairSalon[6];Top
4 楼lengfengzhuiyue(冷风追月)回复于 2004-11-02 19:49:58 得分 8
是的!主要的问题是当你的数组中的每个元素不是基本型的时候就要进行初始化!当然你的元素是HairSalon型的对象当然要进行初始化,还有当你的元素如果是另一个数组时也要进行初始化.Top
5 楼treeroot(旗鲁特)回复于 2004-11-02 19:52:34 得分 3
HairSalon[] hairSalon=new HairSalon[6];Top
6 楼chummy(编程浪子)回复于 2004-11-02 20:03:50 得分 8
赞同lengfengzhuiyue(冷风追月)
需要先初始化.
JAVA中对非基本类型数据数组初始化主要有以下方法.
1.直接初始化设初值
HairSalon[] hairSalon =
{
new HairSalon("cut",10,15),
new HairSalon("cut",10,15),
....
}
或
HairSalon[] hairSalon = new HairSalon[]
{
new HairSalon("cut",10,15),
new HairSalon("cut",10,15),
....
}
这种初始化的好处是既可以用于参数数量未知的场合
也可以用于参数类型未知的场合.比较灵活
2.先初始化生成reference.然后赋值
HairSalon[] hairSalon=new HairSalon[6];
for(int i = 0; i < hairSalon.length; i++)
{
hairSalon[i] = new HairSalon();
}
可以看看Thinking in java第四章后面的一段Top
7 楼pchobby(你爱我像谁)回复于 2004-11-02 20:15:09 得分 3
没错啊,如果不是基本类型要初始化的Top
8 楼g58521547(我是菜鸟)回复于 2004-11-02 22:18:00 得分 0
感谢高手指点!马上结贴!Top




