如何在Java中从其他方法设置对象数组值?
我已经建立了一个名为Foodlist的类,其中包括setter和getter。 我的问题是,没有在每个Flist[i]数组中设置值 打印时,我希望每个Flist[I].getName有不同的输出。但是,getName从setName中获取最后一个值 这是我的代码:如何在Java中从其他方法设置对象数组值?,java,arrays,object,methods,input,Java,Arrays,Object,Methods,Input,我已经建立了一个名为Foodlist的类,其中包括setter和getter。 我的问题是,没有在每个Flist[i]数组中设置值 打印时,我希望每个Flist[I].getName有不同的输出。但是,getName从setName中获取最后一个值 这是我的代码: public static void main (String[] args) { Scanner input = new Scanner (System.in); Foodlist [] Flist = new Fo
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);
}
}
问题是因为您静态存储名称,这意味着
Foodlist
的每个实例都在访问相同的名称
此外,您的getter和setter是静态的,所以无论您有哪个实例,它都调用静态getter和setter。您希望从Foodlist
类中的所有内容中删除static
我看到您的
Foodlist
类中也有一个main
方法,但您不想要这个。我假设您添加了这个,以便可以为新的Foodlist
实例中的字段设置默认值。相反,您将希望用默认构造函数替换它,该构造函数将以public Foodlist()
开头。您的名称
字段肯定是静态
。您能展示Foodlist
的实现吗?在没有看到所有相关代码的情况下,很难给出一个好的答案。但我的第一个猜测是,您正在静态存储名称,因此Foodlist
的所有实例都将获得相同的名称。ReturnModel应重命名为ReturnModel。大写仅用于类、枚举、接口。@Gavin在问题中添加了Foodlist代码:)@RohitJain是正确的。发布完整代码后,很明显您的name变量是static
。
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;
}
}