Java - OOP 对象数组并显示它们

Java - OOP array of objects and display them

我创建了一个对象(杯子)数组,我也设置了体积、容量和颜色,所有这些都是通过调用 .display() 显示的,但是我可以让 display() 在试图循环遍历杯子数组时的这个实例。我没有从 display() 方法中得到显示杯子容量和颜色的输出,我添加了两位代码,一个在包含显示方法的杯子 class 中,第一个显示我试图创建一个数组并显示每个杯子。我将非常感谢任何帮助,因为这是学校作业的一部分。

当前输出截图

    public static void main(String[] args) 
    {

        //Makes Array of cups
        Cup []  Cups = new Cup[4];

        // Creates 4 Cups with 250 capacity and black colour
        for(int i = 0 ; i > 4 ; i++) 
        {
            Cups[i] = new Cup (250, ContainerColour.BLACK );
            Cups[i].display();
        }
        
        //Teapot, Wash and then fill with tea
        TeaCup myTeaCup = new TeaCup();
        
        myTeaCup.Wash();
        myTeaCup.Fill();
        myTeaCup.display();
     }


我的杯子 oop 代码:


    // ---------------------------------------------------------------------
    // class variables
    // ---------------------------------------------------------------------

    private ContainerColour myColour;
    private int iCapacity;
    private int iVolume;
    private int iTemp;
    private int iFill;
    private String SzMaterial;

    private Boolean bEmpty;

    // ---------------------------------------------------------------------
    // Constructors
    // ---------------------------------------------------------------------

    public Cup()
    {
        super();
        reset();
        return;

    }

    public Cup (Cup original) {
        iCapacity = original.getCapacity();
        iVolume = original.getVolume();
        SzMaterial = original.getMaterial();
    }

    public Cup(int size) 
    {
        this();
        super.setCapacity(size);
        setColour(ContainerColour.NOT_SET);
        return;
    }

    public Cup (int size , ContainerColour colour)
    {
        this (size);
        setColour(colour);
        return;
    }


    //setters

    public void setColour(ContainerColour c) 
    {
        myColour = c;
    }

    //getters


    public ContainerColour getColour()
    {
        return(this.myColour) ;
    }


    //main

    public void display() 
    {

        System.out.println("Cup: \nCapacity = " + getCapacity());

        System.out.println("Volume = " + getVolume());
        System.out.println("Colour = " + getColour() );
        if(iVolume == 0) {
            bEmpty = true;
        }
        else {
            bEmpty = false;
        }

        System.out.println("Empty = " + bEmpty );
        return;
    }


    public static void main(String[] args) {

        Cup myCup = new Cup();
        myCup.setCapacity(250);
        myCup.setColour(ContainerColour.WHITE);
        myCup.Wash();
        myCup.fill();
        myCup.display();

    }



而不是 hard-coding 4,使用实际数组本身来确定 length 并在你的 for 循环中使用它:

for(int i=0; i<Cups.length; i++) {
    Cups[i] = new Cup (250, ContainerColour.BLACK );
    Cups[i].display();
}
public static void main(String[] args) 
{

    //Makes Array of cups
    Cup []  Cups = new Cup[4];

    // Creates 4 Cups with 250 capacity and black colour
    for(int i = 0 ; i < 4 ; i++) 
    {
        Cups[i] = new Cup (250, ContainerColour.BLACK );
        Cups[i].display();
    }
    
    //Teapot, Wash and then fill with tea
    TeaCup myTeaCup = new TeaCup();
    
    myTeaCup.Wash();
    myTeaCup.Fill();
    myTeaCup.display();
 }

因此,如果您在编码循环中犯了所有错误,它应该小于 4,其次,数组索引从零开始,这意味着当您达到 3 时,您将迭代数组 Cups 中的所有对象。