我已经编写了这段代码:
import java.util.ArrayList;
import java.util.List;
public class TestBox {
public static void main(String[]args){
ShoeBox nike = new ShoeBox();
Box present = new CandyBox(3,2,6);
JewelryBox gift = new JewelryBox();
Box pictures = new ShoeBox();
Box skittles=new CandyBox(6,3,1);
CandyBox dots=new CandyBox(3,2,1);
Box jareds=new JewelryBox();
List<Box> boxes=new ArrayList<Box>();
boxes.add(nike);
boxes.add(present);
boxes.add(gift);
boxes.add(pictures);
boxes.add(skittles);
boxes.add(dots);
boxes.add(jareds);
double temp=0;
for (Box x:boxes)
temp=temp+x.getVolume();
for (int i=0;i<boxes.size();i++)
System.out.println(boxes.get(i));
double count=0;
for (int k=0;k<boxes.size();k++)
if ((boxes.get(0).getVolume())<(boxes.get(k).getVolume()))
count=boxes.get(k).getVolume();
System.out.println("The box with the biggest volume is the "+boxes.get((int)count)+". The dimensions of the box"
+ "are "+boxes.get((int)count).getLength()+" x "+boxes.get((int)count).getWidth()+" x "
+boxes.get((int)count).getHeight()+".");
}
}
这是我的名为Box的测试人员。子类在它们的创建中显示。打印出对象名称所需的代码行是什么,比如吃喝玩乐或者jareds?
我需要打印具有最大音量的对象的“名称”。让我们说对象“nike”的音量最大。主要底部的打印声明应该说“最大音量的盒子是耐克。尺寸是12 x 12 x 12。”
答案 0 :(得分:0)
您希望打印符合特定条件且存储在您的收藏中的变量名称(您的List
)。这种在Java 中是不可能的,因为在运行时您无法访问变量的名称。在这种情况下,您应该在类中添加一个字段,以帮助您识别您正在使用的对象实例。该字段可以是int id
或String name
(为了简单起见)。
为方便起见,请在Box
课程中添加此字段:
public class Box {
//fields already declared here...
//adding name field
protected String name;
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
}
然后,在创建对象时填写此字段:
//setting the name of the object just with the name of the variable
//just for understanding purposes
//you cannot access to the name of the variable at runtime, no matter what
//also, you need to change the constructor of each class accordingly
ShoeBox nike = new ShoeBox("nike");
Box present = new CandyBox("present",3,2,6);
JewelryBox gift = new JewelryBox("gift");
Box pictures = new ShoeBox("pictures");
Box skittles=new CandyBox("skittles",6,3,1);
CandyBox dots=new CandyBox("dots",3,2,1);
Box jareds=new JewelryBox("jareds");
然后,当一个物体符合您的标准时,您可以将它用于您想要/需要的物品。
代码:
double temp = 0;
Box boxWithLargestVolume = null;
for (Box box : boxes) {
if (temp < x.getVolume()) {
temp = x.getVolume();
boxWithLargestVolume = box;
}
}
if (boxWithLargestVolume != null) {
System.out.println("The box with the largest volume is: "
+ boxWithLargestVolume.getName());
}