【发布时间】:2015-04-15 18:21:53
【问题描述】:
我已经设置了一个名为 Foodlist 的类,其中包括 setter 和 getter。 我的问题是,没有在每个 Flist[i] Array 中设置值。
我期待打印时每个 Flist[i].getName 的输出不同。但相反,getName 从 setName 中获取最后一个值。
这是我的代码:
public static void main (String[] args)
{
Scanner input = new Scanner (System.in);
Foodlist [] Flist = new Foodlist [3];
for (int i = 0 ; i <Flist.length; i++)
{
Flist[i] = new Foodlist();
}
ReturnModel(Flist);
for (int i = 0; i <Flist.length; i++)
{
System.out.println("Model is "+ Flist[i].getName());
}
}
static void ReturnModel (Foodlist[] Flist)
{
Scanner input = new Scanner (System.in);
for (int i = 0; i < Flist.length; i ++)
{
String temp;
System.out.println("Enter Food Name Please:");
temp = input.next();
Flist[i].setName(temp);
}
}
我的食物清单代码。
public class Foodlist
{
static String Name;
static int Price;
static String Desc;
public static void main (String [] args)
{
String nem;
int pris;
String des;
nem = "";
pris = 0;
des ="";
setName(nem);
setPrice (pris);
setDesc (des);
}
public static void setName (String nem)
{
Name = nem;
}
public static String getName()
{
return Name;
}
public static void setPrice (int pris)
{
Price = pris;
}
public static int getPrice ()
{
return Price;
}
public static void setDesc (String des)
{
Desc = des;
}
public static String getDesc()
{
return Desc;
}
}
【问题讨论】:
-
你的
name字段肯定是static。 -
你能展示你对
Foodlist的实现吗?没有看到所有相关代码,很难给你一个好的答案。但我的第一个猜测是您静态存储名称,因此Foodlist的所有实例都具有相同的名称。 -
ReturnModel 应该重命名 returnModel。大写仅适用于类、枚举、接口。
-
@Gavin 在问题中添加了 Foodlist 代码 :)
-
@RohitJain 是正确的。发布完整代码后,很明显您的 name 变量是
static。
标签: java arrays object methods input