首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用java的超级软件做什么?

用java的超级软件做什么?
EN

Stack Overflow用户
提问于 2013-04-24 03:55:39
回答 4查看 1.7K关注 0票数 1

我被要求这样做:

设计并实现了一个名为MonetaryCoin的类,该类是从第5章中介绍的硬币类派生出来的。在表示其价值的货币硬币中存储一个值,并为货币价值添加getter和setter方法。

硬币班如下:

代码语言:javascript
复制
public class Coin
    { 
        public final int HEADS = 0; 
        public final int TAILS = 1; 
        private int face; 
        // --------------------------------------------- 
        // Sets up the coin by flipping it initially. 
        // --------------------------------------------- 
        public Coin () 
        { 
            flip(); 
         } 
         // -----------------------------------------------
        // Flips the coin by randomly choosing a face.
        // ----------------------------------------------- 
        public void flip() 
        { 
            face = (int) (Math.random() * 2); 
        } 
        // --------------------------------------------------------- 
        // Returns true if the current face of the coin is heads. 
        // ---------------------------------------------------------


        public boolean isHeads() 
        {
            return (face == HEADS); 
        } 


 // ---------------------------------------------------- 
 // Returns the current face of the coin as a string. 
 // ---------------------------------------------------- 


        public String toString() 
        { 
            String faceName; 

            if (face == HEADS) 
                faceName = "Heads";

            else
                faceName = "Tails";

            return faceName; 
        } 
} 

我想出了这个:

代码语言:javascript
复制
public class MonetaryCoinHW extends Coin
{

public MonetaryCoinHW(int face)
{
    setFace(face);
}

public int getFace()
{
    if (isHeads()) {
                    return HEADS;
                }
                return TAILS;
}

public void setFace( int newFace )
{
    while (newFace != getFace()) {
                     flip();
                }
      }

不过,我一直有语法错误.我没有正确地使用“超级”吗?我完全糊涂了,我的错误是什么?

EN

回答 4

Stack Overflow用户

发布于 2013-04-24 03:58:01

不,您没有正确地使用super()

super()调用超级构造函数-在本例中,它将调用继承的Coin()。由于Coin()中不存在用于Coin(int face)的构造函数,所以子类无法调用它。

有办法处理这件事。我相信你需要运行setFace(face)。这将正确地初始化硬币的价值,我认为最适合你的问题。但是,您也可以将Coin(int face)构造函数添加到Coin类中。不过,您还必须给Coin一种保存值的方法。

票数 4
EN

Stack Overflow用户

发布于 2013-04-24 04:04:14

类硬币需要有以下构造函数才能使子类正确工作。

代码语言:javascript
复制
public Coin(int face) {
    this.face = face;
}

这将解决问题超级(面)。

票数 0
EN

Stack Overflow用户

发布于 2013-04-24 04:06:29

不你打得不对。你需要有硬币的构造函数,只有一个参数是int。即

代码语言:javascript
复制
public Coin (int face) 
{ 
      this.face = face;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16183093

复制
相关文章

相似问题

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