【发布时间】:2021-01-27 15:25:57
【问题描述】:
-
准备了一个玩具课。
public class toy { public String name; public int id; public int price; public toy(String name, int id, int price) { this.name = name; this.id = id; this.price = price; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } } -
准备了另一个类作为玩具清单。同一个类为玩具列表提供 getter 和 setter 方法。
import java.util.ArrayList; public class accMeth { public static ArrayList<toy> toylist=new ArrayList<toy>(); public ArrayList<toy> getToylist() { return toylist; } public void setToylist(ArrayList<toy> toylist) { this.toylist = toylist; } } -
下面的这个类在 toyList 中创建和添加玩具。然后使用 setter 设置 toyList。
import java.util.ArrayList; import java.util.List; public class adding extends accMeth { public static void main(String[] args) { toy t1= new toy("gg",1,20); toy t2 = new toy("gg",2,23); accMeth meth=new accMeth(); toylist.add(t1); toylist.add(t2); meth.setToylist(toylist); System.out.println(meth.getToylist().get(1).getPrice()); } } -
现在如果我想访问列表,这里似乎是空的。
public class getting{ public static void main(String[] args) { adding ad= new adding(); System.out.println(ad.getToylist().isEmpty()); } }
【问题讨论】:
-
为什么此时不能为空?
-
我想是因为我在 3 中添加了它,现在在 4 中访问它并创建了一个新实例。我在这里做错了什么?
-
你构造了一个新的adding(),但不会触发其中的
main方法 -
这里有太多的 Java 语法违规,我不知道从哪里开始,但看起来您需要将 accMeth 类的逻辑添加到构造函数中,而不是添加到 static void main 中!获取 Oreilly Head First Java 的副本并进行消化!
-
@AnamayPandey 在我看来,您是编程的初学者。因为你的代码中有大量错误的命名约定。所以请首先通过一个适当的教程来学习如何命名类和变量。因为你是一个初学者,堆栈溢出首先通过这个链接了解如何问一个好的堆栈溢出中的问题。 stackoverflow.com/help/how-to-ask
标签: java class arraylist methods