首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在数组中添加枚举类型值?

如何在数组中添加枚举类型值?
EN

Stack Overflow用户
提问于 2013-09-19 21:35:04
回答 2查看 886关注 0票数 0

下面是我尝试添加所有内容的方法。我想做的是把一系列硬币加起来,取名为penny,dime...etc。我在枚举中给了所有的人一个值。但是,如何访问数组中的每个硬币,然后将它们的值相加呢?

代码语言:javascript
代码运行次数:0
运行
复制
public double totalValue(Coin[] coins)
{
    double sum = 0;

    //computes and returns the monetary value of all the coins in the jar
    for(int i = 0; i < coins.length; i++) 
    {
        double coinValue = coins[i].CoinName.getCoinValue();
        sum = sum + coins[i];
        System.out.println(sum);
    }
    return sum; //change this!
}

这里是定义枚举值的地方。

代码语言:javascript
代码运行次数:0
运行
复制
public enum CoinName
{
     PENNY(.01), NICKEL(.05), DIME(.10), QUARTER(.25), FIFTY_CENT(.50), DOLLAR(1.0);

private double value;
private double coinValue;

private CoinName(double value)
{
    this.coinValue = value;
}

public double getCoinValue() 
{

    return coinValue;
}

}

/我刚刚增加了我的投币课。

代码语言:javascript
代码运行次数:0
运行
复制
import java.util.Random;
public class Coin
{

public static long SEED = System.currentTimeMillis();
public static Random RANDOM = new Random(SEED);

//private instance variables denomination, year,  and sideUp: year is an int,        denomination is of type  CoinName and  sideUp is of type  CoinSide
private CoinName denomination;
private CoinSide sideUp;
private int year;

public Coin(CoinName denomination,int year) 
{
    this.denomination = denomination;
    this.year = year;

    int side = Coin.RANDOM.nextInt(2);
    if (side == 0)
    {
        sideUp = CoinSide.HEADS;
    }
    else 
        sideUp = CoinSide.TAILS;
}

//Accessors for denomination, year and sideUp

public CoinName setDenomination() 
{   
    int i = 0;
    i = Coin.RANDOM.nextInt(6);
    if (i == 0)
    {
    denomination = CoinName.PENNY;
    }
    if (i == 1)
    {
    denomination = CoinName.NICKEL;
    }
    if (i == 2)
    {
    denomination = CoinName.DIME;
    }
    if (i == 3)
    {
    denomination = CoinName.QUARTER;
    }
    if (i == 4)
    {
    denomination = CoinName.FIFTY_CENT;
    }
    if (i == 5)
    {
    denomination = CoinName.DOLLAR;
    }

    return denomination;
}

public CoinName getDenomination()
{
    return denomination;
}

public void setSideUp(CoinSide sideUp)
{
    sideUp = sideUp;
}

public CoinSide getSideUp()
{
    return sideUp;
}

public void setYear(int year)
{
    year = RANDOM.nextInt(2013-1873) + 1873;
}

public int getYear()
{
    return year;
}

//the standard toString method that prints out a coin in the format “PENNY/1990/HEADS”
public String toString()
{
    return denomination + "/" + year + "/" + sideUp;
}

//the standard equals method that checks if two Coin objects are equal – they are equal if the denominations are identical
public boolean equals(Object obj)
{
    if (obj instanceof Coin){
        Coin d = (Coin)obj;
        if (this.getDenomination()==d.getDenomination())
            return true;
        else
            return false;
    }
    return false;
}
public void toss()
{
    //flip the coin
    //Use the object RANDOM to generate random numbers
    int side = Coin.RANDOM.nextInt(2);
    if (side == 0)
    {
        sideUp = CoinSide.HEADS;
    }
    else 
        sideUp = CoinSide.TAILS;


}

}

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-19 21:38:29

Coin有一个denomination,它保存硬币的价值。通过如何定义事物,要对一系列硬币的值进行求和,您必须首先获得面额,然后从它中提取值:

代码语言:javascript
代码运行次数:0
运行
复制
for(int i = 0; i < coins.length; i++) 
{
    CoinName denomination = coins[i].getDenomination();
    sum = sum + denomination.getCoinValue();
    System.out.println(sum);
}

请注意,要使此操作,硬币阵列必须是满的,没有null值,并且每个硬币必须有一个面额。

票数 1
EN

Stack Overflow用户

发布于 2013-09-19 21:43:56

假设Coin类具有CoinName属性(类型为CoinName ),则需要更改行

代码语言:javascript
代码运行次数:0
运行
复制
sum = sum + coins[i];

要使用coinValue,您需要前面的行。所以改变到

代码语言:javascript
代码运行次数:0
运行
复制
sum = sum + coinValue;

或者典型的情况是

代码语言:javascript
代码运行次数:0
运行
复制
sum += coinValue;

您的Enum中还有两个双倍,其中一个不需要删除value

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18905308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档