将受保护的“卡片”数组元素从子类传递到子类

时间:2018-09-12 23:28:27

标签: java oop

我可以在passCard()中找到所需的卡,但是我很困惑将卡移入手中。

   public class CardContainer
{
    protected Card[] cards;

这是我尝试将找到的卡传递到手中的地方。我能够找到该卡,但之后被卡住了。

public boolean passCard(CardContainer cc, Card c)
{
    for(int i = 0; i < cards.length; i++)
        {
            if(cards[i].equals(c)) 
            {       

                //this is where im trying to make magic happen


                return true;
            }
        }
    return false;
}
}

public class Hand extends CardContainer {

    private String playerName;

    public Hand(String name, int numCards)
    {
        playerName = name;
        cards = new Card[numCards];

        // manually entered a card to test if it works
        cards[1] = new Card(1,'s');
    }
}



public class TestDemo {

    public static void main(String[] args) {

    Hand h = new Hand("name", 10);
    System.out.println(deck.passCard(h, new Card(2,'s')));

    // prints manually entered card in hand class
    h.printCards();
}

1 个答案:

答案 0 :(得分:1)

passCard函数中,您可以简单地在Cards中初始化一个元素(这是假设您要在位置i上初始化它):

public boolean passCard(CardContainer cc, Card c)
{
    for(int i = 0; i < cards.length; i++)
    {
        if(cards[i].equals(c)) 
        {       
            h.cards[i] = this.cards[i];
            return true;
        }
    }
    return false;
}

由于cards仅是protected

  

protected修饰符指定只能在其自己的程序包中访问该成员

意味着您的Hand类可以访问它。